From efbde487cc97e0f0134befe4f623a0d58417d85f Mon Sep 17 00:00:00 2001 From: Amy Retzerau Date: Sat, 29 Nov 2025 10:07:59 +0100 Subject: [PATCH] feat: vertex colors --- model.hpp | 2 ++ parseObj.py | 3 ++- polygon.hpp | 6 ++++++ renderer.hpp | 8 ++++---- testModel.hpp | 2 +- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/model.hpp b/model.hpp index 9e00273..9508f0d 100644 --- a/model.hpp +++ b/model.hpp @@ -7,8 +7,10 @@ #include struct model { std::vector verts; + // At 0 vertecie index, at 1 normal index std::vector> faces; std::vector normals; + std::vector colors; }; #endif diff --git a/parseObj.py b/parseObj.py index 28ff3ca..5017bbd 100644 --- a/parseObj.py +++ b/parseObj.py @@ -37,11 +37,12 @@ for index,line in enumerate(content): faces = content[startFaces:-1] break +colors = ["vec3(" +",".join(vert.split(" ")[4:7]) + ")" for vert in verts] verts = ["vec3(" +",".join(vert.split(" ")[1:4]) + ")" for vert in verts] faces = [ ",".join(["{" + str(int((d.split("/")[0])) - 1) + "," + str(int((d.split("/")[2])) - 1) + "}" for d in face.split(" ")[1:4]]) for face in faces] normals = ["vec3(" + ",".join(normal.split(" ")[1:4]) + ")" for normal in normals] -out = "#include \"model.hpp\" \n const model testModel({" + ",".join(verts) +"},{" + ",".join(faces) + "},{" + ",".join(normals) + "});" +out = "#include \"model.hpp\" \n const model testModel({" + ",".join(verts) +"},{" + ",".join(faces) + "},{" + ",".join(normals) + "},{"+ ",".join(colors)+"});" with open("testModel.hpp", "w") as f: f.write(out) diff --git a/polygon.hpp b/polygon.hpp index a5f5351..b4d0951 100644 --- a/polygon.hpp +++ b/polygon.hpp @@ -11,6 +11,7 @@ struct polygon { decimal bounding[4]; // min x, max x, min y, max y vec3 normals[3]; + vec3 colors[3]; polygon(const vec3 &v1, const vec3 &v2, const vec3 &v3) : points{v1, v2, v3}, delta{} {} @@ -84,6 +85,11 @@ struct polygon { return result.normalize(); } + vec3 calcColor(vec3 barycentrics) { + return colors[0] * barycentrics[0] + colors[1] * barycentrics[1] + + colors[2] * barycentrics[2]; + } + decimal calcDepth(vec3 barycentrics) { return points[0].z() * barycentrics[0] + points[1].z() * barycentrics[1] + diff --git a/renderer.hpp b/renderer.hpp index bb85497..0484ce2 100644 --- a/renderer.hpp +++ b/renderer.hpp @@ -78,17 +78,17 @@ class Renderer { decimal depth = testP.calcDepth(factors); if (depth < target->getDepth(x, y)) { // std::cout << factors << std::endl; - vec3 normals = testP.calcNormal(factors); + vec3 normal = testP.calcNormal(factors); + vec3 color = testP.calcColor(factors); decimal lightFac = std::max( - normals * + normal * (-vec3(1.0, -1.0, 1.0).normalize()), decimal(0.0)) + decimal(0.5); target->setDepth(x, y, depth); target->set(x, y, - (lightFac * vec3(1., 1., 1.)) * - decimal(120.0)); + (color * decimal(120.0)) * lightFac); // target->set(x, y, // (normals + vec3(1.0, 1.0, 1.0)) * diff --git a/testModel.hpp b/testModel.hpp index 427ce1d..7713b19 100644 --- a/testModel.hpp +++ b/testModel.hpp @@ -1,2 +1,2 @@ #include "model.hpp" - const model testModel({vec3(-0.437500,0.164062,2.234375),vec3(0.437500,0.164062,2.234375),vec3(-0.500000,0.093750,2.312500),vec3(0.500000,0.093750,2.312500),vec3(-0.546875,0.054688,2.421875),vec3(0.546875,0.054688,2.421875),vec3(-0.351562,-0.023438,2.382812),vec3(0.351562,-0.023438,2.382812),vec3(-0.351562,0.031250,2.281250),vec3(0.351562,0.031250,2.281250),vec3(-0.351562,0.132812,2.218750),vec3(0.351562,0.132812,2.218750),vec3(-0.273438,0.164062,2.203125),vec3(0.273438,0.164062,2.203125),vec3(-0.203125,0.093750,2.257812),vec3(0.203125,0.093750,2.257812),vec3(-0.156250,0.054688,2.351562),vec3(0.156250,0.054688,2.351562),vec3(-0.078125,0.242188,2.343750),vec3(0.078125,0.242188,2.343750),vec3(-0.140625,0.242188,2.257812),vec3(0.140625,0.242188,2.257812),vec3(-0.242188,0.242188,2.203125),vec3(0.242188,0.242188,2.203125),vec3(-0.273438,0.328125,2.203125),vec3(0.273438,0.328125,2.203125),vec3(-0.203125,0.390625,2.257812),vec3(0.203125,0.390625,2.257812),vec3(-0.156250,0.437500,2.351562),vec3(0.156250,0.437500,2.351562),vec3(-0.351562,0.515625,2.382812),vec3(0.351562,0.515625,2.382812),vec3(-0.351562,0.453125,2.281250),vec3(0.351562,0.453125,2.281250),vec3(-0.351562,0.359375,2.218750),vec3(0.351562,0.359375,2.218750),vec3(-0.437500,0.328125,2.234375),vec3(0.437500,0.328125,2.234375),vec3(-0.500000,0.390625,2.312500),vec3(0.500000,0.390625,2.312500),vec3(-0.546875,0.437500,2.421875),vec3(0.546875,0.437500,2.421875),vec3(-0.625000,0.242188,2.437500),vec3(0.625000,0.242188,2.437500),vec3(-0.562500,0.242188,2.328125),vec3(0.562500,0.242188,2.328125),vec3(-0.468750,0.242188,2.242188),vec3(0.468750,0.242188,2.242188),vec3(-0.476562,0.242188,2.226562),vec3(0.476562,0.242188,2.226562),vec3(-0.445312,0.335938,2.218750),vec3(0.445312,0.335938,2.218750),vec3(-0.351562,0.375000,2.195312),vec3(0.351562,0.375000,2.195312),vec3(-0.265625,0.335938,2.179688),vec3(0.265625,0.335938,2.179688),vec3(-0.226562,0.242188,2.179688),vec3(0.226562,0.242188,2.179688),vec3(-0.265625,0.156250,2.179688),vec3(0.265625,0.156250,2.179688),vec3(-0.351562,0.242188,2.171875),vec3(0.351562,0.242188,2.171875),vec3(-0.351562,0.117188,2.195312),vec3(0.351562,0.117188,2.195312),vec3(-0.445312,0.156250,2.218750),vec3(0.445312,0.156250,2.218750),vec3(0.000000,0.429688,2.257812),vec3(0.000000,0.351562,2.179688),vec3(0.000000,-0.679688,2.265625),vec3(0.000000,-0.320312,2.218750),vec3(0.000000,-0.187500,2.203125),vec3(0.000000,-0.773438,2.281250),vec3(0.000000,0.406250,2.398438),vec3(0.000000,0.570312,2.429688),vec3(0.000000,0.898438,3.546875),vec3(0.000000,0.562500,3.851562),vec3(0.000000,0.070312,3.828125),vec3(0.000000,-0.382812,3.351562),vec3(-0.203125,-0.187500,2.437500),vec3(0.203125,-0.187500,2.437500),vec3(-0.312500,-0.437500,2.429688),vec3(0.312500,-0.437500,2.429688),vec3(-0.351562,-0.695312,2.429688),vec3(0.351562,-0.695312,2.429688),vec3(-0.367188,-0.890625,2.468750),vec3(0.367188,-0.890625,2.468750),vec3(-0.328125,-0.945312,2.476562),vec3(0.328125,-0.945312,2.476562),vec3(-0.179688,-0.968750,2.445312),vec3(0.179688,-0.968750,2.445312),vec3(0.000000,-0.984375,2.421875),vec3(-0.437500,-0.140625,2.468750),vec3(0.437500,-0.140625,2.468750),vec3(-0.632812,-0.039062,2.460938),vec3(0.632812,-0.039062,2.460938),vec3(-0.828125,0.148438,2.554688),vec3(0.828125,0.148438,2.554688),vec3(-0.859375,0.429688,2.406250),vec3(0.859375,0.429688,2.406250),vec3(-0.710938,0.484375,2.375000),vec3(0.710938,0.484375,2.375000),vec3(-0.492188,0.601562,2.312500),vec3(0.492188,0.601562,2.312500),vec3(-0.320312,0.757812,2.265625),vec3(0.320312,0.757812,2.265625),vec3(-0.156250,0.718750,2.242188),vec3(0.156250,0.718750,2.242188),vec3(-0.062500,0.492188,2.250000),vec3(0.062500,0.492188,2.250000),vec3(-0.164062,0.414062,2.226562),vec3(0.164062,0.414062,2.226562),vec3(-0.125000,0.304688,2.234375),vec3(0.125000,0.304688,2.234375),vec3(-0.203125,0.093750,2.257812),vec3(0.203125,0.093750,2.257812),vec3(-0.375000,0.015625,2.296875),vec3(0.375000,0.015625,2.296875),vec3(-0.492188,0.062500,2.328125),vec3(0.492188,0.062500,2.328125),vec3(-0.625000,0.187500,2.351562),vec3(0.625000,0.187500,2.351562),vec3(-0.640625,0.296875,2.351562),vec3(0.640625,0.296875,2.351562),vec3(-0.601562,0.375000,2.335938),vec3(0.601562,0.375000,2.335938),vec3(-0.429688,0.437500,2.281250),vec3(0.429688,0.437500,2.281250),vec3(-0.250000,0.468750,2.242188),vec3(0.250000,0.468750,2.242188),vec3(0.000000,-0.765625,2.265625),vec3(-0.109375,-0.718750,2.265625),vec3(0.109375,-0.718750,2.265625),vec3(-0.117188,-0.835938,2.289062),vec3(0.117188,-0.835938,2.289062),vec3(-0.062500,-0.882812,2.304688),vec3(0.062500,-0.882812,2.304688),vec3(0.000000,-0.890625,2.312500),vec3(0.000000,-0.195312,2.250000),vec3(0.000000,-0.140625,2.257812),vec3(-0.101562,-0.148438,2.257812),vec3(0.101562,-0.148438,2.257812),vec3(-0.125000,-0.226562,2.250000),vec3(0.125000,-0.226562,2.250000),vec3(-0.085938,-0.289062,2.257812),vec3(0.085938,-0.289062,2.257812),vec3(-0.398438,-0.046875,2.328125),vec3(0.398438,-0.046875,2.328125),vec3(-0.617188,0.054688,2.375000),vec3(0.617188,0.054688,2.375000),vec3(-0.726562,0.203125,2.398438),vec3(0.726562,0.203125,2.398438),vec3(-0.742188,0.375000,2.343750),vec3(0.742188,0.375000,2.343750),vec3(-0.687500,0.414062,2.273438),vec3(0.687500,0.414062,2.273438),vec3(-0.437500,0.546875,2.203125),vec3(0.437500,0.546875,2.203125),vec3(-0.312500,0.640625,2.164062),vec3(0.312500,0.640625,2.164062),vec3(-0.203125,0.617188,2.148438),vec3(0.203125,0.617188,2.148438),vec3(-0.101562,0.429688,2.156250),vec3(0.101562,0.429688,2.156250),vec3(-0.125000,-0.101562,2.187500),vec3(0.125000,-0.101562,2.187500),vec3(-0.210938,-0.445312,2.289062),vec3(0.210938,-0.445312,2.289062),vec3(-0.250000,-0.703125,2.312500),vec3(0.250000,-0.703125,2.312500),vec3(-0.265625,-0.820312,2.335938),vec3(0.265625,-0.820312,2.335938),vec3(-0.234375,-0.914062,2.367188),vec3(0.234375,-0.914062,2.367188),vec3(-0.164062,-0.929688,2.367188),vec3(0.164062,-0.929688,2.367188),vec3(0.000000,-0.945312,2.359375),vec3(0.000000,0.046875,2.273438),vec3(0.000000,0.210938,2.234375),vec3(-0.328125,0.476562,2.257812),vec3(0.328125,0.476562,2.257812),vec3(-0.164062,0.140625,2.250000),vec3(0.164062,0.140625,2.250000),vec3(-0.132812,0.210938,2.242188),vec3(0.132812,0.210938,2.242188),vec3(-0.117188,-0.687500,2.265625),vec3(0.117188,-0.687500,2.265625),vec3(-0.078125,-0.445312,2.250000),vec3(0.078125,-0.445312,2.250000),vec3(0.000000,-0.445312,2.250000),vec3(0.000000,-0.328125,2.257812),vec3(-0.093750,-0.273438,2.218750),vec3(0.093750,-0.273438,2.218750),vec3(-0.132812,-0.226562,2.203125),vec3(0.132812,-0.226562,2.203125),vec3(-0.109375,-0.132812,2.218750),vec3(0.109375,-0.132812,2.218750),vec3(-0.039062,-0.125000,2.218750),vec3(0.039062,-0.125000,2.218750),vec3(0.000000,-0.203125,2.171875),vec3(-0.046875,-0.148438,2.187500),vec3(0.046875,-0.148438,2.187500),vec3(-0.093750,-0.156250,2.187500),vec3(0.093750,-0.156250,2.187500),vec3(-0.109375,-0.226562,2.171875),vec3(0.109375,-0.226562,2.171875),vec3(-0.078125,-0.250000,2.195312),vec3(0.078125,-0.250000,2.195312),vec3(0.000000,-0.289062,2.195312),vec3(-0.257812,-0.312500,2.445312),vec3(0.257812,-0.312500,2.445312),vec3(-0.164062,-0.242188,2.289062),vec3(0.164062,-0.242188,2.289062),vec3(-0.179688,-0.312500,2.289062),vec3(0.179688,-0.312500,2.289062),vec3(-0.234375,-0.250000,2.445312),vec3(0.234375,-0.250000,2.445312),vec3(0.000000,-0.875000,2.312500),vec3(-0.046875,-0.867188,2.312500),vec3(0.046875,-0.867188,2.312500),vec3(-0.093750,-0.820312,2.289062),vec3(0.093750,-0.820312,2.289062),vec3(-0.093750,-0.742188,2.273438),vec3(0.093750,-0.742188,2.273438),vec3(0.000000,-0.781250,2.343750),vec3(-0.093750,-0.750000,2.335938),vec3(0.093750,-0.750000,2.335938),vec3(-0.093750,-0.812500,2.359375),vec3(0.093750,-0.812500,2.359375),vec3(-0.046875,-0.851562,2.367188),vec3(0.046875,-0.851562,2.367188),vec3(0.000000,-0.859375,2.367188),vec3(-0.171875,0.218750,2.218750),vec3(0.171875,0.218750,2.218750),vec3(-0.187500,0.156250,2.226562),vec3(0.187500,0.156250,2.226562),vec3(-0.335938,0.429688,2.242188),vec3(0.335938,0.429688,2.242188),vec3(-0.273438,0.421875,2.226562),vec3(0.273438,0.421875,2.226562),vec3(-0.421875,0.398438,2.226562),vec3(0.421875,0.398438,2.226562),vec3(-0.562500,0.351562,2.304688),vec3(0.562500,0.351562,2.304688),vec3(-0.585938,0.289062,2.312500),vec3(0.585938,0.289062,2.312500),vec3(-0.578125,0.195312,2.320312),vec3(0.578125,0.195312,2.320312),vec3(-0.476562,0.101562,2.281250),vec3(0.476562,0.101562,2.281250),vec3(-0.375000,0.062500,2.257812),vec3(0.375000,0.062500,2.257812),vec3(-0.226562,0.109375,2.218750),vec3(0.226562,0.109375,2.218750),vec3(-0.179688,0.296875,2.218750),vec3(0.179688,0.296875,2.218750),vec3(-0.210938,0.375000,2.218750),vec3(0.210938,0.375000,2.218750),vec3(-0.234375,0.359375,2.242188),vec3(0.234375,0.359375,2.242188),vec3(-0.195312,0.296875,2.242188),vec3(0.195312,0.296875,2.242188),vec3(-0.242188,0.125000,2.242188),vec3(0.242188,0.125000,2.242188),vec3(-0.375000,0.085938,2.273438),vec3(0.375000,0.085938,2.273438),vec3(-0.460938,0.117188,2.296875),vec3(0.460938,0.117188,2.296875),vec3(-0.546875,0.210938,2.328125),vec3(0.546875,0.210938,2.328125),vec3(-0.554688,0.281250,2.328125),vec3(0.554688,0.281250,2.328125),vec3(-0.531250,0.335938,2.320312),vec3(0.531250,0.335938,2.320312),vec3(-0.414062,0.390625,2.250000),vec3(0.414062,0.390625,2.250000),vec3(-0.281250,0.398438,2.234375),vec3(0.281250,0.398438,2.234375),vec3(-0.335938,0.406250,2.250000),vec3(0.335938,0.406250,2.250000),vec3(-0.203125,0.171875,2.250000),vec3(0.203125,0.171875,2.250000),vec3(-0.195312,0.226562,2.250000),vec3(0.195312,0.226562,2.250000),vec3(-0.109375,0.460938,2.390625),vec3(0.109375,0.460938,2.390625),vec3(-0.195312,0.664062,2.382812),vec3(0.195312,0.664062,2.382812),vec3(-0.335938,0.687500,2.406250),vec3(0.335938,0.687500,2.406250),vec3(-0.484375,0.554688,2.445312),vec3(0.484375,0.554688,2.445312),vec3(-0.679688,0.453125,2.507812),vec3(0.679688,0.453125,2.507812),vec3(-0.796875,0.406250,2.539062),vec3(0.796875,0.406250,2.539062),vec3(-0.773438,0.164062,2.625000),vec3(0.773438,0.164062,2.625000),vec3(-0.601562,0.000000,2.585938),vec3(0.601562,0.000000,2.585938),vec3(-0.437500,-0.093750,2.531250),vec3(0.437500,-0.093750,2.531250),vec3(0.000000,0.898438,2.710938),vec3(0.000000,0.984375,3.078125),vec3(0.000000,-0.195312,3.671875),vec3(0.000000,-0.460938,2.812500),vec3(0.000000,-0.976562,2.539062),vec3(0.000000,-0.804688,2.656250),vec3(0.000000,-0.570312,2.679688),vec3(0.000000,-0.484375,2.718750),vec3(-0.851562,0.234375,2.945312),vec3(0.851562,0.234375,2.945312),vec3(-0.859375,0.320312,3.046875),vec3(0.859375,0.320312,3.046875),vec3(-0.773438,0.265625,3.437500),vec3(0.773438,0.265625,3.437500),vec3(-0.460938,0.437500,3.703125),vec3(0.460938,0.437500,3.703125),vec3(-0.734375,-0.046875,2.929688),vec3(0.734375,-0.046875,2.929688),vec3(-0.593750,-0.125000,3.164062),vec3(0.593750,-0.125000,3.164062),vec3(-0.640625,-0.007812,3.429688),vec3(0.640625,-0.007812,3.429688),vec3(-0.335938,0.054688,3.664062),vec3(0.335938,0.054688,3.664062),vec3(-0.234375,-0.351562,2.593750),vec3(0.234375,-0.351562,2.593750),vec3(-0.179688,-0.414062,2.742188),vec3(0.179688,-0.414062,2.742188),vec3(-0.289062,-0.710938,2.617188),vec3(0.289062,-0.710938,2.617188),vec3(-0.250000,-0.500000,2.609375),vec3(0.250000,-0.500000,2.609375),vec3(-0.328125,-0.914062,2.601562),vec3(0.328125,-0.914062,2.601562),vec3(-0.140625,-0.757812,2.632812),vec3(0.140625,-0.757812,2.632812),vec3(-0.125000,-0.539062,2.640625),vec3(0.125000,-0.539062,2.640625),vec3(-0.164062,-0.945312,2.562500),vec3(0.164062,-0.945312,2.562500),vec3(-0.218750,-0.281250,2.570312),vec3(0.218750,-0.281250,2.570312),vec3(-0.210938,-0.226562,2.531250),vec3(0.210938,-0.226562,2.531250),vec3(-0.203125,-0.171875,2.500000),vec3(0.203125,-0.171875,2.500000),vec3(-0.210938,-0.390625,2.835938),vec3(0.210938,-0.390625,2.835938),vec3(-0.296875,-0.312500,3.265625),vec3(0.296875,-0.312500,3.265625),vec3(-0.343750,-0.148438,3.539062),vec3(0.343750,-0.148438,3.539062),vec3(-0.453125,0.867188,3.382812),vec3(0.453125,0.867188,3.382812),vec3(-0.453125,0.929688,3.070312),vec3(0.453125,0.929688,3.070312),vec3(-0.453125,0.851562,2.765625),vec3(0.453125,0.851562,2.765625),vec3(-0.460938,0.523438,2.570312),vec3(0.460938,0.523438,2.570312),vec3(-0.726562,0.406250,2.664062),vec3(0.726562,0.406250,2.664062),vec3(-0.632812,0.453125,2.718750),vec3(0.632812,0.453125,2.718750),vec3(-0.640625,0.703125,2.945312),vec3(0.640625,0.703125,2.945312),vec3(-0.796875,0.562500,2.875000),vec3(0.796875,0.562500,2.875000),vec3(-0.796875,0.617188,3.117188),vec3(0.796875,0.617188,3.117188),vec3(-0.640625,0.750000,3.195312),vec3(0.640625,0.750000,3.195312),vec3(-0.640625,0.679688,3.445312),vec3(0.640625,0.679688,3.445312),vec3(-0.796875,0.539062,3.359375),vec3(0.796875,0.539062,3.359375),vec3(-0.617188,0.328125,3.585938),vec3(0.617188,0.328125,3.585938),vec3(-0.484375,0.023438,3.546875),vec3(0.484375,0.023438,3.546875),vec3(-0.820312,0.328125,3.203125),vec3(0.820312,0.328125,3.203125),vec3(-0.406250,-0.171875,2.851562),vec3(0.406250,-0.171875,2.851562),vec3(-0.429688,-0.195312,3.210938),vec3(0.429688,-0.195312,3.210938),vec3(-0.890625,0.406250,3.234375),vec3(0.890625,0.406250,3.234375),vec3(-0.773438,-0.140625,3.125000),vec3(0.773438,-0.140625,3.125000),vec3(-1.039062,-0.101562,3.328125),vec3(1.039062,-0.101562,3.328125),vec3(-1.281250,0.054688,3.429688),vec3(1.281250,0.054688,3.429688),vec3(-1.351562,0.320312,3.421875),vec3(1.351562,0.320312,3.421875),vec3(-1.234375,0.507812,3.421875),vec3(1.234375,0.507812,3.421875),vec3(-1.023438,0.476562,3.312500),vec3(1.023438,0.476562,3.312500),vec3(-1.015625,0.414062,3.289062),vec3(1.015625,0.414062,3.289062),vec3(-1.187500,0.437500,3.390625),vec3(1.187500,0.437500,3.390625),vec3(-1.265625,0.289062,3.406250),vec3(1.265625,0.289062,3.406250),vec3(-1.210938,0.078125,3.406250),vec3(1.210938,0.078125,3.406250),vec3(-1.031250,-0.039062,3.304688),vec3(1.031250,-0.039062,3.304688),vec3(-0.828125,-0.070312,3.132812),vec3(0.828125,-0.070312,3.132812),vec3(-0.921875,0.359375,3.218750),vec3(0.921875,0.359375,3.218750),vec3(-0.945312,0.304688,3.289062),vec3(0.945312,0.304688,3.289062),vec3(-0.882812,-0.023438,3.210938),vec3(0.882812,-0.023438,3.210938),vec3(-1.039062,0.000000,3.367188),vec3(1.039062,0.000000,3.367188),vec3(-1.187500,0.093750,3.445312),vec3(1.187500,0.093750,3.445312),vec3(-1.234375,0.250000,3.445312),vec3(1.234375,0.250000,3.445312),vec3(-1.171875,0.359375,3.437500),vec3(1.171875,0.359375,3.437500),vec3(-1.023438,0.343750,3.359375),vec3(1.023438,0.343750,3.359375),vec3(-0.843750,0.289062,3.210938),vec3(0.843750,0.289062,3.210938),vec3(-0.835938,0.171875,3.273438),vec3(0.835938,0.171875,3.273438),vec3(-0.757812,0.093750,3.273438),vec3(0.757812,0.093750,3.273438),vec3(-0.820312,0.085938,3.273438),vec3(0.820312,0.085938,3.273438),vec3(-0.843750,0.015625,3.273438),vec3(0.843750,0.015625,3.273438),vec3(-0.812500,-0.015625,3.273438),vec3(0.812500,-0.015625,3.273438),vec3(-0.726562,0.000000,3.070312),vec3(0.726562,0.000000,3.070312),vec3(-0.718750,-0.023438,3.171875),vec3(0.718750,-0.023438,3.171875),vec3(-0.718750,0.039062,3.187500),vec3(0.718750,0.039062,3.187500),vec3(-0.796875,0.203125,3.210938),vec3(0.796875,0.203125,3.210938),vec3(-0.890625,0.242188,3.265625),vec3(0.890625,0.242188,3.265625),vec3(-0.890625,0.234375,3.320312),vec3(0.890625,0.234375,3.320312),vec3(-0.812500,-0.015625,3.320312),vec3(0.812500,-0.015625,3.320312),vec3(-0.851562,0.015625,3.320312),vec3(0.851562,0.015625,3.320312),vec3(-0.828125,0.078125,3.320312),vec3(0.828125,0.078125,3.320312),vec3(-0.765625,0.093750,3.320312),vec3(0.765625,0.093750,3.320312),vec3(-0.843750,0.171875,3.320312),vec3(0.843750,0.171875,3.320312),vec3(-1.039062,0.328125,3.414062),vec3(1.039062,0.328125,3.414062),vec3(-1.187500,0.343750,3.484375),vec3(1.187500,0.343750,3.484375),vec3(-1.257812,0.242188,3.492188),vec3(1.257812,0.242188,3.492188),vec3(-1.210938,0.085938,3.484375),vec3(1.210938,0.085938,3.484375),vec3(-1.046875,0.000000,3.421875),vec3(1.046875,0.000000,3.421875),vec3(-0.882812,-0.015625,3.265625),vec3(0.882812,-0.015625,3.265625),vec3(-0.953125,0.289062,3.343750),vec3(0.953125,0.289062,3.343750),vec3(-0.890625,0.109375,3.328125),vec3(0.890625,0.109375,3.328125),vec3(-0.937500,0.062500,3.335938),vec3(0.937500,0.062500,3.335938),vec3(-1.000000,0.125000,3.367188),vec3(1.000000,0.125000,3.367188),vec3(-0.960938,0.171875,3.351562),vec3(0.960938,0.171875,3.351562),vec3(-1.015625,0.234375,3.375000),vec3(1.015625,0.234375,3.375000),vec3(-1.054688,0.187500,3.382812),vec3(1.054688,0.187500,3.382812),vec3(-1.109375,0.210938,3.390625),vec3(1.109375,0.210938,3.390625),vec3(-1.085938,0.273438,3.390625),vec3(1.085938,0.273438,3.390625),vec3(-1.023438,0.437500,3.484375),vec3(1.023438,0.437500,3.484375),vec3(-1.250000,0.468750,3.546875),vec3(1.250000,0.468750,3.546875),vec3(-1.367188,0.296875,3.500000),vec3(1.367188,0.296875,3.500000),vec3(-1.312500,0.054688,3.531250),vec3(1.312500,0.054688,3.531250),vec3(-1.039062,-0.085938,3.492188),vec3(1.039062,-0.085938,3.492188),vec3(-0.789062,-0.125000,3.328125),vec3(0.789062,-0.125000,3.328125),vec3(-0.859375,0.382812,3.382812),vec3(0.859375,0.382812,3.382812)},{46,2,44,3,47,45,44,4,42,5,45,43,2,6,4,7,3,5,0,8,2,9,1,3,10,14,8,15,11,9,8,16,6,17,9,7,20,16,14,21,17,19,12,20,14,21,13,15,22,26,20,27,23,21,26,18,20,27,19,29,32,28,26,33,29,31,34,26,24,35,27,33,36,32,34,37,33,39,38,30,32,39,31,41,44,40,38,45,41,43,46,38,36,47,39,45,36,48,46,37,49,51,34,50,36,35,51,53,24,52,34,25,53,55,22,54,24,23,55,57,22,58,56,59,23,57,12,62,58,63,13,59,10,64,62,65,11,63,0,48,64,49,1,65,60,64,48,49,65,61,62,64,60,61,65,63,60,58,62,63,59,61,60,56,58,59,57,61,60,54,56,57,55,61,60,52,54,55,53,61,60,50,52,53,51,61,60,48,50,51,49,61,173,90,88,174,90,175,171,88,86,172,89,174,84,171,86,172,85,87,82,169,84,170,83,85,80,167,82,168,81,83,78,145,163,146,79,164,93,145,91,94,146,148,93,149,147,150,94,148,97,149,95,98,150,152,99,151,97,100,152,154,101,153,99,102,154,156,101,157,155,158,102,156,105,157,103,106,158,160,107,159,105,108,160,162,66,161,107,66,162,67,127,161,109,128,162,160,127,157,159,158,128,160,155,178,125,156,179,158,153,125,123,154,126,156,151,123,121,152,124,154,149,121,119,150,122,152,147,119,117,148,120,150,145,117,115,146,118,148,163,115,113,164,116,146,113,176,163,176,114,164,161,111,109,162,112,67,111,177,182,177,112,183,180,177,176,181,177,183,134,175,173,175,135,174,132,173,171,174,133,172,132,169,130,133,170,172,165,184,167,185,166,168,130,167,184,168,131,185,189,186,143,189,187,188,186,68,184,187,68,188,130,68,129,131,68,185,141,190,143,191,142,144,139,192,141,193,140,142,196,139,138,197,140,195,70,138,137,70,138,197,143,69,189,144,69,191,190,207,69,191,207,206,70,199,196,200,70,197,196,201,194,202,197,195,201,192,194,202,193,204,192,205,190,206,193,191,203,199,198,204,200,202,198,205,203,206,198,204,138,163,176,164,138,176,139,210,163,211,140,164,143,210,141,144,211,213,186,212,143,187,213,166,208,165,80,209,166,213,214,212,208,215,213,211,78,210,214,211,79,215,129,221,130,129,222,71,132,221,219,222,133,220,134,219,217,220,135,218,136,217,216,218,136,216,217,230,216,218,230,229,217,226,228,227,218,229,219,224,226,225,220,227,71,224,221,71,225,223,223,228,224,229,223,225,224,228,226,227,229,225,182,233,231,234,183,232,111,231,253,232,112,254,111,255,109,112,256,254,113,233,180,114,234,252,113,249,251,250,114,252,115,247,249,248,116,250,117,245,247,246,118,248,119,243,245,244,120,246,123,243,121,124,244,242,125,241,123,126,242,240,125,235,239,236,126,240,178,237,235,238,179,236,127,255,237,256,128,238,255,275,237,256,276,258,235,275,277,276,236,278,235,273,239,236,274,278,239,271,241,240,272,274,243,271,269,272,244,270,243,267,245,244,268,270,247,267,265,268,248,266,247,263,249,248,264,266,249,261,251,250,262,264,233,261,279,262,234,280,255,259,257,260,256,258,253,281,259,282,254,260,231,279,281,280,232,282,66,283,72,284,66,72,107,285,283,286,108,284,103,285,105,104,286,288,101,287,103,102,288,290,99,289,101,100,290,292,99,293,291,294,100,292,95,293,97,96,294,296,95,297,295,298,96,296,93,299,297,300,94,298,308,337,307,308,338,328,307,335,306,307,336,338,306,339,305,306,340,336,88,305,339,305,89,340,86,339,333,340,87,334,84,333,329,334,85,330,82,329,331,330,83,332,329,337,331,338,330,332,333,335,329,334,336,340,331,327,325,332,328,338,80,331,325,332,81,326,341,214,208,342,215,344,325,208,80,326,209,342,214,345,78,215,346,344,345,91,78,346,92,300,323,303,76,324,303,352,351,77,303,352,77,350,77,347,304,348,77,304,304,327,308,328,304,308,327,341,325,328,342,348,295,317,309,318,296,310,315,76,75,316,76,324,357,302,301,358,302,356,302,353,74,354,302,74,74,315,75,316,74,75,291,361,363,362,292,364,363,367,365,368,364,366,365,369,371,370,366,372,371,375,373,376,372,374,377,375,313,378,376,374,315,373,377,374,316,378,353,371,373,372,354,374,355,365,371,366,356,372,357,363,365,364,358,366,291,359,289,292,360,364,359,301,73,360,301,358,283,287,289,288,284,290,283,359,73,360,284,73,72,283,73,73,284,72,295,361,293,296,362,310,309,367,361,368,310,362,311,369,367,370,312,368,375,381,313,376,382,370,349,383,347,350,384,386,383,319,317,384,320,386,297,383,317,384,298,318,299,341,383,342,300,384,341,347,383,384,348,342,299,345,343,344,346,300,321,377,313,322,378,380,377,323,315,378,324,380,385,321,319,386,322,380,351,385,349,352,386,380,323,379,351,352,380,324,387,401,399,388,402,414,399,403,397,404,400,398,403,395,397,404,396,406,405,393,395,406,394,408,407,391,393,408,392,410,391,411,389,412,392,390,409,417,411,418,410,412,407,419,409,420,408,410,423,407,405,424,408,422,425,405,403,426,406,424,427,403,401,428,404,426,401,415,427,416,402,428,319,441,317,320,442,444,389,443,319,390,444,412,309,441,311,442,310,312,381,413,387,414,382,388,411,439,443,440,412,444,445,439,437,446,440,444,433,437,435,438,434,436,447,433,431,448,434,446,447,449,429,448,450,432,429,415,413,430,416,450,311,429,381,430,312,382,441,447,311,442,448,446,441,443,445,446,444,442,415,451,475,452,416,476,431,451,449,432,452,462,431,459,461,460,432,462,435,459,433,436,460,458,437,457,435,438,458,456,437,453,455,454,438,456,439,473,453,474,440,454,427,475,463,476,428,464,425,463,465,464,426,466,423,465,467,466,424,468,423,469,421,424,470,468,421,471,419,422,472,470,419,473,417,420,474,472,455,477,457,456,478,480,479,483,477,480,484,482,483,487,485,488,484,486,487,491,485,488,492,490,463,485,491,486,464,492,483,475,451,484,476,486,461,483,451,462,484,478,457,461,459,462,458,460,473,455,453,474,456,480,471,479,473,480,472,474,487,471,469,488,472,482,489,469,467,490,470,488,465,489,467,490,466,468,463,491,465,466,492,464,391,503,501,504,392,502,393,501,499,502,394,500,393,497,395,394,498,500,395,495,397,396,496,498,397,493,399,398,494,496,399,505,387,400,506,494,501,505,493,502,506,504,493,499,501,500,494,502,495,497,499,500,498,496,381,505,313,382,506,388,313,503,321,504,314,322,319,503,389,504,320,390,46,0,2,3,1,47,44,2,4,5,3,45,2,8,6,7,9,3,0,10,8,9,11,1,10,12,14,15,13,11,8,14,16,17,15,9,20,18,16,21,15,17,12,22,20,21,23,13,22,24,26,27,25,23,26,28,18,27,21,19,32,30,28,33,27,29,34,32,26,35,25,27,36,38,32,37,35,33,38,40,30,39,33,31,44,42,40,45,39,41,46,44,38,47,37,39,36,50,48,37,47,49,34,52,50,35,37,51,24,54,52,25,35,53,22,56,54,23,25,55,22,12,58,59,13,23,12,10,62,63,11,13,10,0,64,65,1,11,0,46,48,49,47,1,173,175,90,174,89,90,171,173,88,172,87,89,84,169,171,172,170,85,82,167,169,170,168,83,80,165,167,168,166,81,78,91,145,146,92,79,93,147,145,94,92,146,93,95,149,150,96,94,97,151,149,98,96,150,99,153,151,100,98,152,101,155,153,102,100,154,101,103,157,158,104,102,105,159,157,106,104,158,107,161,159,108,106,160,66,67,161,66,108,162,127,159,161,128,110,162,127,178,157,158,179,128,155,157,178,156,126,179,153,155,125,154,124,126,151,153,123,152,122,124,149,151,121,150,120,122,147,149,119,148,118,120,145,147,117,146,116,118,163,145,115,164,114,116,113,180,176,176,181,114,161,67,111,162,110,112,111,67,177,177,67,112,180,182,177,181,176,177,134,136,175,175,136,135,132,134,173,174,135,133,132,171,169,133,131,170,165,186,184,185,187,166,130,169,167,168,170,131,189,188,186,189,144,187,186,188,68,187,185,68,130,184,68,131,129,68,141,192,190,191,193,142,139,194,192,193,195,140,196,194,139,197,138,140,70,196,138,143,190,69,144,189,69,190,205,207,191,69,207,70,198,199,200,198,70,196,199,201,202,200,197,201,203,192,202,195,193,192,203,205,206,204,193,203,201,199,204,198,200,198,207,205,206,207,198,138,139,163,164,140,138,139,141,210,211,142,140,143,212,210,144,142,211,186,165,212,187,144,213,208,212,165,209,81,166,214,210,212,215,209,213,78,163,210,211,164,79,129,71,221,129,131,222,132,130,221,222,131,133,134,132,219,220,133,135,136,134,217,218,135,136,217,228,230,218,216,230,217,219,226,227,220,218,219,221,224,225,222,220,71,223,224,71,222,225,223,230,228,229,230,223,182,180,233,234,181,183,111,182,231,232,183,112,111,253,255,112,110,256,113,251,233,114,181,234,113,115,249,250,116,114,115,117,247,248,118,116,117,119,245,246,120,118,119,121,243,244,122,120,123,241,243,124,122,244,125,239,241,126,124,242,125,178,235,236,179,126,178,127,237,238,128,179,127,109,255,256,110,128,255,257,275,256,238,276,235,237,275,276,238,236,235,277,273,236,240,274,239,273,271,240,242,272,243,241,271,272,242,244,243,269,267,244,246,268,247,245,267,268,246,248,247,265,263,248,250,264,249,263,261,250,252,262,233,251,261,262,252,234,255,253,259,260,254,256,253,231,281,282,232,254,231,233,279,280,234,232,66,107,283,284,108,66,107,105,285,286,106,108,103,287,285,104,106,286,101,289,287,102,104,288,99,291,289,100,102,290,99,97,293,294,98,100,95,295,293,96,98,294,95,93,297,298,94,96,93,91,299,300,92,94,308,327,337,308,307,338,307,337,335,307,306,336,306,335,339,306,305,340,88,90,305,305,90,89,86,88,339,340,89,87,84,86,333,334,87,85,82,84,329,330,85,83,329,335,337,338,336,330,333,339,335,334,330,336,331,337,327,332,326,328,80,82,331,332,83,81,341,343,214,342,209,215,325,341,208,326,81,209,214,343,345,215,79,346,345,299,91,346,79,92,323,351,303,324,76,303,351,349,77,352,303,77,77,349,347,348,350,77,304,347,327,328,348,304,327,347,341,328,326,342,295,297,317,318,298,296,315,323,76,316,75,76,357,355,302,358,301,302,302,355,353,354,356,302,74,353,315,316,354,74,291,293,361,362,294,292,363,361,367,368,362,364,365,367,369,370,368,366,371,369,375,376,370,372,377,373,375,378,314,376,315,353,373,374,354,316,353,355,371,372,356,354,355,357,365,366,358,356,357,359,363,364,360,358,291,363,359,292,290,360,359,357,301,360,73,301,283,285,287,288,286,284,283,289,359,360,290,284,295,309,361,296,294,362,309,311,367,368,312,310,311,381,369,370,382,312,375,369,381,376,314,382,349,385,383,350,348,384,383,385,319,384,318,320,297,299,383,384,300,298,299,343,341,342,344,300,321,379,377,322,314,378,377,379,323,378,316,324,385,379,321,386,320,322,351,379,385,352,350,386,387,413,401,388,400,402,399,401,403,404,402,400,403,405,395,404,398,396,405,407,393,406,396,394,407,409,391,408,394,392,391,409,411,412,410,392,409,419,417,418,420,410,407,421,419,420,422,408,423,421,407,424,406,408,425,423,405,426,404,406,427,425,403,428,402,404,401,413,415,416,414,402,319,443,441,320,318,442,389,411,443,390,320,444,309,317,441,442,318,310,381,429,413,414,430,382,411,417,439,440,418,412,445,443,439,446,438,440,433,445,437,438,446,434,447,445,433,448,432,434,447,431,449,448,430,450,429,449,415,430,414,416,311,447,429,430,448,312,441,445,447,442,312,448,415,449,451,452,450,416,431,461,451,432,450,452,431,433,459,460,434,432,435,457,459,436,434,460,437,455,457,438,436,458,437,439,453,454,440,438,439,417,473,474,418,440,427,415,475,476,416,428,425,427,463,464,428,426,423,425,465,466,426,424,423,467,469,424,422,470,421,469,471,422,420,472,419,471,473,420,418,474,455,479,477,456,458,478,479,481,483,480,478,484,483,481,487,488,482,484,487,489,491,488,486,492,463,475,485,486,476,464,483,485,475,484,452,476,461,477,483,462,452,484,457,477,461,462,478,458,473,479,455,474,454,456,471,481,479,480,482,472,487,481,471,488,470,472,489,487,469,490,468,470,465,491,489,490,492,466,391,389,503,504,390,392,393,391,501,502,392,394,393,499,497,394,396,498,395,497,495,396,398,496,397,495,493,398,400,494,399,493,505,400,388,506,501,503,505,502,494,506,493,495,499,500,496,494,381,387,505,382,314,506,313,505,503,504,506,314,319,321,503,504,322,320}); \ No newline at end of file + const model testModel({vec3(-0.698513,-0.742437,4.000000),vec3(-0.044645,1.325787,4.000000),vec3(-0.656388,-0.742437,3.761094),vec3(-0.041953,1.325787,3.984730),vec3(-0.535092,-0.742437,3.551004),vec3(-0.034200,1.325787,3.971303),vec3(-0.349257,-0.742437,3.395070),vec3(-0.022323,1.325787,3.961336),vec3(-0.043996,-0.742437,3.312099),vec3(-0.018354,1.325787,3.956033),vec3(0.043996,-0.742437,3.312099),vec3(0.018354,1.325787,3.956033),vec3(0.349257,-0.742437,3.395070),vec3(0.022323,1.325787,3.961336),vec3(0.535092,-0.742437,3.551004),vec3(0.034200,1.325787,3.971303),vec3(0.656388,-0.742437,3.761094),vec3(0.041953,1.325787,3.984730),vec3(0.698513,-0.742437,4.000000),vec3(0.044645,1.325787,4.000000),vec3(0.656388,-0.742437,4.238905),vec3(0.041953,1.325787,4.015269),vec3(0.535092,-0.742437,4.448996),vec3(0.034200,1.325787,4.028697),vec3(0.349257,-0.742437,4.604930),vec3(0.022323,1.325787,4.038664),vec3(0.121296,-0.742437,4.687901),vec3(0.007753,1.325787,4.043967),vec3(-0.121296,-0.742437,4.687901),vec3(-0.007753,1.325787,4.043967),vec3(-0.349257,-0.742437,4.604930),vec3(-0.022323,1.325787,4.038664),vec3(-0.535092,-0.742437,4.448996),vec3(-0.034200,1.325787,4.028697),vec3(-0.656388,-0.742437,4.238905),vec3(-0.041953,1.325787,4.015269),vec3(-0.544639,0.740545,4.000000),vec3(-0.511793,0.740545,3.813723),vec3(-0.409479,0.628906,3.628956),vec3(-0.290178,0.727410,3.529226),vec3(-0.100778,0.727410,3.460290),vec3(0.100778,0.727410,3.460290),vec3(0.290178,0.727410,3.529226),vec3(0.409479,0.628906,3.628956),vec3(0.511793,0.740545,3.813723),vec3(0.544639,0.740545,4.000000),vec3(0.511793,0.740545,4.186277),vec3(0.417218,0.740545,4.350087),vec3(0.272319,0.740545,4.471671),vec3(0.094576,0.740545,4.536365),vec3(-0.094576,0.740545,4.536365),vec3(-0.272319,0.740545,4.471671),vec3(-0.417218,0.740545,4.350087),vec3(-0.511793,0.740545,4.186277),vec3(-0.694426,-0.025119,3.747249),vec3(-0.527394,0.131239,3.502473),vec3(-0.367433,-0.011984,3.367874),vec3(-0.127608,-0.011984,3.280585),vec3(0.127608,-0.011984,3.280585),vec3(0.367433,-0.011984,3.367874),vec3(0.527394,0.131239,3.502473),vec3(0.694426,-0.025119,3.747249),vec3(0.738993,-0.025119,4.000000),vec3(0.694426,-0.025119,4.252750),vec3(0.566102,-0.025119,4.475016),vec3(0.369497,-0.025119,4.639987),vec3(0.128325,-0.025119,4.727766),vec3(-0.128325,-0.025119,4.727766),vec3(-0.369497,-0.025119,4.639987),vec3(-0.566102,-0.025119,4.475016),vec3(-0.694426,-0.025119,4.252750),vec3(-0.738993,-0.025119,4.000000),vec3(-0.410385,-1.654204,4.000000),vec3(-0.385635,-1.654204,3.859640),vec3(-0.314373,-1.654204,3.736210),vec3(-0.205192,-1.654204,3.644597),vec3(-0.071263,-1.654204,3.595850),vec3(0.071263,-1.654204,3.595850),vec3(0.205192,-1.654204,3.644597),vec3(0.314373,-1.654204,3.736210),vec3(0.385635,-1.654204,3.859640),vec3(0.410385,-1.654204,4.000000),vec3(0.385635,-1.654204,4.140360),vec3(0.314373,-1.654204,4.263790),vec3(0.205192,-1.654204,4.355403),vec3(0.071263,-1.654204,4.404150),vec3(-0.071263,-1.654204,4.404150),vec3(-0.205192,-1.654204,4.355403),vec3(-0.314373,-1.654204,4.263790),vec3(-0.385635,-1.654204,4.140360),vec3(-0.237705,1.175272,4.000000),vec3(-0.223370,1.175272,3.918700),vec3(-0.182093,1.175272,3.847206),vec3(-0.118853,1.175272,3.794141),vec3(-0.041277,1.175272,3.765906),vec3(0.041277,1.175272,3.765906),vec3(0.118853,1.175272,3.794141),vec3(0.182093,1.175272,3.847206),vec3(0.223370,1.175272,3.918700),vec3(0.237705,1.175272,4.000000),vec3(0.223370,1.175272,4.081300),vec3(0.182093,1.175272,4.152794),vec3(0.118853,1.175272,4.205859),vec3(0.041277,1.175272,4.234094),vec3(-0.041277,1.175272,4.234094),vec3(-0.118853,1.175272,4.205859),vec3(-0.182093,1.175272,4.152794),vec3(-0.223370,1.175272,4.081300),vec3(-0.046326,1.339588,4.000000),vec3(0.023163,1.339588,4.040120),vec3(0.023163,1.339588,3.959880),vec3(-0.000000,1.637896,4.000000),vec3(0.272319,0.740545,3.528329),vec3(0.417218,0.641971,3.649913),vec3(0.061970,0.740545,3.463635),vec3(-0.061970,0.740545,3.463635),vec3(-0.272319,0.740545,3.528329),vec3(-0.417218,0.641971,3.649913),vec3(-0.566102,0.118174,3.524984),vec3(0.566102,0.118174,3.524984),vec3(-0.369497,-0.025119,3.360013),vec3(-0.046546,-0.025119,3.272234),vec3(0.046546,-0.025119,3.272234),vec3(0.369497,-0.025119,3.360013),vec3(-0.237002,0.617707,3.374269),vec3(-0.257333,0.152925,3.271079),vec3(-0.082310,0.617707,3.317966),vec3(-0.089371,0.152925,3.233547),vec3(0.082310,0.617707,3.317966),vec3(0.089371,0.152925,3.233547),vec3(0.237002,0.617707,3.374269),vec3(0.257333,0.152925,3.271079),vec3(0.334441,0.519176,3.455724),vec3(-0.334441,0.519176,3.455724),vec3(-0.369362,0.235177,3.328954),vec3(0.369362,0.235177,3.328954),vec3(-0.096339,0.701041,3.383524),vec3(0.096339,0.701041,3.383524),vec3(-0.489408,0.156222,3.460765),vec3(-0.391442,0.602531,3.544760),vec3(-0.118417,0.027654,3.269279),vec3(0.118417,0.027654,3.269279),vec3(0.489408,0.156222,3.460765),vec3(0.391442,0.602531,3.544760),vec3(-0.277396,0.701041,3.449423),vec3(0.340969,0.027654,3.344608),vec3(0.277396,0.701041,3.449423),vec3(-0.340969,0.027654,3.344608),vec3(-0.040432,-0.742437,3.312099),vec3(0.040432,-0.742437,3.312099),vec3(0.002584,1.325787,3.956033),vec3(-0.002584,1.325787,3.956033),vec3(-0.031525,0.740545,3.463635),vec3(0.031525,0.740545,3.463635),vec3(-0.042775,-0.025119,3.272234),vec3(0.042775,-0.025119,3.272234),vec3(-0.023754,-1.654204,3.595850),vec3(0.023754,-1.654204,3.595850),vec3(-0.013759,1.175272,3.765906),vec3(0.013759,1.175272,3.765906),vec3(-0.033593,0.727410,3.460290),vec3(0.033593,0.727410,3.460290),vec3(-0.042536,-0.011984,3.280585),vec3(0.042536,-0.011984,3.280585),vec3(-0.027437,0.617707,3.317966),vec3(0.027437,0.617707,3.317966),vec3(-0.029790,0.152925,3.233547),vec3(0.029790,0.152925,3.233547),vec3(0.032113,0.701041,3.383524),vec3(-0.032113,0.701041,3.383524),vec3(-0.039472,0.027654,3.269279),vec3(0.039472,0.027654,3.269279)},{{90,90},{1,1},{3,3},{91,91},{3,3},{5,5},{92,92},{5,5},{7,7},{93,93},{7,7},{9,9},{159,153},{150,149},{11,11},{95,95},{11,11},{13,13},{96,96},{13,13},{15,15},{97,97},{15,15},{17,17},{98,98},{17,17},{19,19},{99,99},{19,19},{21,21},{100,100},{21,21},{23,23},{101,101},{23,23},{25,25},{102,102},{25,25},{27,27},{103,103},{27,27},{29,29},{104,104},{29,29},{31,31},{105,105},{31,31},{33,33},{106,106},{33,33},{35,35},{107,107},{35,35},{1,1},{2,2},{4,4},{74,74},{70,70},{53,53},{36,36},{69,69},{52,52},{53,53},{68,68},{51,51},{52,52},{67,67},{50,50},{51,51},{66,66},{49,49},{50,50},{65,65},{48,48},{49,49},{64,64},{47,47},{48,48},{63,63},{46,46},{47,47},{62,62},{45,45},{46,46},{61,61},{44,44},{45,45},{119,119},{113,113},{44,44},{144,144},{136,136},{126,126},{143,143},{142,142},{135,135},{170,159},{140,140},{127,127},{168,158},{137,137},{128,128},{138,138},{139,139},{133,133},{54,54},{37,37},{117,117},{71,71},{36,36},{37,37},{0,0},{71,71},{54,54},{2,2},{54,54},{118,118},{4,4},{118,118},{120,120},{6,6},{120,120},{121,121},{149,148},{155,151},{122,122},{10,10},{122,122},{123,123},{12,12},{123,123},{119,119},{14,14},{119,119},{61,61},{16,16},{61,61},{62,62},{18,18},{62,62},{63,63},{20,20},{63,63},{64,64},{22,22},{64,64},{65,65},{24,24},{65,65},{66,66},{26,26},{66,66},{67,67},{28,28},{67,67},{68,68},{30,30},{68,68},{69,69},{32,32},{69,69},{70,70},{34,34},{70,70},{71,71},{72,72},{73,73},{74,74},{12,12},{14,14},{79,79},{22,22},{24,24},{84,84},{32,32},{34,34},{89,89},{149,148},{10,10},{77,77},{18,18},{20,20},{82,82},{28,28},{30,30},{87,87},{4,4},{6,6},{75,75},{14,14},{16,16},{80,80},{0,0},{2,2},{73,73},{24,24},{26,26},{85,85},{34,34},{0,0},{72,72},{10,10},{12,12},{78,78},{20,20},{22,22},{83,83},{30,30},{32,32},{88,88},{6,6},{8,8},{76,76},{16,16},{18,18},{81,81},{26,26},{28,28},{86,86},{53,53},{107,107},{90,90},{52,52},{106,106},{107,107},{51,51},{105,105},{106,106},{50,50},{104,104},{105,105},{49,49},{103,103},{104,104},{48,48},{102,102},{103,103},{47,47},{101,101},{102,102},{46,46},{100,100},{101,101},{45,45},{99,99},{100,100},{44,44},{98,98},{99,99},{113,113},{97,97},{98,98},{112,112},{96,96},{97,97},{114,114},{95,95},{96,96},{153,150},{159,153},{95,95},{116,116},{93,93},{94,94},{117,117},{92,92},{93,93},{37,37},{91,91},{92,92},{36,36},{90,90},{91,91},{108,108},{5,5},{3,3},{108,108},{7,7},{5,5},{110,110},{7,7},{108,108},{110,110},{11,11},{150,149},{110,110},{13,13},{11,11},{110,110},{15,15},{13,13},{110,110},{17,17},{15,15},{110,110},{19,19},{17,17},{109,109},{19,19},{110,110},{109,109},{23,23},{21,21},{109,109},{25,25},{23,23},{109,109},{27,27},{25,25},{109,109},{29,29},{27,27},{109,109},{31,31},{29,29},{108,108},{31,31},{109,109},{108,108},{35,35},{33,33},{108,108},{1,1},{35,35},{108,108},{3,3},{1,1},{110,110},{9,9},{7,7},{109,109},{21,21},{19,19},{108,108},{33,33},{31,31},{110,110},{108,108},{111,111},{109,109},{110,110},{111,111},{108,108},{109,109},{111,111},{43,43},{42,42},{112,112},{42,42},{41,41},{114,114},{160,154},{40,40},{115,115},{40,40},{39,39},{116,116},{39,39},{38,38},{117,117},{38,38},{55,55},{118,118},{60,60},{43,43},{113,113},{55,55},{56,56},{120,120},{56,56},{57,57},{121,121},{163,155},{58,58},{122,122},{58,58},{59,59},{123,123},{59,59},{60,60},{119,119},{131,131},{130,130},{132,132},{129,129},{128,128},{130,130},{167,157},{165,156},{128,128},{125,125},{124,124},{126,126},{134,134},{133,133},{124,124},{145,145},{141,141},{129,129},{146,146},{143,143},{132,132},{147,147},{138,138},{134,134},{139,139},{144,144},{124,124},{142,142},{145,145},{131,131},{137,137},{146,146},{130,130},{140,140},{147,147},{125,125},{57,57},{56,56},{147,147},{41,41},{42,42},{146,146},{60,60},{59,59},{145,145},{38,38},{39,39},{144,144},{56,56},{55,55},{138,138},{42,42},{43,43},{143,143},{59,59},{58,58},{141,141},{55,55},{38,38},{139,139},{161,154},{41,41},{137,137},{162,155},{57,57},{140,140},{43,43},{60,60},{142,142},{39,39},{40,40},{136,136},{58,58},{163,155},{171,159},{163,155},{162,155},{170,159},{40,40},{160,154},{169,158},{160,154},{161,154},{168,158},{127,127},{126,126},{164,156},{166,157},{164,156},{165,156},{57,57},{162,155},{154,151},{162,155},{163,155},{155,151},{41,41},{161,154},{153,150},{161,154},{160,154},{152,150},{115,115},{94,94},{158,153},{152,150},{158,153},{159,153},{8,8},{148,148},{156,152},{148,148},{149,148},{157,152},{8,8},{121,121},{154,151},{148,148},{154,151},{155,151},{136,136},{169,158},{164,156},{169,158},{168,158},{165,156},{141,141},{171,159},{167,157},{171,159},{170,159},{166,157},{94,94},{9,9},{151,149},{158,153},{151,149},{150,149}},{vec3(-0.9841,-0.1778,-0.0000),vec3(-0.9146,0.4043,-0.0000),vec3(-0.9236,-0.1767,-0.3401),vec3(-0.7754,0.5378,-0.3310),vec3(-0.7542,-0.1751,-0.6329),vec3(-0.4942,0.7357,-0.4632),vec3(-0.4654,-0.1742,-0.8678),vec3(-0.3167,0.8272,-0.4642),vec3(-0.1336,-0.1746,-0.9755),vec3(-0.1870,0.8394,-0.5103),vec3(0.1336,-0.1746,-0.9755),vec3(0.2385,0.5586,-0.7944),vec3(0.4654,-0.1742,-0.8678),vec3(0.6118,0.3738,-0.6972),vec3(0.7542,-0.1751,-0.6329),vec3(0.6743,0.5378,-0.5060),vec3(0.9236,-0.1767,-0.3401),vec3(0.6483,0.7357,-0.1964),vec3(0.9841,-0.1778,-0.0000),vec3(0.6026,0.7980,-0.0000),vec3(0.9247,-0.1778,0.3366),vec3(0.6483,0.7357,0.1964),vec3(0.7538,-0.1778,0.6325),vec3(0.6743,0.5378,0.5060),vec3(0.4920,-0.1778,0.8522),vec3(0.4573,0.4043,0.7921),vec3(0.1709,-0.1778,0.9691),vec3(0.1010,0.5378,0.8370),vec3(-0.1709,-0.1778,0.9691),vec3(-0.1541,0.7357,0.6596),vec3(-0.4920,-0.1778,0.8522),vec3(-0.3013,0.7980,0.5219),vec3(-0.7538,-0.1778,0.6325),vec3(-0.4942,0.7357,0.4632),vec3(-0.9247,-0.1778,0.3366),vec3(-0.7754,0.5378,0.3310),vec3(-0.9117,0.4109,-0.0000),vec3(-0.8297,0.4306,-0.3552),vec3(-0.7474,0.4493,-0.4893),vec3(-0.6162,0.6713,-0.4119),vec3(-0.1462,0.8137,-0.5626),vec3(0.1462,0.8137,-0.5626),vec3(0.6162,0.6713,-0.4119),vec3(0.7474,0.4493,-0.4893),vec3(0.8297,0.4306,-0.3552),vec3(0.9117,0.4109,-0.0000),vec3(0.8567,0.4109,0.3118),vec3(0.6984,0.4109,0.5860),vec3(0.4558,0.4109,0.7895),vec3(0.1583,0.4109,0.8978),vec3(-0.1583,0.4109,0.8978),vec3(-0.4558,0.4109,0.7895),vec3(-0.6984,0.4109,0.5860),vec3(-0.8567,0.4109,0.3118),vec3(-0.9366,0.0787,-0.3415),vec3(-0.6540,0.2483,-0.7146),vec3(-0.4809,-0.0267,-0.8764),vec3(-0.2295,-0.2559,-0.9391),vec3(0.2295,-0.2559,-0.9391),vec3(0.4809,-0.0267,-0.8764),vec3(0.6540,0.2483,-0.7146),vec3(0.9366,0.0787,-0.3415),vec3(0.9955,0.0944,-0.0000),vec3(0.9355,0.0944,0.3405),vec3(0.7626,0.0944,0.6399),vec3(0.4978,0.0944,0.8622),vec3(0.1729,0.0944,0.9804),vec3(-0.1729,0.0944,0.9804),vec3(-0.4978,0.0944,0.8622),vec3(-0.7626,0.0944,0.6399),vec3(-0.9355,0.0944,0.3405),vec3(-0.9955,0.0944,-0.0000),vec3(-0.6306,-0.7761,-0.0000),vec3(-0.5925,-0.7761,-0.2157),vec3(-0.4830,-0.7761,-0.4053),vec3(-0.2994,-0.7758,-0.5554),vec3(-0.0968,-0.7729,-0.6272),vec3(0.0968,-0.7729,-0.6272),vec3(0.2994,-0.7758,-0.5554),vec3(0.4830,-0.7761,-0.4053),vec3(0.5925,-0.7761,-0.2157),vec3(0.6306,-0.7761,-0.0000),vec3(0.5925,-0.7761,0.2157),vec3(0.4830,-0.7761,0.4053),vec3(0.3153,-0.7761,0.5461),vec3(0.1095,-0.7761,0.6210),vec3(-0.1095,-0.7761,0.6210),vec3(-0.3153,-0.7761,0.5461),vec3(-0.4830,-0.7761,0.4053),vec3(-0.5925,-0.7761,0.2157),vec3(-0.7312,0.6821,-0.0000),vec3(-0.6724,0.6766,-0.3003),vec3(-0.5787,0.6552,-0.4856),vec3(-0.4113,0.6744,-0.6132),vec3(-0.1263,0.6795,-0.7227),vec3(0.1263,0.6795,-0.7227),vec3(0.4113,0.6744,-0.6132),vec3(0.5787,0.6552,-0.4856),vec3(0.6724,0.6766,-0.3003),vec3(0.7312,0.6821,-0.0000),vec3(0.6871,0.6821,0.2501),vec3(0.5601,0.6821,0.4700),vec3(0.3656,0.6821,0.6333),vec3(0.1270,0.6821,0.7201),vec3(-0.1270,0.6821,0.7201),vec3(-0.3656,0.6821,0.6333),vec3(-0.5601,0.6821,0.4700),vec3(-0.6871,0.6821,0.2501),vec3(-0.9437,0.3307,-0.0000),vec3(0.4719,0.3307,0.8173),vec3(0.4828,0.3664,-0.7954),vec3(-0.0000,1.0000,-0.0000),vec3(0.4360,0.5903,-0.6794),vec3(0.7412,0.4302,-0.5153),vec3(0.0801,0.4383,-0.8953),vec3(-0.0801,0.4383,-0.8953),vec3(-0.4360,0.5903,-0.6794),vec3(-0.7412,0.4302,-0.5153),vec3(-0.7512,0.1841,-0.6339),vec3(0.7512,0.1841,-0.6339),vec3(-0.4477,-0.0668,-0.8917),vec3(-0.0796,0.2265,-0.9707),vec3(0.0796,0.2265,-0.9707),vec3(0.4477,-0.0668,-0.8917),vec3(-0.4495,0.3543,-0.8200),vec3(-0.4139,-0.0417,-0.9094),vec3(-0.1336,0.3969,-0.9081),vec3(-0.1290,-0.0457,-0.9906),vec3(0.1336,0.3969,-0.9081),vec3(0.1290,-0.0457,-0.9906),vec3(0.4495,0.3543,-0.8200),vec3(0.4139,-0.0417,-0.9094),vec3(0.6817,0.2733,-0.6787),vec3(-0.6817,0.2733,-0.6787),vec3(-0.6489,0.1453,-0.7469),vec3(0.6489,0.1453,-0.7469),vec3(-0.1165,0.7887,-0.6037),vec3(0.1165,0.7887,-0.6037),vec3(-0.7684,0.1019,-0.6318),vec3(-0.8034,0.3755,-0.4622),vec3(-0.1458,-0.2754,-0.9502),vec3(0.1458,-0.2754,-0.9502),vec3(0.7684,0.1019,-0.6318),vec3(0.8034,0.3755,-0.4622),vec3(-0.5026,0.6609,-0.5574),vec3(0.4862,-0.1914,-0.8526),vec3(0.5026,0.6609,-0.5574),vec3(-0.4862,-0.1914,-0.8526),vec3(-0.0000,-0.1777,-0.9841),vec3(-0.0000,0.5535,-0.8329),vec3(-0.0000,0.4155,-0.9096),vec3(-0.0000,0.2527,-0.9676),vec3(-0.0000,-0.8053,-0.5928),vec3(-0.0000,0.6848,-0.7287),vec3(-0.0000,0.6777,-0.7353),vec3(-0.0000,0.1437,-0.9896),vec3(-0.0000,0.4106,-0.9118),vec3(-0.0000,-0.0491,-0.9988),vec3(-0.0000,0.8153,-0.5790),vec3(-0.0000,-0.2743,-0.9616)},{vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.8556,0.8746,1.0000),vec3(0.8556,0.8746,1.0000),vec3(0.8556,0.8746,1.0000),vec3(0.8556,0.8746,1.0000),vec3(0.8556,0.8746,1.0000),vec3(0.8556,0.8746,1.0000),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.8556,0.8746,1.0000),vec3(0.8556,0.8746,1.0000),vec3(0.8556,0.8746,1.0000),vec3(0.8556,0.8746,1.0000),vec3(0.8556,0.8746,1.0000),vec3(0.8556,0.8746,1.0000),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.9696,1.0000,0.0000),vec3(0.9695,0.9999,0.0005),vec3(0.9696,1.0000,0.0000),vec3(0.9696,1.0000,0.0000),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.0000,0.4470,0.0334),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.7050,0.7349,0.2011),vec3(0.7050,0.7349,0.2011),vec3(0.7050,0.7349,0.2011),vec3(0.7050,0.7349,0.2011),vec3(0.7050,0.7349,0.2011),vec3(0.7050,0.7349,0.2011),vec3(0.7050,0.7349,0.2011),vec3(0.7050,0.7349,0.2011),vec3(0.7050,0.7349,0.2011),vec3(0.7050,0.7349,0.2011),vec3(0.7050,0.7349,0.2011),vec3(0.7050,0.7349,0.2011),vec3(0.8556,0.8746,1.0000),vec3(0.8556,0.8746,1.0000),vec3(0.8556,0.8746,1.0000),vec3(0.8556,0.8746,1.0000),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900),vec3(0.1450,0.1371,0.1900)}); \ No newline at end of file