From e22bb748508b1360823b92c15bd2d7a918a47563 Mon Sep 17 00:00:00 2001 From: maelstrom Date: Tue, 25 Feb 2025 15:20:53 +0100 Subject: [PATCH] feat: spherical handles + rendering limit increase --- core/src/objects/handles.cpp | 8 +- core/src/rendering/defaultmeshes.cpp | 1082 +++++++++++++++++++++++++- core/src/rendering/defaultmeshes.h | 1 + core/src/rendering/mesh.cpp | 2 +- core/src/rendering/mesh.h | 2 + core/src/rendering/renderer.cpp | 37 +- editor/mainglwidget.cpp | 41 - tools/genmesh.py | 64 ++ 8 files changed, 1142 insertions(+), 95 deletions(-) create mode 100755 tools/genmesh.py diff --git a/core/src/objects/handles.cpp b/core/src/objects/handles.cpp index 69b571c..beeed8e 100644 --- a/core/src/objects/handles.cpp +++ b/core/src/objects/handles.cpp @@ -38,8 +38,8 @@ Data::CFrame Handles::GetCFrameOfHandle(HandleFace face) { // return adornee->lock()->cframe + face.normal * 5.f; if (worldMode) - return adornee->lock()->cframe + (adornee->lock()->size * 0.5f * face.normal) + face.normal * 5.f; - return adornee->lock()->cframe + glm::vec3(glm::mat4(adornee->lock()->cframe.Rotation()) * glm::vec4((adornee->lock()->size * 0.5f * face.normal) + face.normal * 5.f, 0)); + return adornee->lock()->cframe + (adornee->lock()->size * 0.5f * face.normal) + face.normal * 2.f; + return adornee->lock()->cframe + glm::vec3(glm::mat4(adornee->lock()->cframe.Rotation()) * glm::vec4((adornee->lock()->size * 0.5f * face.normal) + face.normal * 2.f, 0)); } Data::CFrame Handles::PartCFrameFromHandlePos(HandleFace face, Data::Vector3 newPos) { @@ -47,8 +47,8 @@ Data::CFrame Handles::PartCFrameFromHandlePos(HandleFace face, Data::Vector3 new // return adornee->lock()->cframe + face.normal * 5.f; if (worldMode) - return adornee->lock()->cframe.Rotation() + newPos - (adornee->lock()->size * 0.5f * face.normal) - face.normal * 5.f; - return adornee->lock()->cframe.Rotation() + newPos - glm::vec3(glm::mat4(adornee->lock()->cframe.Rotation()) * glm::vec4((adornee->lock()->size * 0.5f * face.normal) + face.normal * 5.f, 0)); + return adornee->lock()->cframe.Rotation() + newPos - (adornee->lock()->size * 0.5f * face.normal) - face.normal * 2.f; + return adornee->lock()->cframe.Rotation() + newPos - glm::vec3(glm::mat4(adornee->lock()->cframe.Rotation()) * glm::vec4((adornee->lock()->size * 0.5f * face.normal) + face.normal * 2.f, 0)); } std::optional Handles::RaycastHandle(rp3d::Ray ray) { diff --git a/core/src/rendering/defaultmeshes.cpp b/core/src/rendering/defaultmeshes.cpp index 92e350b..51bc90d 100644 --- a/core/src/rendering/defaultmeshes.cpp +++ b/core/src/rendering/defaultmeshes.cpp @@ -1,47 +1,1047 @@ #include "defaultmeshes.h" +static float CUBE_VERTICES[] = { + // positions // normals // texture coords + -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, + 0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f, + 0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, + 0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, + -0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, + -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, + -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + 0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, + 0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, + 0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, + -0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, + -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + -0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + -0.5f, 0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f, + -0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + -0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + -0.5f, -0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, + -0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 0.5f, 0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, + 0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + -0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, + 0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f, + 0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, + 0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, + -0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, + -0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, + -0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, + 0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, + 0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, + 0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, + -0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, + -0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, +}; +static float SPHERE_VERTICES[] = { + // positions // normals // texture coords + + 0.0, -0.5, 0.0, 0.0482, -0.9878, 0.1482, 0.181819, 0.0, + 0.1015905, -0.483975, 0.073809, 0.0482, -0.9878, 0.1482, 0.204546, 0.039365, + -0.0388035, -0.483975, 0.1194265, 0.0482, -0.9878, 0.1482, 0.159092, 0.039365, + 0.3618035, -0.22361, 0.2628625, 0.723, -0.5545, 0.4121, 0.272728, 0.157461, + 0.3047735, -0.3287595, 0.221428, 0.723, -0.5545, 0.4121, 0.295455, 0.118096, + 0.4063645, -0.2511505, 0.147619, 0.723, -0.5545, 0.4121, 0.318182, 0.157461, + 0.0, -0.5, 0.0, -0.1261, -0.9878, 0.0916, 0.909091, 0.0, + -0.0388035, -0.483975, 0.1194265, -0.1261, -0.9878, 0.0916, 0.931818, 0.039365, + -0.1255735, -0.4839745, 0.0, -0.1261, -0.9878, 0.0916, 0.886364, 0.039365, + 0.0, -0.5, 0.0, -0.1261, -0.9878, -0.0916, 0.727273, 0.0, + -0.1255735, -0.4839745, 0.0, -0.1261, -0.9878, -0.0916, 0.75, 0.039365, + -0.0388035, -0.483975, -0.1194265, -0.1261, -0.9878, -0.0916, 0.704546, 0.039365, + 0.0, -0.5, 0.0, 0.0482, -0.9878, -0.1482, 0.545455, 0.0, + -0.0388035, -0.483975, -0.1194265, 0.0482, -0.9878, -0.1482, 0.568182, 0.039365, + 0.1015905, -0.483975, -0.073809, 0.0482, -0.9878, -0.1482, 0.522728, 0.039365, + 0.3618035, -0.22361, 0.2628625, 0.8193, -0.3987, 0.4121, 0.272728, 0.157461, + 0.4063645, -0.2511505, 0.147619, 0.8193, -0.3987, 0.4121, 0.318182, 0.157461, + 0.430349, -0.1255755, 0.221429, 0.8193, -0.3987, 0.4121, 0.295455, 0.196826, + -0.138194, -0.22361, 0.4253245, -0.1387, -0.3987, 0.9065, 0.09091, 0.157461, + -0.0148195, -0.251151, 0.432092, -0.1387, -0.3987, 0.9065, 0.136364, 0.157461, + -0.0776075, -0.125576, 0.477711, -0.1387, -0.3987, 0.9065, 0.113637, 0.196826, + -0.447213, -0.223608, 0.0, -0.905, -0.3987, 0.1482, 0.818182, 0.157461, + -0.4155255, -0.2511495, 0.1194265, -0.905, -0.3987, 0.1482, 0.863636, 0.157461, + -0.478313, -0.1255745, 0.073809, -0.905, -0.3987, 0.1482, 0.840909, 0.196826, + -0.138194, -0.22361, -0.4253245, -0.4206, -0.3987, -0.8149, 0.636364, 0.157461, + -0.2419855, -0.251151, -0.3582825, -0.4206, -0.3987, -0.8149, 0.681818, 0.157461, + -0.2180035, -0.125576, -0.432094, -0.4206, -0.3987, -0.8149, 0.659091, 0.196826, + 0.3618035, -0.22361, -0.2628625, 0.6451, -0.3987, -0.6519, 0.454546, 0.157461, + 0.2659705, -0.251151, -0.340856, 0.6451, -0.3987, -0.6519, 0.5, 0.157461, + 0.3435795, -0.125576, -0.3408575, 0.6451, -0.3987, -0.6519, 0.477273, 0.196826, + 0.3618035, -0.22361, 0.2628625, 0.7711, -0.3024, 0.5603, 0.272728, 0.157461, + 0.430349, -0.1255755, 0.221429, 0.7711, -0.3024, 0.5603, 0.295455, 0.196826, + 0.3435795, -0.125576, 0.3408575, 0.7711, -0.3024, 0.5603, 0.250001, 0.196826, + -0.138194, -0.22361, 0.4253245, -0.2945, -0.3024, 0.9065, 0.09091, 0.157461, + -0.0776075, -0.125576, 0.477711, -0.2945, -0.3024, 0.9065, 0.113637, 0.196826, + -0.2180035, -0.125576, 0.432094, -0.2945, -0.3024, 0.9065, 0.068182, 0.196826, + -0.447213, -0.223608, 0.0, -0.9532, -0.3024, -0.0, 0.818182, 0.157461, + -0.478313, -0.1255745, 0.073809, -0.9532, -0.3024, -0.0, 0.840909, 0.196826, + -0.478313, -0.1255745, -0.073809, -0.9532, -0.3024, -0.0, 0.795455, 0.196826, + -0.138194, -0.22361, -0.4253245, -0.2945, -0.3024, -0.9065, 0.636364, 0.157461, + -0.2180035, -0.125576, -0.432094, -0.2945, -0.3024, -0.9065, 0.659091, 0.196826, + -0.0776075, -0.125576, -0.477711, -0.2945, -0.3024, -0.9065, 0.613637, 0.196826, + 0.3618035, -0.22361, -0.2628625, 0.7711, -0.3024, -0.5603, 0.454546, 0.157461, + 0.3435795, -0.125576, -0.3408575, 0.7711, -0.3024, -0.5603, 0.477273, 0.196826, + 0.430349, -0.1255755, -0.221429, 0.7711, -0.3024, -0.5603, 0.431819, 0.196826, + 0.138194, 0.22361, 0.4253245, 0.3427, 0.5545, 0.7583, 0.181819, 0.314921, + 0.2419855, 0.251151, 0.3582825, 0.3427, 0.5545, 0.7583, 0.227273, 0.314921, + 0.116411, 0.3287595, 0.3582815, 0.3427, 0.5545, 0.7583, 0.204546, 0.354286, + -0.3618035, 0.22361, 0.2628625, -0.6153, 0.5545, 0.5603, 0.0, 0.314921, + -0.2659705, 0.251151, 0.340856, -0.6153, 0.5545, 0.5603, 0.045455, 0.314921, + -0.3047735, 0.3287595, 0.221428, -0.6153, 0.5545, 0.5603, 0.022727, 0.354286, + -0.3618035, 0.22361, -0.2628625, -0.723, 0.5545, -0.4121, 0.727273, 0.314921, + -0.4063645, 0.2511505, -0.147619, -0.723, 0.5545, -0.4121, 0.772727, 0.314921, + -0.3047735, 0.3287595, -0.221428, -0.723, 0.5545, -0.4121, 0.75, 0.354286, + 0.138194, 0.22361, -0.4253245, 0.1685, 0.5545, -0.8149, 0.545455, 0.314921, + 0.0148195, 0.251151, -0.432092, 0.1685, 0.5545, -0.8149, 0.590909, 0.314921, + 0.116411, 0.3287595, -0.3582815, 0.1685, 0.5545, -0.8149, 0.568182, 0.354286, + 0.447213, 0.223608, 0.0, 0.8271, 0.5545, -0.0916, 0.363637, 0.314921, + 0.4155255, 0.2511495, -0.1194265, 0.8271, 0.5545, -0.0916, 0.409091, 0.314921, + 0.376721, 0.3287575, 0.0, 0.8271, 0.5545, -0.0916, 0.386364, 0.354286, + 0.1255735, 0.4839745, 0.0, 0.1261, 0.9878, -0.0916, 0.431819, 0.433017, + 0.0388035, 0.483975, -0.1194265, 0.1261, 0.9878, -0.0916, 0.477273, 0.433017, + 0.0, 0.5, 0.0, 0.1261, 0.9878, -0.0916, 0.454546, 0.472382, + 0.262865, 0.425326, 0.0, 0.3912, 0.9158, -0.0915, 0.409091, 0.393651, + 0.1809, 0.4472145, -0.1314315, 0.3912, 0.9158, -0.0915, 0.454546, 0.393651, + 0.1255735, 0.4839745, 0.0, 0.3912, 0.9158, -0.0915, 0.431819, 0.433017, + 0.376721, 0.3287575, 0.0, 0.6441, 0.7594, -0.0915, 0.386364, 0.354286, + 0.319097, 0.361805, -0.131432, 0.6441, 0.7594, -0.0915, 0.431819, 0.354286, + 0.262865, 0.425326, 0.0, 0.6441, 0.7594, -0.0915, 0.409091, 0.393651, + 0.1255735, 0.4839745, 0.0, 0.2334, 0.9575, -0.1696, 0.431819, 0.433017, + 0.1809, 0.4472145, -0.1314315, 0.2334, 0.9575, -0.1696, 0.454546, 0.393651, + 0.0388035, 0.483975, -0.1194265, 0.2334, 0.9575, -0.1696, 0.477273, 0.433017, + 0.1809, 0.4472145, -0.1314315, 0.2079, 0.9158, -0.3438, 0.454546, 0.393651, + 0.081228, 0.425327, -0.2499975, 0.2079, 0.9158, -0.3438, 0.5, 0.393651, + 0.0388035, 0.483975, -0.1194265, 0.2079, 0.9158, -0.3438, 0.477273, 0.433017, + 0.262865, 0.425326, 0.0, 0.5168, 0.8363, -0.183, 0.409091, 0.393651, + 0.319097, 0.361805, -0.131432, 0.5168, 0.8363, -0.183, 0.431819, 0.354286, + 0.1809, 0.4472145, -0.1314315, 0.5168, 0.8363, -0.183, 0.454546, 0.393651, + 0.319097, 0.361805, -0.131432, 0.4911, 0.7947, -0.3568, 0.431819, 0.354286, + 0.2236045, 0.361806, -0.262864, 0.4911, 0.7947, -0.3568, 0.477273, 0.354286, + 0.1809, 0.4472145, -0.1314315, 0.4911, 0.7947, -0.3568, 0.454546, 0.393651, + 0.1809, 0.4472145, -0.1314315, 0.3338, 0.8363, -0.435, 0.454546, 0.393651, + 0.2236045, 0.361806, -0.262864, 0.3338, 0.8363, -0.435, 0.477273, 0.354286, + 0.081228, 0.425327, -0.2499975, 0.3338, 0.8363, -0.435, 0.5, 0.393651, + 0.2236045, 0.361806, -0.262864, 0.286, 0.7594, -0.5843, 0.477273, 0.354286, + 0.116411, 0.3287595, -0.3582815, 0.286, 0.7594, -0.5843, 0.522728, 0.354286, + 0.081228, 0.425327, -0.2499975, 0.286, 0.7594, -0.5843, 0.5, 0.393651, + 0.376721, 0.3287575, 0.0, 0.752, 0.6369, -0.1696, 0.386364, 0.354286, + 0.4155255, 0.2511495, -0.1194265, 0.752, 0.6369, -0.1696, 0.409091, 0.314921, + 0.319097, 0.361805, -0.131432, 0.752, 0.6369, -0.1696, 0.431819, 0.354286, + 0.4155255, 0.2511495, -0.1194265, 0.7261, 0.5955, -0.3438, 0.409091, 0.314921, + 0.3440945, 0.262868, -0.2499985, 0.7261, 0.5955, -0.3438, 0.454546, 0.314921, + 0.319097, 0.361805, -0.131432, 0.7261, 0.5955, -0.3438, 0.431819, 0.354286, + 0.319097, 0.361805, -0.131432, 0.5987, 0.6726, -0.435, 0.431819, 0.354286, + 0.3440945, 0.262868, -0.2499985, 0.5987, 0.6726, -0.435, 0.454546, 0.314921, + 0.2236045, 0.361806, -0.262864, 0.5987, 0.6726, -0.435, 0.477273, 0.354286, + 0.3440945, 0.262868, -0.2499985, 0.5513, 0.5955, -0.5843, 0.454546, 0.314921, + 0.2419855, 0.251151, -0.3582825, 0.5513, 0.5955, -0.5843, 0.5, 0.314921, + 0.2236045, 0.361806, -0.262864, 0.5513, 0.5955, -0.5843, 0.477273, 0.354286, + 0.2236045, 0.361806, -0.262864, 0.3936, 0.6369, -0.6628, 0.477273, 0.354286, + 0.2419855, 0.251151, -0.3582825, 0.3936, 0.6369, -0.6628, 0.5, 0.314921, + 0.116411, 0.3287595, -0.3582815, 0.3936, 0.6369, -0.6628, 0.522728, 0.354286, + 0.2419855, 0.251151, -0.3582825, 0.3427, 0.5545, -0.7583, 0.5, 0.314921, + 0.138194, 0.22361, -0.4253245, 0.3427, 0.5545, -0.7583, 0.545455, 0.314921, + 0.116411, 0.3287595, -0.3582815, 0.3427, 0.5545, -0.7583, 0.522728, 0.354286, + 0.0388035, 0.483975, -0.1194265, -0.0482, 0.9878, -0.1482, 0.613637, 0.433017, + -0.1015905, 0.483975, -0.073809, -0.0482, 0.9878, -0.1482, 0.659091, 0.433017, + 0.0, 0.5, 0.0, -0.0482, 0.9878, -0.1482, 0.636364, 0.472382, + 0.081228, 0.425327, -0.2499975, 0.0339, 0.9158, -0.4003, 0.590909, 0.393651, + -0.0690985, 0.447215, -0.2126595, 0.0339, 0.9158, -0.4003, 0.636364, 0.393651, + 0.0388035, 0.483975, -0.1194265, 0.0339, 0.9158, -0.4003, 0.613637, 0.433017, + 0.116411, 0.3287595, -0.3582815, 0.1121, 0.7594, -0.6409, 0.568182, 0.354286, + -0.026395, 0.361806, -0.3440925, 0.1121, 0.7594, -0.6409, 0.613637, 0.354286, + 0.081228, 0.425327, -0.2499975, 0.1121, 0.7594, -0.6409, 0.590909, 0.393651, + 0.0388035, 0.483975, -0.1194265, -0.0891, 0.9575, -0.2743, 0.613637, 0.433017, + -0.0690985, 0.447215, -0.2126595, -0.0891, 0.9575, -0.2743, 0.636364, 0.393651, + -0.1015905, 0.483975, -0.073809, -0.0891, 0.9575, -0.2743, 0.659091, 0.433017, + -0.0690985, 0.447215, -0.2126595, -0.2627, 0.9158, -0.3039, 0.636364, 0.393651, + -0.2126615, 0.425327, -0.1545055, -0.2627, 0.9158, -0.3039, 0.681818, 0.393651, + -0.1015905, 0.483975, -0.073809, -0.2627, 0.9158, -0.3039, 0.659091, 0.433017, + 0.081228, 0.425327, -0.2499975, -0.0144, 0.8363, -0.5481, 0.590909, 0.393651, + -0.026395, 0.361806, -0.3440925, -0.0144, 0.8363, -0.5481, 0.613637, 0.354286, + -0.0690985, 0.447215, -0.2126595, -0.0144, 0.8363, -0.5481, 0.636364, 0.393651, + -0.026395, 0.361806, -0.3440925, -0.1876, 0.7947, -0.5773, 0.613637, 0.354286, + -0.180902, 0.361806, -0.293889, -0.1876, 0.7947, -0.5773, 0.659091, 0.354286, + -0.0690985, 0.447215, -0.2126595, -0.1876, 0.7947, -0.5773, 0.636364, 0.393651, + -0.0690985, 0.447215, -0.2126595, -0.3105, 0.8363, -0.4519, 0.636364, 0.393651, + -0.180902, 0.361806, -0.293889, -0.3105, 0.8363, -0.4519, 0.659091, 0.354286, + -0.2126615, 0.425327, -0.1545055, -0.3105, 0.8363, -0.4519, 0.681818, 0.393651, + -0.180902, 0.361806, -0.293889, -0.4674, 0.7594, -0.4526, 0.659091, 0.354286, + -0.3047735, 0.3287595, -0.221428, -0.4674, 0.7594, -0.4526, 0.704546, 0.354286, + -0.2126615, 0.425327, -0.1545055, -0.4674, 0.7594, -0.4526, 0.681818, 0.393651, + 0.116411, 0.3287595, -0.3582815, 0.0711, 0.6369, -0.7676, 0.568182, 0.354286, + 0.0148195, 0.251151, -0.432092, 0.0711, 0.6369, -0.7676, 0.590909, 0.314921, + -0.026395, 0.361806, -0.3440925, 0.0711, 0.6369, -0.7676, 0.613637, 0.354286, + 0.0148195, 0.251151, -0.432092, -0.1026, 0.5955, -0.7968, 0.590909, 0.314921, + -0.1314345, 0.262869, -0.404506, -0.1026, 0.5955, -0.7968, 0.636364, 0.314921, + -0.026395, 0.361806, -0.3440925, -0.1026, 0.5955, -0.7968, 0.613637, 0.354286, + -0.026395, 0.361806, -0.3440925, -0.2287, 0.6726, -0.7038, 0.613637, 0.354286, + -0.1314345, 0.262869, -0.404506, -0.2287, 0.6726, -0.7038, 0.636364, 0.314921, + -0.180902, 0.361806, -0.293889, -0.2287, 0.6726, -0.7038, 0.659091, 0.354286, + -0.1314345, 0.262869, -0.404506, -0.3854, 0.5955, -0.7049, 0.636364, 0.314921, + -0.2659705, 0.251151, -0.340856, -0.3854, 0.5955, -0.7049, 0.681818, 0.314921, + -0.180902, 0.361806, -0.293889, -0.3854, 0.5955, -0.7049, 0.659091, 0.354286, + -0.180902, 0.361806, -0.293889, -0.5087, 0.6369, -0.5792, 0.659091, 0.354286, + -0.2659705, 0.251151, -0.340856, -0.5087, 0.6369, -0.5792, 0.681818, 0.314921, + -0.3047735, 0.3287595, -0.221428, -0.5087, 0.6369, -0.5792, 0.704546, 0.354286, + -0.2659705, 0.251151, -0.340856, -0.6153, 0.5545, -0.5603, 0.681818, 0.314921, + -0.3618035, 0.22361, -0.2628625, -0.6153, 0.5545, -0.5603, 0.727273, 0.314921, + -0.3047735, 0.3287595, -0.221428, -0.6153, 0.5545, -0.5603, 0.704546, 0.354286, + -0.1015905, 0.483975, -0.073809, -0.1558, 0.9878, -0.0, 0.795455, 0.433017, + -0.1015905, 0.483975, 0.073809, -0.1558, 0.9878, -0.0, 0.840909, 0.433017, + 0.0, 0.5, 0.0, -0.1558, 0.9878, -0.0, 0.818182, 0.472382, + -0.2126615, 0.425327, -0.1545055, -0.3702, 0.9158, -0.156, 0.772727, 0.393651, + -0.223605, 0.4472145, 0.0, -0.3702, 0.9158, -0.156, 0.818182, 0.393651, + -0.1015905, 0.483975, -0.073809, -0.3702, 0.9158, -0.156, 0.795455, 0.433017, + -0.3047735, 0.3287595, -0.221428, -0.5749, 0.7594, -0.3046, 0.75, 0.354286, + -0.3354085, 0.3618055, -0.0812285, -0.5749, 0.7594, -0.3046, 0.795455, 0.354286, + -0.2126615, 0.425327, -0.1545055, -0.5749, 0.7594, -0.3046, 0.772727, 0.393651, + -0.1015905, 0.483975, -0.073809, -0.2885, 0.9575, -0.0, 0.795455, 0.433017, + -0.223605, 0.4472145, 0.0, -0.2885, 0.9575, -0.0, 0.818182, 0.393651, + -0.1015905, 0.483975, 0.073809, -0.2885, 0.9575, -0.0, 0.840909, 0.433017, + -0.223605, 0.4472145, 0.0, -0.3702, 0.9158, 0.156, 0.818182, 0.393651, + -0.2126615, 0.425327, 0.1545055, -0.3702, 0.9158, 0.156, 0.863636, 0.393651, + -0.1015905, 0.483975, 0.073809, -0.3702, 0.9158, 0.156, 0.840909, 0.433017, + -0.2126615, 0.425327, -0.1545055, -0.5257, 0.8363, -0.1557, 0.772727, 0.393651, + -0.3354085, 0.3618055, -0.0812285, -0.5257, 0.8363, -0.1557, 0.795455, 0.354286, + -0.223605, 0.4472145, 0.0, -0.5257, 0.8363, -0.1557, 0.818182, 0.393651, + -0.3354085, 0.3618055, -0.0812285, -0.6071, 0.7947, -0.0, 0.795455, 0.354286, + -0.3354085, 0.3618055, 0.0812285, -0.6071, 0.7947, -0.0, 0.840909, 0.354286, + -0.223605, 0.4472145, 0.0, -0.6071, 0.7947, -0.0, 0.818182, 0.393651, + -0.223605, 0.4472145, 0.0, -0.5257, 0.8363, 0.1557, 0.818182, 0.393651, + -0.3354085, 0.3618055, 0.0812285, -0.5257, 0.8363, 0.1557, 0.840909, 0.354286, + -0.2126615, 0.425327, 0.1545055, -0.5257, 0.8363, 0.1557, 0.863636, 0.393651, + -0.3354085, 0.3618055, 0.0812285, -0.5749, 0.7594, 0.3046, 0.840909, 0.354286, + -0.3047735, 0.3287595, 0.221428, -0.5749, 0.7594, 0.3046, 0.886364, 0.354286, + -0.2126615, 0.425327, 0.1545055, -0.5749, 0.7594, 0.3046, 0.863636, 0.393651, + -0.3047735, 0.3287595, -0.221428, -0.7081, 0.6369, -0.3049, 0.75, 0.354286, + -0.4063645, 0.2511505, -0.147619, -0.7081, 0.6369, -0.3049, 0.772727, 0.314921, + -0.3354085, 0.3618055, -0.0812285, -0.7081, 0.6369, -0.3049, 0.795455, 0.354286, + -0.4063645, 0.2511505, -0.147619, -0.7895, 0.5955, -0.1487, 0.772727, 0.314921, + -0.425324, 0.262868, 0.0, -0.7895, 0.5955, -0.1487, 0.818182, 0.314921, + -0.3354085, 0.3618055, -0.0812285, -0.7895, 0.5955, -0.1487, 0.795455, 0.354286, + -0.3354085, 0.3618055, -0.0812285, -0.74, 0.6726, -0.0, 0.795455, 0.354286, + -0.425324, 0.262868, 0.0, -0.74, 0.6726, -0.0, 0.818182, 0.314921, + -0.3354085, 0.3618055, 0.0812285, -0.74, 0.6726, -0.0, 0.840909, 0.354286, + -0.425324, 0.262868, 0.0, -0.7895, 0.5955, 0.1487, 0.818182, 0.314921, + -0.4063645, 0.2511505, 0.147619, -0.7895, 0.5955, 0.1487, 0.863636, 0.314921, + -0.3354085, 0.3618055, 0.0812285, -0.7895, 0.5955, 0.1487, 0.840909, 0.354286, + -0.3354085, 0.3618055, 0.0812285, -0.7081, 0.6369, 0.3049, 0.840909, 0.354286, + -0.4063645, 0.2511505, 0.147619, -0.7081, 0.6369, 0.3049, 0.863636, 0.314921, + -0.3047735, 0.3287595, 0.221428, -0.7081, 0.6369, 0.3049, 0.886364, 0.354286, + -0.4063645, 0.2511505, 0.147619, -0.723, 0.5545, 0.4121, 0.863636, 0.314921, + -0.3618035, 0.22361, 0.2628625, -0.723, 0.5545, 0.4121, 0.909091, 0.314921, + -0.3047735, 0.3287595, 0.221428, -0.723, 0.5545, 0.4121, 0.886364, 0.354286, + -0.1015905, 0.483975, 0.073809, -0.0482, 0.9878, 0.1482, 0.068182, 0.433017, + 0.0388035, 0.483975, 0.1194265, -0.0482, 0.9878, 0.1482, 0.113637, 0.433017, + 0.0, 0.5, 0.0, -0.0482, 0.9878, 0.1482, 0.09091, 0.472382, + -0.2126615, 0.425327, 0.1545055, -0.2627, 0.9158, 0.3039, 0.045455, 0.393651, + -0.0690985, 0.447215, 0.2126595, -0.2627, 0.9158, 0.3039, 0.09091, 0.393651, + -0.1015905, 0.483975, 0.073809, -0.2627, 0.9158, 0.3039, 0.068182, 0.433017, + -0.3047735, 0.3287595, 0.221428, -0.4674, 0.7594, 0.4526, 0.022727, 0.354286, + -0.180902, 0.361806, 0.293889, -0.4674, 0.7594, 0.4526, 0.068182, 0.354286, + -0.2126615, 0.425327, 0.1545055, -0.4674, 0.7594, 0.4526, 0.045455, 0.393651, + -0.1015905, 0.483975, 0.073809, -0.0891, 0.9575, 0.2743, 0.068182, 0.433017, + -0.0690985, 0.447215, 0.2126595, -0.0891, 0.9575, 0.2743, 0.09091, 0.393651, + 0.0388035, 0.483975, 0.1194265, -0.0891, 0.9575, 0.2743, 0.113637, 0.433017, + -0.0690985, 0.447215, 0.2126595, 0.0339, 0.9158, 0.4003, 0.09091, 0.393651, + 0.081228, 0.425327, 0.2499975, 0.0339, 0.9158, 0.4003, 0.136365, 0.393651, + 0.0388035, 0.483975, 0.1194265, 0.0339, 0.9158, 0.4003, 0.113637, 0.433017, + -0.2126615, 0.425327, 0.1545055, -0.3105, 0.8363, 0.4519, 0.045455, 0.393651, + -0.180902, 0.361806, 0.293889, -0.3105, 0.8363, 0.4519, 0.068182, 0.354286, + -0.0690985, 0.447215, 0.2126595, -0.3105, 0.8363, 0.4519, 0.09091, 0.393651, + -0.180902, 0.361806, 0.293889, -0.1876, 0.7947, 0.5773, 0.068182, 0.354286, + -0.026395, 0.361806, 0.3440925, -0.1876, 0.7947, 0.5773, 0.113637, 0.354286, + -0.0690985, 0.447215, 0.2126595, -0.1876, 0.7947, 0.5773, 0.09091, 0.393651, + -0.0690985, 0.447215, 0.2126595, -0.0144, 0.8363, 0.5481, 0.09091, 0.393651, + -0.026395, 0.361806, 0.3440925, -0.0144, 0.8363, 0.5481, 0.113637, 0.354286, + 0.081228, 0.425327, 0.2499975, -0.0144, 0.8363, 0.5481, 0.136365, 0.393651, + -0.026395, 0.361806, 0.3440925, 0.1121, 0.7594, 0.6409, 0.113637, 0.354286, + 0.116411, 0.3287595, 0.3582815, 0.1121, 0.7594, 0.6409, 0.159092, 0.354286, + 0.081228, 0.425327, 0.2499975, 0.1121, 0.7594, 0.6409, 0.136365, 0.393651, + -0.3047735, 0.3287595, 0.221428, -0.5087, 0.6369, 0.5792, 0.022727, 0.354286, + -0.2659705, 0.251151, 0.340856, -0.5087, 0.6369, 0.5792, 0.045455, 0.314921, + -0.180902, 0.361806, 0.293889, -0.5087, 0.6369, 0.5792, 0.068182, 0.354286, + -0.2659705, 0.251151, 0.340856, -0.3854, 0.5955, 0.7049, 0.045455, 0.314921, + -0.1314345, 0.262869, 0.404506, -0.3854, 0.5955, 0.7049, 0.090909, 0.314921, + -0.180902, 0.361806, 0.293889, -0.3854, 0.5955, 0.7049, 0.068182, 0.354286, + -0.180902, 0.361806, 0.293889, -0.2287, 0.6726, 0.7038, 0.068182, 0.354286, + -0.1314345, 0.262869, 0.404506, -0.2287, 0.6726, 0.7038, 0.090909, 0.314921, + -0.026395, 0.361806, 0.3440925, -0.2287, 0.6726, 0.7038, 0.113637, 0.354286, + -0.1314345, 0.262869, 0.404506, -0.1026, 0.5955, 0.7968, 0.090909, 0.314921, + 0.0148195, 0.251151, 0.432092, -0.1026, 0.5955, 0.7968, 0.136364, 0.314921, + -0.026395, 0.361806, 0.3440925, -0.1026, 0.5955, 0.7968, 0.113637, 0.354286, + -0.026395, 0.361806, 0.3440925, 0.0711, 0.6369, 0.7676, 0.113637, 0.354286, + 0.0148195, 0.251151, 0.432092, 0.0711, 0.6369, 0.7676, 0.136364, 0.314921, + 0.116411, 0.3287595, 0.3582815, 0.0711, 0.6369, 0.7676, 0.159092, 0.354286, + 0.0148195, 0.251151, 0.432092, 0.1685, 0.5545, 0.8149, 0.136364, 0.314921, + 0.138194, 0.22361, 0.4253245, 0.1685, 0.5545, 0.8149, 0.181819, 0.314921, + 0.116411, 0.3287595, 0.3582815, 0.1685, 0.5545, 0.8149, 0.159092, 0.354286, + 0.0388035, 0.483975, 0.1194265, 0.1261, 0.9878, 0.0916, 0.250001, 0.433017, + 0.1255735, 0.4839745, 0.0, 0.1261, 0.9878, 0.0916, 0.295455, 0.433017, + 0.0, 0.5, 0.0, 0.1261, 0.9878, 0.0916, 0.272728, 0.472382, + 0.081228, 0.425327, 0.2499975, 0.2079, 0.9158, 0.3438, 0.227273, 0.393651, + 0.1809, 0.4472145, 0.1314315, 0.2079, 0.9158, 0.3438, 0.272728, 0.393651, + 0.0388035, 0.483975, 0.1194265, 0.2079, 0.9158, 0.3438, 0.250001, 0.433017, + 0.116411, 0.3287595, 0.3582815, 0.286, 0.7594, 0.5843, 0.204546, 0.354286, + 0.2236045, 0.361806, 0.262864, 0.286, 0.7594, 0.5843, 0.250001, 0.354286, + 0.081228, 0.425327, 0.2499975, 0.286, 0.7594, 0.5843, 0.227273, 0.393651, + 0.0388035, 0.483975, 0.1194265, 0.2334, 0.9575, 0.1696, 0.250001, 0.433017, + 0.1809, 0.4472145, 0.1314315, 0.2334, 0.9575, 0.1696, 0.272728, 0.393651, + 0.1255735, 0.4839745, 0.0, 0.2334, 0.9575, 0.1696, 0.295455, 0.433017, + 0.1809, 0.4472145, 0.1314315, 0.3912, 0.9158, 0.0915, 0.272728, 0.393651, + 0.262865, 0.425326, 0.0, 0.3912, 0.9158, 0.0915, 0.318182, 0.393651, + 0.1255735, 0.4839745, 0.0, 0.3912, 0.9158, 0.0915, 0.295455, 0.433017, + 0.081228, 0.425327, 0.2499975, 0.3338, 0.8363, 0.435, 0.227273, 0.393651, + 0.2236045, 0.361806, 0.262864, 0.3338, 0.8363, 0.435, 0.250001, 0.354286, + 0.1809, 0.4472145, 0.1314315, 0.3338, 0.8363, 0.435, 0.272728, 0.393651, + 0.2236045, 0.361806, 0.262864, 0.4911, 0.7947, 0.3568, 0.250001, 0.354286, + 0.319097, 0.361805, 0.131432, 0.4911, 0.7947, 0.3568, 0.295455, 0.354286, + 0.1809, 0.4472145, 0.1314315, 0.4911, 0.7947, 0.3568, 0.272728, 0.393651, + 0.1809, 0.4472145, 0.1314315, 0.5168, 0.8363, 0.183, 0.272728, 0.393651, + 0.319097, 0.361805, 0.131432, 0.5168, 0.8363, 0.183, 0.295455, 0.354286, + 0.262865, 0.425326, 0.0, 0.5168, 0.8363, 0.183, 0.318182, 0.393651, + 0.319097, 0.361805, 0.131432, 0.6441, 0.7594, 0.0915, 0.295455, 0.354286, + 0.376721, 0.3287575, 0.0, 0.6441, 0.7594, 0.0915, 0.34091, 0.354286, + 0.262865, 0.425326, 0.0, 0.6441, 0.7594, 0.0915, 0.318182, 0.393651, + 0.116411, 0.3287595, 0.3582815, 0.3936, 0.6369, 0.6628, 0.204546, 0.354286, + 0.2419855, 0.251151, 0.3582825, 0.3936, 0.6369, 0.6628, 0.227273, 0.314921, + 0.2236045, 0.361806, 0.262864, 0.3936, 0.6369, 0.6628, 0.250001, 0.354286, + 0.2419855, 0.251151, 0.3582825, 0.5513, 0.5955, 0.5843, 0.227273, 0.314921, + 0.3440945, 0.262868, 0.2499985, 0.5513, 0.5955, 0.5843, 0.272728, 0.314921, + 0.2236045, 0.361806, 0.262864, 0.5513, 0.5955, 0.5843, 0.250001, 0.354286, + 0.2236045, 0.361806, 0.262864, 0.5987, 0.6726, 0.435, 0.250001, 0.354286, + 0.3440945, 0.262868, 0.2499985, 0.5987, 0.6726, 0.435, 0.272728, 0.314921, + 0.319097, 0.361805, 0.131432, 0.5987, 0.6726, 0.435, 0.295455, 0.354286, + 0.3440945, 0.262868, 0.2499985, 0.7261, 0.5955, 0.3438, 0.272728, 0.314921, + 0.4155255, 0.2511495, 0.1194265, 0.7261, 0.5955, 0.3438, 0.318182, 0.314921, + 0.319097, 0.361805, 0.131432, 0.7261, 0.5955, 0.3438, 0.295455, 0.354286, + 0.319097, 0.361805, 0.131432, 0.752, 0.6369, 0.1696, 0.295455, 0.354286, + 0.4155255, 0.2511495, 0.1194265, 0.752, 0.6369, 0.1696, 0.318182, 0.314921, + 0.376721, 0.3287575, 0.0, 0.752, 0.6369, 0.1696, 0.34091, 0.354286, + 0.4155255, 0.2511495, 0.1194265, 0.8271, 0.5545, 0.0916, 0.318182, 0.314921, + 0.447213, 0.223608, 0.0, 0.8271, 0.5545, 0.0916, 0.363637, 0.314921, + 0.376721, 0.3287575, 0.0, 0.8271, 0.5545, 0.0916, 0.34091, 0.354286, + 0.478313, 0.1255745, -0.073809, 0.905, 0.3987, -0.1482, 0.386364, 0.275556, + 0.4155255, 0.2511495, -0.1194265, 0.905, 0.3987, -0.1482, 0.409091, 0.314921, + 0.447213, 0.223608, 0.0, 0.905, 0.3987, -0.1482, 0.363637, 0.314921, + 0.475529, 0.0, -0.1545065, 0.9366, 0.1745, -0.3039, 0.409091, 0.236191, + 0.430902, 0.138198, -0.212661, 0.9366, 0.1745, -0.3039, 0.431819, 0.275556, + 0.478313, 0.1255745, -0.073809, 0.9366, 0.1745, -0.3039, 0.386364, 0.275556, + 0.430349, -0.1255755, -0.221429, 0.8883, -0.0784, -0.4526, 0.431819, 0.196826, + 0.4045095, 0.0, -0.293891, 0.8883, -0.0784, -0.4526, 0.454546, 0.236191, + 0.475529, 0.0, -0.1545065, 0.8883, -0.0784, -0.4526, 0.409091, 0.236191, + 0.478313, 0.1255745, -0.073809, 0.8963, 0.3485, -0.2743, 0.386364, 0.275556, + 0.430902, 0.138198, -0.212661, 0.8963, 0.3485, -0.2743, 0.431819, 0.275556, + 0.4155255, 0.2511495, -0.1194265, 0.8963, 0.3485, -0.2743, 0.409091, 0.314921, + 0.430902, 0.138198, -0.212661, 0.8039, 0.4399, -0.4003, 0.431819, 0.275556, + 0.3440945, 0.262868, -0.2499985, 0.8039, 0.4399, -0.4003, 0.454546, 0.314921, + 0.4155255, 0.2511495, -0.1194265, 0.8039, 0.4399, -0.4003, 0.409091, 0.314921, + 0.475529, 0.0, -0.1545065, 0.8869, 0.0962, -0.4519, 0.409091, 0.236191, + 0.4045095, 0.0, -0.293891, 0.8869, 0.0962, -0.4519, 0.454546, 0.236191, + 0.430902, 0.138198, -0.212661, 0.8869, 0.0962, -0.4519, 0.431819, 0.275556, + 0.4045095, 0.0, -0.293891, 0.7947, 0.1876, -0.5773, 0.454546, 0.236191, + 0.3354105, 0.1381985, -0.3440945, 0.7947, 0.1876, -0.5773, 0.477273, 0.275556, + 0.430902, 0.138198, -0.212661, 0.7947, 0.1876, -0.5773, 0.431819, 0.275556, + 0.430902, 0.138198, -0.212661, 0.7544, 0.3611, -0.5481, 0.431819, 0.275556, + 0.3354105, 0.1381985, -0.3440945, 0.7544, 0.3611, -0.5481, 0.477273, 0.275556, + 0.3440945, 0.262868, -0.2499985, 0.7544, 0.3611, -0.5481, 0.454546, 0.314921, + 0.3354105, 0.1381985, -0.3440945, 0.6291, 0.4399, -0.6409, 0.477273, 0.275556, + 0.2419855, 0.251151, -0.3582825, 0.6291, 0.4399, -0.6409, 0.5, 0.314921, + 0.3440945, 0.262868, -0.2499985, 0.6291, 0.4399, -0.6409, 0.454546, 0.314921, + 0.430349, -0.1255755, -0.221429, 0.7972, -0.1702, -0.5792, 0.431819, 0.196826, + 0.3435795, -0.125576, -0.3408575, 0.7972, -0.1702, -0.5792, 0.477273, 0.196826, + 0.4045095, 0.0, -0.293891, 0.7972, -0.1702, -0.5792, 0.454546, 0.236191, + 0.3435795, -0.125576, -0.3408575, 0.7049, -0.0784, -0.7049, 0.477273, 0.196826, + 0.293893, -0.0, -0.4045085, 0.7049, -0.0784, -0.7049, 0.5, 0.236191, + 0.4045095, 0.0, -0.293891, 0.7049, -0.0784, -0.7049, 0.454546, 0.236191, + 0.4045095, 0.0, -0.293891, 0.7038, 0.0962, -0.7038, 0.454546, 0.236191, + 0.293893, -0.0, -0.4045085, 0.7038, 0.0962, -0.7038, 0.5, 0.236191, + 0.3354105, 0.1381985, -0.3440945, 0.7038, 0.0962, -0.7038, 0.477273, 0.275556, + 0.293893, -0.0, -0.4045085, 0.5785, 0.1745, -0.7968, 0.5, 0.236191, + 0.2180035, 0.125576, -0.432094, 0.5785, 0.1745, -0.7968, 0.522728, 0.275556, + 0.3354105, 0.1381985, -0.3440945, 0.5785, 0.1745, -0.7968, 0.477273, 0.275556, + 0.3354105, 0.1381985, -0.3440945, 0.5379, 0.3485, -0.7676, 0.477273, 0.275556, + 0.2180035, 0.125576, -0.432094, 0.5379, 0.3485, -0.7676, 0.522728, 0.275556, + 0.2419855, 0.251151, -0.3582825, 0.5379, 0.3485, -0.7676, 0.5, 0.314921, + 0.2180035, 0.125576, -0.432094, 0.4206, 0.3987, -0.8149, 0.522728, 0.275556, + 0.138194, 0.22361, -0.4253245, 0.4206, 0.3987, -0.8149, 0.545455, 0.314921, + 0.2419855, 0.251151, -0.3582825, 0.4206, 0.3987, -0.8149, 0.5, 0.314921, + 0.0776075, 0.125576, -0.477711, 0.1387, 0.3987, -0.9065, 0.568182, 0.275556, + 0.0148195, 0.251151, -0.432092, 0.1387, 0.3987, -0.9065, 0.590909, 0.314921, + 0.138194, 0.22361, -0.4253245, 0.1387, 0.3987, -0.9065, 0.545455, 0.314921, + 0.0, 0.0, -0.5, 0.0004, 0.1745, -0.9846, 0.590909, 0.236191, + -0.0690995, 0.1381985, -0.4755275, 0.0004, 0.1745, -0.9846, 0.613637, 0.275556, + 0.0776075, 0.125576, -0.477711, 0.0004, 0.1745, -0.9846, 0.568182, 0.275556, + -0.0776075, -0.125576, -0.477711, -0.156, -0.0784, -0.9846, 0.613637, 0.196826, + -0.154508, -0.0, -0.4755285, -0.156, -0.0784, -0.9846, 0.636364, 0.236191, + 0.0, 0.0, -0.5, -0.156, -0.0784, -0.9846, 0.590909, 0.236191, + 0.0776075, 0.125576, -0.477711, 0.016, 0.3485, -0.9372, 0.568182, 0.275556, + -0.0690995, 0.1381985, -0.4755275, 0.016, 0.3485, -0.9372, 0.613637, 0.275556, + 0.0148195, 0.251151, -0.432092, 0.016, 0.3485, -0.9372, 0.590909, 0.314921, + -0.0690995, 0.1381985, -0.4755275, -0.1323, 0.4399, -0.8883, 0.613637, 0.275556, + -0.1314345, 0.262869, -0.404506, -0.1323, 0.4399, -0.8883, 0.636364, 0.314921, + 0.0148195, 0.251151, -0.432092, -0.1323, 0.4399, -0.8883, 0.590909, 0.314921, + 0.0, 0.0, -0.5, -0.1557, 0.0962, -0.9831, 0.590909, 0.236191, + -0.154508, -0.0, -0.4755285, -0.1557, 0.0962, -0.9831, 0.636364, 0.236191, + -0.0690995, 0.1381985, -0.4755275, -0.1557, 0.0962, -0.9831, 0.613637, 0.275556, + -0.154508, -0.0, -0.4755285, -0.3035, 0.1876, -0.9342, 0.636364, 0.236191, + -0.2236075, 0.1381985, -0.4253245, -0.3035, 0.1876, -0.9342, 0.659091, 0.275556, + -0.0690995, 0.1381985, -0.4755275, -0.3035, 0.1876, -0.9342, 0.613637, 0.275556, + -0.0690995, 0.1381985, -0.4755275, -0.2882, 0.3611, -0.8869, 0.613637, 0.275556, + -0.2236075, 0.1381985, -0.4253245, -0.2882, 0.3611, -0.8869, 0.659091, 0.275556, + -0.1314345, 0.262869, -0.404506, -0.2882, 0.3611, -0.8869, 0.636364, 0.314921, + -0.2236075, 0.1381985, -0.4253245, -0.4151, 0.4399, -0.7964, 0.659091, 0.275556, + -0.2659705, 0.251151, -0.340856, -0.4151, 0.4399, -0.7964, 0.681818, 0.314921, + -0.1314345, 0.262869, -0.404506, -0.4151, 0.4399, -0.7964, 0.636364, 0.314921, + -0.0776075, -0.125576, -0.477711, -0.3045, -0.1702, -0.9372, 0.613637, 0.196826, + -0.2180035, -0.125576, -0.432094, -0.3045, -0.1702, -0.9372, 0.659091, 0.196826, + -0.154508, -0.0, -0.4755285, -0.3045, -0.1702, -0.9372, 0.636364, 0.236191, + -0.2180035, -0.125576, -0.432094, -0.4526, -0.0784, -0.8883, 0.659091, 0.196826, + -0.293893, -0.0, -0.4045085, -0.4526, -0.0784, -0.8883, 0.681818, 0.236191, + -0.154508, -0.0, -0.4755285, -0.4526, -0.0784, -0.8883, 0.636364, 0.236191, + -0.154508, -0.0, -0.4755285, -0.4519, 0.0962, -0.8869, 0.636364, 0.236191, + -0.293893, -0.0, -0.4045085, -0.4519, 0.0962, -0.8869, 0.681818, 0.236191, + -0.2236075, 0.1381985, -0.4253245, -0.4519, 0.0962, -0.8869, 0.659091, 0.275556, + -0.293893, -0.0, -0.4045085, -0.5791, 0.1745, -0.7964, 0.681818, 0.236191, + -0.3435795, 0.125576, -0.3408575, -0.5791, 0.1745, -0.7964, 0.704546, 0.275556, + -0.2236075, 0.1381985, -0.4253245, -0.5791, 0.1745, -0.7964, 0.659091, 0.275556, + -0.2236075, 0.1381985, -0.4253245, -0.5638, 0.3485, -0.7488, 0.659091, 0.275556, + -0.3435795, 0.125576, -0.3408575, -0.5638, 0.3485, -0.7488, 0.704546, 0.275556, + -0.2659705, 0.251151, -0.340856, -0.5638, 0.3485, -0.7488, 0.681818, 0.314921, + -0.3435795, 0.125576, -0.3408575, -0.6451, 0.3987, -0.6519, 0.704546, 0.275556, + -0.3618035, 0.22361, -0.2628625, -0.6451, 0.3987, -0.6519, 0.727273, 0.314921, + -0.2659705, 0.251151, -0.340856, -0.6451, 0.3987, -0.6519, 0.681818, 0.314921, + -0.430349, 0.1255755, -0.221429, -0.8193, 0.3987, -0.4121, 0.75, 0.275556, + -0.4063645, 0.2511505, -0.147619, -0.8193, 0.3987, -0.4121, 0.772727, 0.314921, + -0.3618035, 0.22361, -0.2628625, -0.8193, 0.3987, -0.4121, 0.727273, 0.314921, + -0.475529, 0.0, -0.1545065, -0.9363, 0.1745, -0.3046, 0.772727, 0.236191, + -0.4736065, 0.138198, -0.081229, -0.9363, 0.1745, -0.3046, 0.795455, 0.275556, + -0.430349, 0.1255755, -0.221429, -0.9363, 0.1745, -0.3046, 0.75, 0.275556, + -0.478313, -0.1255745, -0.073809, -0.9846, -0.0784, -0.156, 0.795455, 0.196826, + -0.5, 5e-07, 0.0, -0.9846, -0.0784, -0.156, 0.818182, 0.236191, + -0.475529, 0.0, -0.1545065, -0.9846, -0.0784, -0.156, 0.772727, 0.236191, + -0.430349, 0.1255755, -0.221429, -0.8864, 0.3485, -0.3049, 0.75, 0.275556, + -0.4736065, 0.138198, -0.081229, -0.8864, 0.3485, -0.3049, 0.795455, 0.275556, + -0.4063645, 0.2511505, -0.147619, -0.8864, 0.3485, -0.3049, 0.772727, 0.314921, + -0.4736065, 0.138198, -0.081229, -0.8857, 0.4399, -0.1487, 0.795455, 0.275556, + -0.425324, 0.262868, 0.0, -0.8857, 0.4399, -0.1487, 0.818182, 0.314921, + -0.4063645, 0.2511505, -0.147619, -0.8857, 0.4399, -0.1487, 0.772727, 0.314921, + -0.475529, 0.0, -0.1545065, -0.9831, 0.0962, -0.1557, 0.772727, 0.236191, + -0.5, 5e-07, 0.0, -0.9831, 0.0962, -0.1557, 0.818182, 0.236191, + -0.4736065, 0.138198, -0.081229, -0.9831, 0.0962, -0.1557, 0.795455, 0.275556, + -0.5, 5e-07, 0.0, -0.9822, 0.1876, -0.0, 0.818182, 0.236191, + -0.4736065, 0.1381985, 0.081229, -0.9822, 0.1876, -0.0, 0.840909, 0.275556, + -0.4736065, 0.138198, -0.081229, -0.9822, 0.1876, -0.0, 0.795455, 0.275556, + -0.4736065, 0.138198, -0.081229, -0.9325, 0.3611, -0.0, 0.795455, 0.275556, + -0.4736065, 0.1381985, 0.081229, -0.9325, 0.3611, -0.0, 0.840909, 0.275556, + -0.425324, 0.262868, 0.0, -0.9325, 0.3611, -0.0, 0.818182, 0.314921, + -0.4736065, 0.1381985, 0.081229, -0.8857, 0.4399, 0.1487, 0.840909, 0.275556, + -0.4063645, 0.2511505, 0.147619, -0.8857, 0.4399, 0.1487, 0.863636, 0.314921, + -0.425324, 0.262868, 0.0, -0.8857, 0.4399, 0.1487, 0.818182, 0.314921, + -0.478313, -0.1255745, -0.073809, -0.9854, -0.1702, -0.0, 0.795455, 0.196826, + -0.478313, -0.1255745, 0.073809, -0.9854, -0.1702, -0.0, 0.840909, 0.196826, + -0.5, 5e-07, 0.0, -0.9854, -0.1702, -0.0, 0.818182, 0.236191, + -0.478313, -0.1255745, 0.073809, -0.9846, -0.0784, 0.156, 0.840909, 0.196826, + -0.475529, -0.0, 0.1545065, -0.9846, -0.0784, 0.156, 0.863636, 0.236191, + -0.5, 5e-07, 0.0, -0.9846, -0.0784, 0.156, 0.818182, 0.236191, + -0.5, 5e-07, 0.0, -0.9831, 0.0962, 0.1557, 0.818182, 0.236191, + -0.475529, -0.0, 0.1545065, -0.9831, 0.0962, 0.1557, 0.863636, 0.236191, + -0.4736065, 0.1381985, 0.081229, -0.9831, 0.0962, 0.1557, 0.840909, 0.275556, + -0.475529, -0.0, 0.1545065, -0.9363, 0.1745, 0.3046, 0.863636, 0.236191, + -0.430349, 0.1255755, 0.221429, -0.9363, 0.1745, 0.3046, 0.886364, 0.275556, + -0.4736065, 0.1381985, 0.081229, -0.9363, 0.1745, 0.3046, 0.840909, 0.275556, + -0.4736065, 0.1381985, 0.081229, -0.8864, 0.3485, 0.3049, 0.840909, 0.275556, + -0.430349, 0.1255755, 0.221429, -0.8864, 0.3485, 0.3049, 0.886364, 0.275556, + -0.4063645, 0.2511505, 0.147619, -0.8864, 0.3485, 0.3049, 0.863636, 0.314921, + -0.430349, 0.1255755, 0.221429, -0.8193, 0.3987, 0.4121, 0.886364, 0.275556, + -0.3618035, 0.22361, 0.2628625, -0.8193, 0.3987, 0.4121, 0.909091, 0.314921, + -0.4063645, 0.2511505, 0.147619, -0.8193, 0.3987, 0.4121, 0.863636, 0.314921, + -0.3435795, 0.125576, 0.3408575, -0.6451, 0.3987, 0.6519, 0.022727, 0.275556, + -0.2659705, 0.251151, 0.340856, -0.6451, 0.3987, 0.6519, 0.045455, 0.314921, + -0.3618035, 0.22361, 0.2628625, -0.6451, 0.3987, 0.6519, 0.0, 0.314921, + -0.293893, 0.0, 0.4045085, -0.5791, 0.1745, 0.7964, 0.045455, 0.236191, + -0.223608, 0.1381985, 0.425324, -0.5791, 0.1745, 0.7964, 0.068182, 0.275556, + -0.3435795, 0.125576, 0.3408575, -0.5791, 0.1745, 0.7964, 0.022727, 0.275556, + -0.2180035, -0.125576, 0.432094, -0.4526, -0.0784, 0.8883, 0.068182, 0.196826, + -0.1545085, -5e-07, 0.475528, -0.4526, -0.0784, 0.8883, 0.09091, 0.236191, + -0.293893, 0.0, 0.4045085, -0.4526, -0.0784, 0.8883, 0.045455, 0.236191, + -0.3435795, 0.125576, 0.3408575, -0.5638, 0.3485, 0.7488, 0.022727, 0.275556, + -0.223608, 0.1381985, 0.425324, -0.5638, 0.3485, 0.7488, 0.068182, 0.275556, + -0.2659705, 0.251151, 0.340856, -0.5638, 0.3485, 0.7488, 0.045455, 0.314921, + -0.223608, 0.1381985, 0.425324, -0.4151, 0.4399, 0.7964, 0.068182, 0.275556, + -0.1314345, 0.262869, 0.404506, -0.4151, 0.4399, 0.7964, 0.090909, 0.314921, + -0.2659705, 0.251151, 0.340856, -0.4151, 0.4399, 0.7964, 0.045455, 0.314921, + -0.293893, 0.0, 0.4045085, -0.4519, 0.0962, 0.8869, 0.045455, 0.236191, + -0.1545085, -5e-07, 0.475528, -0.4519, 0.0962, 0.8869, 0.09091, 0.236191, + -0.223608, 0.1381985, 0.425324, -0.4519, 0.0962, 0.8869, 0.068182, 0.275556, + -0.1545085, -5e-07, 0.475528, -0.3035, 0.1876, 0.9342, 0.09091, 0.236191, + -0.0690995, 0.1381985, 0.4755275, -0.3035, 0.1876, 0.9342, 0.113637, 0.275556, + -0.223608, 0.1381985, 0.425324, -0.3035, 0.1876, 0.9342, 0.068182, 0.275556, + -0.223608, 0.1381985, 0.425324, -0.2882, 0.3611, 0.8869, 0.068182, 0.275556, + -0.0690995, 0.1381985, 0.4755275, -0.2882, 0.3611, 0.8869, 0.113637, 0.275556, + -0.1314345, 0.262869, 0.404506, -0.2882, 0.3611, 0.8869, 0.090909, 0.314921, + -0.0690995, 0.1381985, 0.4755275, -0.1323, 0.4399, 0.8883, 0.113637, 0.275556, + 0.0148195, 0.251151, 0.432092, -0.1323, 0.4399, 0.8883, 0.136364, 0.314921, + -0.1314345, 0.262869, 0.404506, -0.1323, 0.4399, 0.8883, 0.090909, 0.314921, + -0.2180035, -0.125576, 0.432094, -0.3045, -0.1702, 0.9372, 0.068182, 0.196826, + -0.0776075, -0.125576, 0.477711, -0.3045, -0.1702, 0.9372, 0.113637, 0.196826, + -0.1545085, -5e-07, 0.475528, -0.3045, -0.1702, 0.9372, 0.09091, 0.236191, + -0.0776075, -0.125576, 0.477711, -0.156, -0.0784, 0.9846, 0.113637, 0.196826, + 0.0, -0.0, 0.5, -0.156, -0.0784, 0.9846, 0.136364, 0.236191, + -0.1545085, -5e-07, 0.475528, -0.156, -0.0784, 0.9846, 0.09091, 0.236191, + -0.1545085, -5e-07, 0.475528, -0.1557, 0.0962, 0.9831, 0.09091, 0.236191, + 0.0, -0.0, 0.5, -0.1557, 0.0962, 0.9831, 0.136364, 0.236191, + -0.0690995, 0.1381985, 0.4755275, -0.1557, 0.0962, 0.9831, 0.113637, 0.275556, + 0.0, -0.0, 0.5, 0.0004, 0.1745, 0.9846, 0.136364, 0.236191, + 0.0776075, 0.125576, 0.477711, 0.0004, 0.1745, 0.9846, 0.159092, 0.275556, + -0.0690995, 0.1381985, 0.4755275, 0.0004, 0.1745, 0.9846, 0.113637, 0.275556, + -0.0690995, 0.1381985, 0.4755275, 0.016, 0.3485, 0.9372, 0.113637, 0.275556, + 0.0776075, 0.125576, 0.477711, 0.016, 0.3485, 0.9372, 0.159092, 0.275556, + 0.0148195, 0.251151, 0.432092, 0.016, 0.3485, 0.9372, 0.136364, 0.314921, + 0.0776075, 0.125576, 0.477711, 0.1387, 0.3987, 0.9065, 0.159092, 0.275556, + 0.138194, 0.22361, 0.4253245, 0.1387, 0.3987, 0.9065, 0.181819, 0.314921, + 0.0148195, 0.251151, 0.432092, 0.1387, 0.3987, 0.9065, 0.136364, 0.314921, + 0.2180035, 0.125576, 0.432094, 0.4206, 0.3987, 0.8149, 0.204546, 0.275556, + 0.2419855, 0.251151, 0.3582825, 0.4206, 0.3987, 0.8149, 0.227273, 0.314921, + 0.138194, 0.22361, 0.4253245, 0.4206, 0.3987, 0.8149, 0.181819, 0.314921, + 0.293893, 0.0, 0.4045085, 0.5785, 0.1745, 0.7968, 0.227273, 0.236191, + 0.33541, 0.138198, 0.344095, 0.5785, 0.1745, 0.7968, 0.250001, 0.275556, + 0.2180035, 0.125576, 0.432094, 0.5785, 0.1745, 0.7968, 0.204546, 0.275556, + 0.3435795, -0.125576, 0.3408575, 0.7049, -0.0784, 0.7049, 0.250001, 0.196826, + 0.4045095, -1e-06, 0.2938915, 0.7049, -0.0784, 0.7049, 0.272728, 0.236191, + 0.293893, 0.0, 0.4045085, 0.7049, -0.0784, 0.7049, 0.227273, 0.236191, + 0.2180035, 0.125576, 0.432094, 0.5379, 0.3485, 0.7676, 0.204546, 0.275556, + 0.33541, 0.138198, 0.344095, 0.5379, 0.3485, 0.7676, 0.250001, 0.275556, + 0.2419855, 0.251151, 0.3582825, 0.5379, 0.3485, 0.7676, 0.227273, 0.314921, + 0.33541, 0.138198, 0.344095, 0.6291, 0.4399, 0.6409, 0.250001, 0.275556, + 0.3440945, 0.262868, 0.2499985, 0.6291, 0.4399, 0.6409, 0.272728, 0.314921, + 0.2419855, 0.251151, 0.3582825, 0.6291, 0.4399, 0.6409, 0.227273, 0.314921, + 0.293893, 0.0, 0.4045085, 0.7038, 0.0962, 0.7038, 0.227273, 0.236191, + 0.4045095, -1e-06, 0.2938915, 0.7038, 0.0962, 0.7038, 0.272728, 0.236191, + 0.33541, 0.138198, 0.344095, 0.7038, 0.0962, 0.7038, 0.250001, 0.275556, + 0.4045095, -1e-06, 0.2938915, 0.7947, 0.1876, 0.5773, 0.272728, 0.236191, + 0.430902, 0.138197, 0.2126615, 0.7947, 0.1876, 0.5773, 0.295455, 0.275556, + 0.33541, 0.138198, 0.344095, 0.7947, 0.1876, 0.5773, 0.250001, 0.275556, + 0.33541, 0.138198, 0.344095, 0.7544, 0.3611, 0.5481, 0.250001, 0.275556, + 0.430902, 0.138197, 0.2126615, 0.7544, 0.3611, 0.5481, 0.295455, 0.275556, + 0.3440945, 0.262868, 0.2499985, 0.7544, 0.3611, 0.5481, 0.272728, 0.314921, + 0.430902, 0.138197, 0.2126615, 0.8039, 0.4399, 0.4003, 0.295455, 0.275556, + 0.4155255, 0.2511495, 0.1194265, 0.8039, 0.4399, 0.4003, 0.318182, 0.314921, + 0.3440945, 0.262868, 0.2499985, 0.8039, 0.4399, 0.4003, 0.272728, 0.314921, + 0.3435795, -0.125576, 0.3408575, 0.7972, -0.1702, 0.5792, 0.250001, 0.196826, + 0.430349, -0.1255755, 0.221429, 0.7972, -0.1702, 0.5792, 0.295455, 0.196826, + 0.4045095, -1e-06, 0.2938915, 0.7972, -0.1702, 0.5792, 0.272728, 0.236191, + 0.430349, -0.1255755, 0.221429, 0.8883, -0.0784, 0.4526, 0.295455, 0.196826, + 0.475529, -0.0, 0.1545065, 0.8883, -0.0784, 0.4526, 0.318182, 0.236191, + 0.4045095, -1e-06, 0.2938915, 0.8883, -0.0784, 0.4526, 0.272728, 0.236191, + 0.4045095, -1e-06, 0.2938915, 0.8869, 0.0962, 0.4519, 0.272728, 0.236191, + 0.475529, -0.0, 0.1545065, 0.8869, 0.0962, 0.4519, 0.318182, 0.236191, + 0.430902, 0.138197, 0.2126615, 0.8869, 0.0962, 0.4519, 0.295455, 0.275556, + 0.475529, -0.0, 0.1545065, 0.9366, 0.1745, 0.3039, 0.318182, 0.236191, + 0.478313, 0.1255745, 0.073809, 0.9366, 0.1745, 0.3039, 0.34091, 0.275556, + 0.430902, 0.138197, 0.2126615, 0.9366, 0.1745, 0.3039, 0.295455, 0.275556, + 0.430902, 0.138197, 0.2126615, 0.8963, 0.3485, 0.2744, 0.295455, 0.275556, + 0.478313, 0.1255745, 0.073809, 0.8963, 0.3485, 0.2744, 0.34091, 0.275556, + 0.4155255, 0.2511495, 0.1194265, 0.8963, 0.3485, 0.2744, 0.318182, 0.314921, + 0.478313, 0.1255745, 0.073809, 0.905, 0.3987, 0.1482, 0.34091, 0.275556, + 0.447213, 0.223608, 0.0, 0.905, 0.3987, 0.1482, 0.363637, 0.314921, + 0.4155255, 0.2511495, 0.1194265, 0.905, 0.3987, 0.1482, 0.318182, 0.314921, + 0.2180035, 0.125576, -0.432094, 0.2945, 0.3024, -0.9065, 0.522728, 0.275556, + 0.0776075, 0.125576, -0.477711, 0.2945, 0.3024, -0.9065, 0.568182, 0.275556, + 0.138194, 0.22361, -0.4253245, 0.2945, 0.3024, -0.9065, 0.545455, 0.314921, + 0.293893, -0.0, -0.4045085, 0.4526, 0.0784, -0.8883, 0.5, 0.236191, + 0.1545085, -0.0, -0.475528, 0.4526, 0.0784, -0.8883, 0.545455, 0.236191, + 0.2180035, 0.125576, -0.432094, 0.4526, 0.0784, -0.8883, 0.522728, 0.275556, + 0.3435795, -0.125576, -0.3408575, 0.5791, -0.1745, -0.7964, 0.477273, 0.196826, + 0.223608, -0.138199, -0.425324, 0.5791, -0.1745, -0.7964, 0.522728, 0.196826, + 0.293893, -0.0, -0.4045085, 0.5791, -0.1745, -0.7964, 0.5, 0.236191, + 0.2180035, 0.125576, -0.432094, 0.3045, 0.1702, -0.9372, 0.522728, 0.275556, + 0.1545085, -0.0, -0.475528, 0.3045, 0.1702, -0.9372, 0.545455, 0.236191, + 0.0776075, 0.125576, -0.477711, 0.3045, 0.1702, -0.9372, 0.568182, 0.275556, + 0.1545085, -0.0, -0.475528, 0.156, 0.0784, -0.9846, 0.545455, 0.236191, + 0.0, 0.0, -0.5, 0.156, 0.0784, -0.9846, 0.590909, 0.236191, + 0.0776075, 0.125576, -0.477711, 0.156, 0.0784, -0.9846, 0.568182, 0.275556, + 0.293893, -0.0, -0.4045085, 0.4519, -0.0962, -0.8869, 0.5, 0.236191, + 0.223608, -0.138199, -0.425324, 0.4519, -0.0962, -0.8869, 0.522728, 0.196826, + 0.1545085, -0.0, -0.475528, 0.4519, -0.0962, -0.8869, 0.545455, 0.236191, + 0.223608, -0.138199, -0.425324, 0.3035, -0.1876, -0.9342, 0.522728, 0.196826, + 0.0690995, -0.138199, -0.4755275, 0.3035, -0.1876, -0.9342, 0.568182, 0.196826, + 0.1545085, -0.0, -0.475528, 0.3035, -0.1876, -0.9342, 0.545455, 0.236191, + 0.1545085, -0.0, -0.475528, 0.1557, -0.0962, -0.9831, 0.545455, 0.236191, + 0.0690995, -0.138199, -0.4755275, 0.1557, -0.0962, -0.9831, 0.568182, 0.196826, + 0.0, 0.0, -0.5, 0.1557, -0.0962, -0.9831, 0.590909, 0.236191, + 0.0690995, -0.138199, -0.4755275, -0.0004, -0.1745, -0.9846, 0.568182, 0.196826, + -0.0776075, -0.125576, -0.477711, -0.0004, -0.1745, -0.9846, 0.613637, 0.196826, + 0.0, 0.0, -0.5, -0.0004, -0.1745, -0.9846, 0.590909, 0.236191, + 0.3435795, -0.125576, -0.3408575, 0.5638, -0.3485, -0.7488, 0.477273, 0.196826, + 0.2659705, -0.251151, -0.340856, 0.5638, -0.3485, -0.7488, 0.5, 0.157461, + 0.223608, -0.138199, -0.425324, 0.5638, -0.3485, -0.7488, 0.522728, 0.196826, + 0.2659705, -0.251151, -0.340856, 0.4151, -0.4399, -0.7964, 0.5, 0.157461, + 0.1314345, -0.262869, -0.404506, 0.4151, -0.4399, -0.7964, 0.545455, 0.157461, + 0.223608, -0.138199, -0.425324, 0.4151, -0.4399, -0.7964, 0.522728, 0.196826, + 0.223608, -0.138199, -0.425324, 0.2882, -0.3611, -0.8869, 0.522728, 0.196826, + 0.1314345, -0.262869, -0.404506, 0.2882, -0.3611, -0.8869, 0.545455, 0.157461, + 0.0690995, -0.138199, -0.4755275, 0.2882, -0.3611, -0.8869, 0.568182, 0.196826, + 0.1314345, -0.262869, -0.404506, 0.1323, -0.4399, -0.8883, 0.545455, 0.157461, + -0.0148195, -0.251151, -0.432092, 0.1323, -0.4399, -0.8883, 0.590909, 0.157461, + 0.0690995, -0.138199, -0.4755275, 0.1323, -0.4399, -0.8883, 0.568182, 0.196826, + 0.0690995, -0.138199, -0.4755275, -0.016, -0.3485, -0.9372, 0.568182, 0.196826, + -0.0148195, -0.251151, -0.432092, -0.016, -0.3485, -0.9372, 0.590909, 0.157461, + -0.0776075, -0.125576, -0.477711, -0.016, -0.3485, -0.9372, 0.613637, 0.196826, + -0.0148195, -0.251151, -0.432092, -0.1387, -0.3987, -0.9065, 0.590909, 0.157461, + -0.138194, -0.22361, -0.4253245, -0.1387, -0.3987, -0.9065, 0.636364, 0.157461, + -0.0776075, -0.125576, -0.477711, -0.1387, -0.3987, -0.9065, 0.613637, 0.196826, + -0.3435795, 0.125576, -0.3408575, -0.7711, 0.3024, -0.5603, 0.704546, 0.275556, + -0.430349, 0.1255755, -0.221429, -0.7711, 0.3024, -0.5603, 0.75, 0.275556, + -0.3618035, 0.22361, -0.2628625, -0.7711, 0.3024, -0.5603, 0.727273, 0.314921, + -0.293893, -0.0, -0.4045085, -0.7049, 0.0784, -0.7049, 0.681818, 0.236191, + -0.404509, -0.0, -0.2938915, -0.7049, 0.0784, -0.7049, 0.727273, 0.236191, + -0.3435795, 0.125576, -0.3408575, -0.7049, 0.0784, -0.7049, 0.704546, 0.275556, + -0.2180035, -0.125576, -0.432094, -0.5785, -0.1745, -0.7968, 0.659091, 0.196826, + -0.3354095, -0.1381985, -0.3440955, -0.5785, -0.1745, -0.7968, 0.704546, 0.196826, + -0.293893, -0.0, -0.4045085, -0.5785, -0.1745, -0.7968, 0.681818, 0.236191, + -0.3435795, 0.125576, -0.3408575, -0.7972, 0.1702, -0.5792, 0.704546, 0.275556, + -0.404509, -0.0, -0.2938915, -0.7972, 0.1702, -0.5792, 0.727273, 0.236191, + -0.430349, 0.1255755, -0.221429, -0.7972, 0.1702, -0.5792, 0.75, 0.275556, + -0.404509, -0.0, -0.2938915, -0.8883, 0.0784, -0.4526, 0.727273, 0.236191, + -0.475529, 0.0, -0.1545065, -0.8883, 0.0784, -0.4526, 0.772727, 0.236191, + -0.430349, 0.1255755, -0.221429, -0.8883, 0.0784, -0.4526, 0.75, 0.275556, + -0.293893, -0.0, -0.4045085, -0.7038, -0.0962, -0.7038, 0.681818, 0.236191, + -0.3354095, -0.1381985, -0.3440955, -0.7038, -0.0962, -0.7038, 0.704546, 0.196826, + -0.404509, -0.0, -0.2938915, -0.7038, -0.0962, -0.7038, 0.727273, 0.236191, + -0.3354095, -0.1381985, -0.3440955, -0.7947, -0.1876, -0.5774, 0.704546, 0.196826, + -0.4309015, -0.138198, -0.212662, -0.7947, -0.1876, -0.5774, 0.75, 0.196826, + -0.404509, -0.0, -0.2938915, -0.7947, -0.1876, -0.5774, 0.727273, 0.236191, + -0.404509, -0.0, -0.2938915, -0.8869, -0.0962, -0.4519, 0.727273, 0.236191, + -0.4309015, -0.138198, -0.212662, -0.8869, -0.0962, -0.4519, 0.75, 0.196826, + -0.475529, 0.0, -0.1545065, -0.8869, -0.0962, -0.4519, 0.772727, 0.236191, + -0.4309015, -0.138198, -0.212662, -0.9366, -0.1745, -0.3039, 0.75, 0.196826, + -0.478313, -0.1255745, -0.073809, -0.9366, -0.1745, -0.3039, 0.795455, 0.196826, + -0.475529, 0.0, -0.1545065, -0.9366, -0.1745, -0.3039, 0.772727, 0.236191, + -0.2180035, -0.125576, -0.432094, -0.5379, -0.3485, -0.7676, 0.659091, 0.196826, + -0.2419855, -0.251151, -0.3582825, -0.5379, -0.3485, -0.7676, 0.681818, 0.157461, + -0.3354095, -0.1381985, -0.3440955, -0.5379, -0.3485, -0.7676, 0.704546, 0.196826, + -0.2419855, -0.251151, -0.3582825, -0.6291, -0.4399, -0.6409, 0.681818, 0.157461, + -0.3440945, -0.262868, -0.2499985, -0.6291, -0.4399, -0.6409, 0.727273, 0.157461, + -0.3354095, -0.1381985, -0.3440955, -0.6291, -0.4399, -0.6409, 0.704546, 0.196826, + -0.3354095, -0.1381985, -0.3440955, -0.7544, -0.3611, -0.5481, 0.704546, 0.196826, + -0.3440945, -0.262868, -0.2499985, -0.7544, -0.3611, -0.5481, 0.727273, 0.157461, + -0.4309015, -0.138198, -0.212662, -0.7544, -0.3611, -0.5481, 0.75, 0.196826, + -0.3440945, -0.262868, -0.2499985, -0.8039, -0.4399, -0.4003, 0.727273, 0.157461, + -0.4155255, -0.2511495, -0.1194265, -0.8039, -0.4399, -0.4003, 0.772727, 0.157461, + -0.4309015, -0.138198, -0.212662, -0.8039, -0.4399, -0.4003, 0.75, 0.196826, + -0.4309015, -0.138198, -0.212662, -0.8963, -0.3485, -0.2744, 0.75, 0.196826, + -0.4155255, -0.2511495, -0.1194265, -0.8963, -0.3485, -0.2744, 0.772727, 0.157461, + -0.478313, -0.1255745, -0.073809, -0.8963, -0.3485, -0.2744, 0.795455, 0.196826, + -0.4155255, -0.2511495, -0.1194265, -0.905, -0.3987, -0.1482, 0.772727, 0.157461, + -0.447213, -0.223608, 0.0, -0.905, -0.3987, -0.1482, 0.818182, 0.157461, + -0.478313, -0.1255745, -0.073809, -0.905, -0.3987, -0.1482, 0.795455, 0.196826, + -0.430349, 0.1255755, 0.221429, -0.7711, 0.3024, 0.5603, 0.886364, 0.275556, + -0.3435795, 0.125576, 0.3408575, -0.7711, 0.3024, 0.5603, 0.931818, 0.275556, + -0.3618035, 0.22361, 0.2628625, -0.7711, 0.3024, 0.5603, 0.909091, 0.314921, + -0.475529, -0.0, 0.1545065, -0.8883, 0.0784, 0.4526, 0.863636, 0.236191, + -0.404509, 0.0, 0.2938915, -0.8883, 0.0784, 0.4526, 0.909091, 0.236191, + -0.430349, 0.1255755, 0.221429, -0.8883, 0.0784, 0.4526, 0.886364, 0.275556, + -0.478313, -0.1255745, 0.073809, -0.9366, -0.1745, 0.3039, 0.840909, 0.196826, + -0.4309015, -0.138198, 0.212662, -0.9366, -0.1745, 0.3039, 0.886364, 0.196826, + -0.475529, -0.0, 0.1545065, -0.9366, -0.1745, 0.3039, 0.863636, 0.236191, + -0.430349, 0.1255755, 0.221429, -0.7972, 0.1702, 0.5792, 0.886364, 0.275556, + -0.404509, 0.0, 0.2938915, -0.7972, 0.1702, 0.5792, 0.909091, 0.236191, + -0.3435795, 0.125576, 0.3408575, -0.7972, 0.1702, 0.5792, 0.931818, 0.275556, + -0.404509, 0.0, 0.2938915, -0.7049, 0.0784, 0.7049, 0.909091, 0.236191, + -0.293893, 0.0, 0.4045085, -0.7049, 0.0784, 0.7049, 0.954545, 0.236191, + -0.3435795, 0.125576, 0.3408575, -0.7049, 0.0784, 0.7049, 0.931818, 0.275556, + -0.475529, -0.0, 0.1545065, -0.8869, -0.0962, 0.4519, 0.863636, 0.236191, + -0.4309015, -0.138198, 0.212662, -0.8869, -0.0962, 0.4519, 0.886364, 0.196826, + -0.404509, 0.0, 0.2938915, -0.8869, -0.0962, 0.4519, 0.909091, 0.236191, + -0.4309015, -0.138198, 0.212662, -0.7947, -0.1876, 0.5774, 0.886364, 0.196826, + -0.3354095, -0.1381985, 0.3440955, -0.7947, -0.1876, 0.5774, 0.931818, 0.196826, + -0.404509, 0.0, 0.2938915, -0.7947, -0.1876, 0.5774, 0.909091, 0.236191, + -0.404509, 0.0, 0.2938915, -0.7038, -0.0962, 0.7038, 0.909091, 0.236191, + -0.3354095, -0.1381985, 0.3440955, -0.7038, -0.0962, 0.7038, 0.931818, 0.196826, + -0.293893, 0.0, 0.4045085, -0.7038, -0.0962, 0.7038, 0.954545, 0.236191, + -0.3354095, -0.1381985, 0.3440955, -0.5785, -0.1745, 0.7968, 0.931818, 0.196826, + -0.2180035, -0.125576, 0.432094, -0.5785, -0.1745, 0.7968, 0.977273, 0.196826, + -0.293893, 0.0, 0.4045085, -0.5785, -0.1745, 0.7968, 0.954545, 0.236191, + -0.478313, -0.1255745, 0.073809, -0.8963, -0.3485, 0.2744, 0.840909, 0.196826, + -0.4155255, -0.2511495, 0.1194265, -0.8963, -0.3485, 0.2744, 0.863636, 0.157461, + -0.4309015, -0.138198, 0.212662, -0.8963, -0.3485, 0.2744, 0.886364, 0.196826, + -0.4155255, -0.2511495, 0.1194265, -0.8039, -0.4399, 0.4003, 0.863636, 0.157461, + -0.3440945, -0.262868, 0.2499985, -0.8039, -0.4399, 0.4003, 0.909091, 0.157461, + -0.4309015, -0.138198, 0.212662, -0.8039, -0.4399, 0.4003, 0.886364, 0.196826, + -0.4309015, -0.138198, 0.212662, -0.7544, -0.3611, 0.5481, 0.886364, 0.196826, + -0.3440945, -0.262868, 0.2499985, -0.7544, -0.3611, 0.5481, 0.909091, 0.157461, + -0.3354095, -0.1381985, 0.3440955, -0.7544, -0.3611, 0.5481, 0.931818, 0.196826, + -0.3440945, -0.262868, 0.2499985, -0.6291, -0.4399, 0.6409, 0.909091, 0.157461, + -0.2419855, -0.251151, 0.3582825, -0.6291, -0.4399, 0.6409, 0.954545, 0.157461, + -0.3354095, -0.1381985, 0.3440955, -0.6291, -0.4399, 0.6409, 0.931818, 0.196826, + -0.3354095, -0.1381985, 0.3440955, -0.5379, -0.3485, 0.7676, 0.931818, 0.196826, + -0.2419855, -0.251151, 0.3582825, -0.5379, -0.3485, 0.7676, 0.954545, 0.157461, + -0.2180035, -0.125576, 0.432094, -0.5379, -0.3485, 0.7676, 0.977273, 0.196826, + -0.2419855, -0.251151, 0.3582825, -0.4206, -0.3987, 0.8149, 0.954545, 0.157461, + -0.138194, -0.22361, 0.4253245, -0.4206, -0.3987, 0.8149, 1.0, 0.157461, + -0.2180035, -0.125576, 0.432094, -0.4206, -0.3987, 0.8149, 0.977273, 0.196826, + 0.0776075, 0.125576, 0.477711, 0.2945, 0.3024, 0.9065, 0.159092, 0.275556, + 0.2180035, 0.125576, 0.432094, 0.2945, 0.3024, 0.9065, 0.204546, 0.275556, + 0.138194, 0.22361, 0.4253245, 0.2945, 0.3024, 0.9065, 0.181819, 0.314921, + 0.0, -0.0, 0.5, 0.156, 0.0784, 0.9846, 0.136364, 0.236191, + 0.1545085, 0.0, 0.475528, 0.156, 0.0784, 0.9846, 0.181819, 0.236191, + 0.0776075, 0.125576, 0.477711, 0.156, 0.0784, 0.9846, 0.159092, 0.275556, + -0.0776075, -0.125576, 0.477711, -0.0004, -0.1745, 0.9846, 0.113637, 0.196826, + 0.0690995, -0.138199, 0.4755275, -0.0004, -0.1745, 0.9846, 0.159092, 0.196826, + 0.0, -0.0, 0.5, -0.0004, -0.1745, 0.9846, 0.136364, 0.236191, + 0.0776075, 0.125576, 0.477711, 0.3045, 0.1702, 0.9372, 0.159092, 0.275556, + 0.1545085, 0.0, 0.475528, 0.3045, 0.1702, 0.9372, 0.181819, 0.236191, + 0.2180035, 0.125576, 0.432094, 0.3045, 0.1702, 0.9372, 0.204546, 0.275556, + 0.1545085, 0.0, 0.475528, 0.4526, 0.0784, 0.8883, 0.181819, 0.236191, + 0.293893, 0.0, 0.4045085, 0.4526, 0.0784, 0.8883, 0.227273, 0.236191, + 0.2180035, 0.125576, 0.432094, 0.4526, 0.0784, 0.8883, 0.204546, 0.275556, + 0.0, -0.0, 0.5, 0.1557, -0.0962, 0.9831, 0.136364, 0.236191, + 0.0690995, -0.138199, 0.4755275, 0.1557, -0.0962, 0.9831, 0.159092, 0.196826, + 0.1545085, 0.0, 0.475528, 0.1557, -0.0962, 0.9831, 0.181819, 0.236191, + 0.0690995, -0.138199, 0.4755275, 0.3035, -0.1876, 0.9342, 0.159092, 0.196826, + 0.223608, -0.138199, 0.425324, 0.3035, -0.1876, 0.9342, 0.204546, 0.196826, + 0.1545085, 0.0, 0.475528, 0.3035, -0.1876, 0.9342, 0.181819, 0.236191, + 0.1545085, 0.0, 0.475528, 0.4519, -0.0962, 0.8869, 0.181819, 0.236191, + 0.223608, -0.138199, 0.425324, 0.4519, -0.0962, 0.8869, 0.204546, 0.196826, + 0.293893, 0.0, 0.4045085, 0.4519, -0.0962, 0.8869, 0.227273, 0.236191, + 0.223608, -0.138199, 0.425324, 0.5791, -0.1745, 0.7964, 0.204546, 0.196826, + 0.3435795, -0.125576, 0.3408575, 0.5791, -0.1745, 0.7964, 0.250001, 0.196826, + 0.293893, 0.0, 0.4045085, 0.5791, -0.1745, 0.7964, 0.227273, 0.236191, + -0.0776075, -0.125576, 0.477711, -0.016, -0.3485, 0.9372, 0.113637, 0.196826, + -0.0148195, -0.251151, 0.432092, -0.016, -0.3485, 0.9372, 0.136364, 0.157461, + 0.0690995, -0.138199, 0.4755275, -0.016, -0.3485, 0.9372, 0.159092, 0.196826, + -0.0148195, -0.251151, 0.432092, 0.1323, -0.4399, 0.8883, 0.136364, 0.157461, + 0.1314345, -0.262869, 0.404506, 0.1323, -0.4399, 0.8883, 0.181819, 0.157461, + 0.0690995, -0.138199, 0.4755275, 0.1323, -0.4399, 0.8883, 0.159092, 0.196826, + 0.0690995, -0.138199, 0.4755275, 0.2882, -0.3611, 0.8869, 0.159092, 0.196826, + 0.1314345, -0.262869, 0.404506, 0.2882, -0.3611, 0.8869, 0.181819, 0.157461, + 0.223608, -0.138199, 0.425324, 0.2882, -0.3611, 0.8869, 0.204546, 0.196826, + 0.1314345, -0.262869, 0.404506, 0.4151, -0.4399, 0.7964, 0.181819, 0.157461, + 0.2659705, -0.251151, 0.340856, 0.4151, -0.4399, 0.7964, 0.227274, 0.157461, + 0.223608, -0.138199, 0.425324, 0.4151, -0.4399, 0.7964, 0.204546, 0.196826, + 0.223608, -0.138199, 0.425324, 0.5638, -0.3485, 0.7488, 0.204546, 0.196826, + 0.2659705, -0.251151, 0.340856, 0.5638, -0.3485, 0.7488, 0.227274, 0.157461, + 0.3435795, -0.125576, 0.3408575, 0.5638, -0.3485, 0.7488, 0.250001, 0.196826, + 0.2659705, -0.251151, 0.340856, 0.6451, -0.3987, 0.6519, 0.227274, 0.157461, + 0.3618035, -0.22361, 0.2628625, 0.6451, -0.3987, 0.6519, 0.272728, 0.157461, + 0.3435795, -0.125576, 0.3408575, 0.6451, -0.3987, 0.6519, 0.250001, 0.196826, + 0.478313, 0.1255745, 0.073809, 0.9532, 0.3024, -0.0, 0.34091, 0.275556, + 0.478313, 0.1255745, -0.073809, 0.9532, 0.3024, -0.0, 0.386364, 0.275556, + 0.447213, 0.223608, 0.0, 0.9532, 0.3024, -0.0, 0.363637, 0.314921, + 0.475529, -0.0, 0.1545065, 0.9846, 0.0784, 0.156, 0.318182, 0.236191, + 0.5, 0.0, 0.0, 0.9846, 0.0784, 0.156, 0.363637, 0.236191, + 0.478313, 0.1255745, 0.073809, 0.9846, 0.0784, 0.156, 0.34091, 0.275556, + 0.430349, -0.1255755, 0.221429, 0.9363, -0.1745, 0.3046, 0.295455, 0.196826, + 0.4736065, -0.138198, 0.081229, 0.9363, -0.1745, 0.3046, 0.34091, 0.196826, + 0.475529, -0.0, 0.1545065, 0.9363, -0.1745, 0.3046, 0.318182, 0.236191, + 0.478313, 0.1255745, 0.073809, 0.9854, 0.1702, -0.0, 0.34091, 0.275556, + 0.5, 0.0, 0.0, 0.9854, 0.1702, -0.0, 0.363637, 0.236191, + 0.478313, 0.1255745, -0.073809, 0.9854, 0.1702, -0.0, 0.386364, 0.275556, + 0.5, 0.0, 0.0, 0.9846, 0.0784, -0.156, 0.363637, 0.236191, + 0.475529, 0.0, -0.1545065, 0.9846, 0.0784, -0.156, 0.409091, 0.236191, + 0.478313, 0.1255745, -0.073809, 0.9846, 0.0784, -0.156, 0.386364, 0.275556, + 0.475529, -0.0, 0.1545065, 0.9831, -0.0962, 0.1557, 0.318182, 0.236191, + 0.4736065, -0.138198, 0.081229, 0.9831, -0.0962, 0.1557, 0.34091, 0.196826, + 0.5, 0.0, 0.0, 0.9831, -0.0962, 0.1557, 0.363637, 0.236191, + 0.4736065, -0.138198, 0.081229, 0.9822, -0.1876, -0.0, 0.34091, 0.196826, + 0.4736065, -0.138198, -0.081229, 0.9822, -0.1876, -0.0, 0.386364, 0.196826, + 0.5, 0.0, 0.0, 0.9822, -0.1876, -0.0, 0.363637, 0.236191, + 0.5, 0.0, 0.0, 0.9831, -0.0962, -0.1557, 0.363637, 0.236191, + 0.4736065, -0.138198, -0.081229, 0.9831, -0.0962, -0.1557, 0.386364, 0.196826, + 0.475529, 0.0, -0.1545065, 0.9831, -0.0962, -0.1557, 0.409091, 0.236191, + 0.4736065, -0.138198, -0.081229, 0.9363, -0.1745, -0.3046, 0.386364, 0.196826, + 0.430349, -0.1255755, -0.221429, 0.9363, -0.1745, -0.3046, 0.431819, 0.196826, + 0.475529, 0.0, -0.1545065, 0.9363, -0.1745, -0.3046, 0.409091, 0.236191, + 0.430349, -0.1255755, 0.221429, 0.8864, -0.3485, 0.3049, 0.295455, 0.196826, + 0.4063645, -0.2511505, 0.147619, 0.8864, -0.3485, 0.3049, 0.318182, 0.157461, + 0.4736065, -0.138198, 0.081229, 0.8864, -0.3485, 0.3049, 0.34091, 0.196826, + 0.4063645, -0.2511505, 0.147619, 0.8857, -0.4399, 0.1487, 0.318182, 0.157461, + 0.425324, -0.262868, 0.0, 0.8857, -0.4399, 0.1487, 0.363637, 0.157461, + 0.4736065, -0.138198, 0.081229, 0.8857, -0.4399, 0.1487, 0.34091, 0.196826, + 0.4736065, -0.138198, 0.081229, 0.9325, -0.3611, -0.0, 0.34091, 0.196826, + 0.425324, -0.262868, 0.0, 0.9325, -0.3611, -0.0, 0.363637, 0.157461, + 0.4736065, -0.138198, -0.081229, 0.9325, -0.3611, -0.0, 0.386364, 0.196826, + 0.425324, -0.262868, 0.0, 0.8857, -0.4399, -0.1487, 0.363637, 0.157461, + 0.4063645, -0.2511505, -0.147619, 0.8857, -0.4399, -0.1487, 0.409092, 0.157461, + 0.4736065, -0.138198, -0.081229, 0.8857, -0.4399, -0.1487, 0.386364, 0.196826, + 0.4736065, -0.138198, -0.081229, 0.8864, -0.3485, -0.3049, 0.386364, 0.196826, + 0.4063645, -0.2511505, -0.147619, 0.8864, -0.3485, -0.3049, 0.409092, 0.157461, + 0.430349, -0.1255755, -0.221429, 0.8864, -0.3485, -0.3049, 0.431819, 0.196826, + 0.4063645, -0.2511505, -0.147619, 0.8193, -0.3987, -0.4121, 0.409092, 0.157461, + 0.3618035, -0.22361, -0.2628625, 0.8193, -0.3987, -0.4121, 0.454546, 0.157461, + 0.430349, -0.1255755, -0.221429, 0.8193, -0.3987, -0.4121, 0.431819, 0.196826, + 0.3047735, -0.3287595, -0.221428, 0.6153, -0.5545, -0.5603, 0.477273, 0.118096, + 0.2659705, -0.251151, -0.340856, 0.6153, -0.5545, -0.5603, 0.5, 0.157461, + 0.3618035, -0.22361, -0.2628625, 0.6153, -0.5545, -0.5603, 0.454546, 0.157461, + 0.2126615, -0.425327, -0.1545055, 0.4674, -0.7594, -0.4526, 0.5, 0.078731, + 0.1809015, -0.361806, -0.2938895, 0.4674, -0.7594, -0.4526, 0.522728, 0.118096, + 0.3047735, -0.3287595, -0.221428, 0.4674, -0.7594, -0.4526, 0.477273, 0.118096, + 0.1015905, -0.483975, -0.073809, 0.2627, -0.9158, -0.3039, 0.522728, 0.039365, + 0.0690985, -0.4472145, -0.2126605, 0.2627, -0.9158, -0.3039, 0.545455, 0.078731, + 0.2126615, -0.425327, -0.1545055, 0.2627, -0.9158, -0.3039, 0.5, 0.078731, + 0.3047735, -0.3287595, -0.221428, 0.5087, -0.6369, -0.5792, 0.477273, 0.118096, + 0.1809015, -0.361806, -0.2938895, 0.5087, -0.6369, -0.5792, 0.522728, 0.118096, + 0.2659705, -0.251151, -0.340856, 0.5087, -0.6369, -0.5792, 0.5, 0.157461, + 0.1809015, -0.361806, -0.2938895, 0.3854, -0.5955, -0.7049, 0.522728, 0.118096, + 0.1314345, -0.262869, -0.404506, 0.3854, -0.5955, -0.7049, 0.545455, 0.157461, + 0.2659705, -0.251151, -0.340856, 0.3854, -0.5955, -0.7049, 0.5, 0.157461, + 0.2126615, -0.425327, -0.1545055, 0.3105, -0.8363, -0.4519, 0.5, 0.078731, + 0.0690985, -0.4472145, -0.2126605, 0.3105, -0.8363, -0.4519, 0.545455, 0.078731, + 0.1809015, -0.361806, -0.2938895, 0.3105, -0.8363, -0.4519, 0.522728, 0.118096, + 0.0690985, -0.4472145, -0.2126605, 0.1876, -0.7947, -0.5773, 0.545455, 0.078731, + 0.0263945, -0.3618055, -0.344093, 0.1876, -0.7947, -0.5773, 0.568182, 0.118096, + 0.1809015, -0.361806, -0.2938895, 0.1876, -0.7947, -0.5773, 0.522728, 0.118096, + 0.1809015, -0.361806, -0.2938895, 0.2287, -0.6726, -0.7038, 0.522728, 0.118096, + 0.0263945, -0.3618055, -0.344093, 0.2287, -0.6726, -0.7038, 0.568182, 0.118096, + 0.1314345, -0.262869, -0.404506, 0.2287, -0.6726, -0.7038, 0.545455, 0.157461, + 0.0263945, -0.3618055, -0.344093, 0.1026, -0.5955, -0.7968, 0.568182, 0.118096, + -0.0148195, -0.251151, -0.432092, 0.1026, -0.5955, -0.7968, 0.590909, 0.157461, + 0.1314345, -0.262869, -0.404506, 0.1026, -0.5955, -0.7968, 0.545455, 0.157461, + 0.1015905, -0.483975, -0.073809, 0.0891, -0.9575, -0.2744, 0.522728, 0.039365, + -0.0388035, -0.483975, -0.1194265, 0.0891, -0.9575, -0.2744, 0.568182, 0.039365, + 0.0690985, -0.4472145, -0.2126605, 0.0891, -0.9575, -0.2744, 0.545455, 0.078731, + -0.0388035, -0.483975, -0.1194265, -0.0339, -0.9158, -0.4003, 0.568182, 0.039365, + -0.081228, -0.425327, -0.2499975, -0.0339, -0.9158, -0.4003, 0.590909, 0.078731, + 0.0690985, -0.4472145, -0.2126605, -0.0339, -0.9158, -0.4003, 0.545455, 0.078731, + 0.0690985, -0.4472145, -0.2126605, 0.0144, -0.8363, -0.5481, 0.545455, 0.078731, + -0.081228, -0.425327, -0.2499975, 0.0144, -0.8363, -0.5481, 0.590909, 0.078731, + 0.0263945, -0.3618055, -0.344093, 0.0144, -0.8363, -0.5481, 0.568182, 0.118096, + -0.081228, -0.425327, -0.2499975, -0.1121, -0.7594, -0.6409, 0.590909, 0.078731, + -0.116411, -0.3287595, -0.3582815, -0.1121, -0.7594, -0.6409, 0.613637, 0.118096, + 0.0263945, -0.3618055, -0.344093, -0.1121, -0.7594, -0.6409, 0.568182, 0.118096, + 0.0263945, -0.3618055, -0.344093, -0.0711, -0.6369, -0.7676, 0.568182, 0.118096, + -0.116411, -0.3287595, -0.3582815, -0.0711, -0.6369, -0.7676, 0.613637, 0.118096, + -0.0148195, -0.251151, -0.432092, -0.0711, -0.6369, -0.7676, 0.590909, 0.157461, + -0.116411, -0.3287595, -0.3582815, -0.1685, -0.5545, -0.8149, 0.613637, 0.118096, + -0.138194, -0.22361, -0.4253245, -0.1685, -0.5545, -0.8149, 0.636364, 0.157461, + -0.0148195, -0.251151, -0.432092, -0.1685, -0.5545, -0.8149, 0.590909, 0.157461, + -0.116411, -0.3287595, -0.3582815, -0.3427, -0.5545, -0.7583, 0.659091, 0.118096, + -0.2419855, -0.251151, -0.3582825, -0.3427, -0.5545, -0.7583, 0.681818, 0.157461, + -0.138194, -0.22361, -0.4253245, -0.3427, -0.5545, -0.7583, 0.636364, 0.157461, + -0.081228, -0.425327, -0.2499975, -0.286, -0.7594, -0.5843, 0.681818, 0.078731, + -0.2236055, -0.361806, -0.2628635, -0.286, -0.7594, -0.5843, 0.704546, 0.118096, + -0.116411, -0.3287595, -0.3582815, -0.286, -0.7594, -0.5843, 0.659091, 0.118096, + -0.0388035, -0.483975, -0.1194265, -0.2079, -0.9158, -0.3438, 0.704546, 0.039365, + -0.1809005, -0.4472145, -0.1314315, -0.2079, -0.9158, -0.3438, 0.727273, 0.078731, + -0.081228, -0.425327, -0.2499975, -0.2079, -0.9158, -0.3438, 0.681818, 0.078731, + -0.116411, -0.3287595, -0.3582815, -0.3936, -0.6369, -0.6628, 0.659091, 0.118096, + -0.2236055, -0.361806, -0.2628635, -0.3936, -0.6369, -0.6628, 0.704546, 0.118096, + -0.2419855, -0.251151, -0.3582825, -0.3936, -0.6369, -0.6628, 0.681818, 0.157461, + -0.2236055, -0.361806, -0.2628635, -0.5513, -0.5955, -0.5843, 0.704546, 0.118096, + -0.3440945, -0.262868, -0.2499985, -0.5513, -0.5955, -0.5843, 0.727273, 0.157461, + -0.2419855, -0.251151, -0.3582825, -0.5513, -0.5955, -0.5843, 0.681818, 0.157461, + -0.081228, -0.425327, -0.2499975, -0.3338, -0.8363, -0.435, 0.681818, 0.078731, + -0.1809005, -0.4472145, -0.1314315, -0.3338, -0.8363, -0.435, 0.727273, 0.078731, + -0.2236055, -0.361806, -0.2628635, -0.3338, -0.8363, -0.435, 0.704546, 0.118096, + -0.1809005, -0.4472145, -0.1314315, -0.4911, -0.7947, -0.3568, 0.727273, 0.078731, + -0.3190975, -0.3618045, -0.1314315, -0.4911, -0.7947, -0.3568, 0.75, 0.118096, + -0.2236055, -0.361806, -0.2628635, -0.4911, -0.7947, -0.3568, 0.704546, 0.118096, + -0.2236055, -0.361806, -0.2628635, -0.5987, -0.6726, -0.435, 0.704546, 0.118096, + -0.3190975, -0.3618045, -0.1314315, -0.5987, -0.6726, -0.435, 0.75, 0.118096, + -0.3440945, -0.262868, -0.2499985, -0.5987, -0.6726, -0.435, 0.727273, 0.157461, + -0.3190975, -0.3618045, -0.1314315, -0.7261, -0.5955, -0.3438, 0.75, 0.118096, + -0.4155255, -0.2511495, -0.1194265, -0.7261, -0.5955, -0.3438, 0.772727, 0.157461, + -0.3440945, -0.262868, -0.2499985, -0.7261, -0.5955, -0.3438, 0.727273, 0.157461, + -0.0388035, -0.483975, -0.1194265, -0.2334, -0.9575, -0.1696, 0.704546, 0.039365, + -0.1255735, -0.4839745, 0.0, -0.2334, -0.9575, -0.1696, 0.75, 0.039365, + -0.1809005, -0.4472145, -0.1314315, -0.2334, -0.9575, -0.1696, 0.727273, 0.078731, + -0.1255735, -0.4839745, 0.0, -0.3912, -0.9158, -0.0915, 0.75, 0.039365, + -0.262865, -0.425326, 0.0, -0.3912, -0.9158, -0.0915, 0.772727, 0.078731, + -0.1809005, -0.4472145, -0.1314315, -0.3912, -0.9158, -0.0915, 0.727273, 0.078731, + -0.1809005, -0.4472145, -0.1314315, -0.5168, -0.8363, -0.183, 0.727273, 0.078731, + -0.262865, -0.425326, 0.0, -0.5168, -0.8363, -0.183, 0.772727, 0.078731, + -0.3190975, -0.3618045, -0.1314315, -0.5168, -0.8363, -0.183, 0.75, 0.118096, + -0.262865, -0.425326, 0.0, -0.6441, -0.7594, -0.0915, 0.772727, 0.078731, + -0.376721, -0.3287575, 0.0, -0.6441, -0.7594, -0.0915, 0.795455, 0.118096, + -0.3190975, -0.3618045, -0.1314315, -0.6441, -0.7594, -0.0915, 0.75, 0.118096, + -0.3190975, -0.3618045, -0.1314315, -0.752, -0.6369, -0.1696, 0.75, 0.118096, + -0.376721, -0.3287575, 0.0, -0.752, -0.6369, -0.1696, 0.795455, 0.118096, + -0.4155255, -0.2511495, -0.1194265, -0.752, -0.6369, -0.1696, 0.772727, 0.157461, + -0.376721, -0.3287575, 0.0, -0.8271, -0.5545, -0.0916, 0.795455, 0.118096, + -0.447213, -0.223608, 0.0, -0.8271, -0.5545, -0.0916, 0.818182, 0.157461, + -0.4155255, -0.2511495, -0.1194265, -0.8271, -0.5545, -0.0916, 0.772727, 0.157461, + -0.376721, -0.3287575, 0.0, -0.8271, -0.5545, 0.0916, 0.840909, 0.118096, + -0.4155255, -0.2511495, 0.1194265, -0.8271, -0.5545, 0.0916, 0.863636, 0.157461, + -0.447213, -0.223608, 0.0, -0.8271, -0.5545, 0.0916, 0.818182, 0.157461, + -0.262865, -0.425326, 0.0, -0.6441, -0.7594, 0.0915, 0.863636, 0.078731, + -0.3190975, -0.3618045, 0.131432, -0.6441, -0.7594, 0.0915, 0.886364, 0.118096, + -0.376721, -0.3287575, 0.0, -0.6441, -0.7594, 0.0915, 0.840909, 0.118096, + -0.1255735, -0.4839745, 0.0, -0.3912, -0.9158, 0.0915, 0.886364, 0.039365, + -0.1809005, -0.447214, 0.131432, -0.3912, -0.9158, 0.0915, 0.909091, 0.078731, + -0.262865, -0.425326, 0.0, -0.3912, -0.9158, 0.0915, 0.863636, 0.078731, + -0.376721, -0.3287575, 0.0, -0.752, -0.6369, 0.1696, 0.840909, 0.118096, + -0.3190975, -0.3618045, 0.131432, -0.752, -0.6369, 0.1696, 0.886364, 0.118096, + -0.4155255, -0.2511495, 0.1194265, -0.752, -0.6369, 0.1696, 0.863636, 0.157461, + -0.3190975, -0.3618045, 0.131432, -0.7261, -0.5955, 0.3438, 0.886364, 0.118096, + -0.3440945, -0.262868, 0.2499985, -0.7261, -0.5955, 0.3438, 0.909091, 0.157461, + -0.4155255, -0.2511495, 0.1194265, -0.7261, -0.5955, 0.3438, 0.863636, 0.157461, + -0.262865, -0.425326, 0.0, -0.5168, -0.8363, 0.183, 0.863636, 0.078731, + -0.1809005, -0.447214, 0.131432, -0.5168, -0.8363, 0.183, 0.909091, 0.078731, + -0.3190975, -0.3618045, 0.131432, -0.5168, -0.8363, 0.183, 0.886364, 0.118096, + -0.1809005, -0.447214, 0.131432, -0.4911, -0.7947, 0.3568, 0.909091, 0.078731, + -0.2236055, -0.361805, 0.2628645, -0.4911, -0.7947, 0.3568, 0.931818, 0.118096, + -0.3190975, -0.3618045, 0.131432, -0.4911, -0.7947, 0.3568, 0.886364, 0.118096, + -0.3190975, -0.3618045, 0.131432, -0.5987, -0.6726, 0.435, 0.886364, 0.118096, + -0.2236055, -0.361805, 0.2628645, -0.5987, -0.6726, 0.435, 0.931818, 0.118096, + -0.3440945, -0.262868, 0.2499985, -0.5987, -0.6726, 0.435, 0.909091, 0.157461, + -0.2236055, -0.361805, 0.2628645, -0.5513, -0.5955, 0.5843, 0.931818, 0.118096, + -0.2419855, -0.251151, 0.3582825, -0.5513, -0.5955, 0.5843, 0.954545, 0.157461, + -0.3440945, -0.262868, 0.2499985, -0.5513, -0.5955, 0.5843, 0.909091, 0.157461, + -0.1255735, -0.4839745, 0.0, -0.2334, -0.9575, 0.1696, 0.886364, 0.039365, + -0.0388035, -0.483975, 0.1194265, -0.2334, -0.9575, 0.1696, 0.931818, 0.039365, + -0.1809005, -0.447214, 0.131432, -0.2334, -0.9575, 0.1696, 0.909091, 0.078731, + -0.0388035, -0.483975, 0.1194265, -0.2079, -0.9158, 0.3438, 0.931818, 0.039365, + -0.081228, -0.425327, 0.2499975, -0.2079, -0.9158, 0.3438, 0.954545, 0.078731, + -0.1809005, -0.447214, 0.131432, -0.2079, -0.9158, 0.3438, 0.909091, 0.078731, + -0.1809005, -0.447214, 0.131432, -0.3338, -0.8363, 0.435, 0.909091, 0.078731, + -0.081228, -0.425327, 0.2499975, -0.3338, -0.8363, 0.435, 0.954545, 0.078731, + -0.2236055, -0.361805, 0.2628645, -0.3338, -0.8363, 0.435, 0.931818, 0.118096, + -0.081228, -0.425327, 0.2499975, -0.286, -0.7594, 0.5843, 0.954545, 0.078731, + -0.116411, -0.3287595, 0.3582815, -0.286, -0.7594, 0.5843, 0.977273, 0.118096, + -0.2236055, -0.361805, 0.2628645, -0.286, -0.7594, 0.5843, 0.931818, 0.118096, + -0.2236055, -0.361805, 0.2628645, -0.3936, -0.6369, 0.6628, 0.931818, 0.118096, + -0.116411, -0.3287595, 0.3582815, -0.3936, -0.6369, 0.6628, 0.977273, 0.118096, + -0.2419855, -0.251151, 0.3582825, -0.3936, -0.6369, 0.6628, 0.954545, 0.157461, + -0.116411, -0.3287595, 0.3582815, -0.3427, -0.5545, 0.7583, 0.977273, 0.118096, + -0.138194, -0.22361, 0.4253245, -0.3427, -0.5545, 0.7583, 1.0, 0.157461, + -0.2419855, -0.251151, 0.3582825, -0.3427, -0.5545, 0.7583, 0.954545, 0.157461, + 0.4063645, -0.2511505, -0.147619, 0.723, -0.5545, -0.4121, 0.409092, 0.157461, + 0.3047735, -0.3287595, -0.221428, 0.723, -0.5545, -0.4121, 0.431819, 0.118096, + 0.3618035, -0.22361, -0.2628625, 0.723, -0.5545, -0.4121, 0.454546, 0.157461, + 0.425324, -0.262868, 0.0, 0.7895, -0.5955, -0.1487, 0.363637, 0.157461, + 0.3354085, -0.3618055, -0.0812285, 0.7895, -0.5955, -0.1487, 0.386364, 0.118096, + 0.4063645, -0.2511505, -0.147619, 0.7895, -0.5955, -0.1487, 0.409092, 0.157461, + 0.4063645, -0.2511505, 0.147619, 0.7895, -0.5955, 0.1487, 0.318182, 0.157461, + 0.335409, -0.361805, 0.081229, 0.7895, -0.5955, 0.1487, 0.34091, 0.118096, + 0.425324, -0.262868, 0.0, 0.7895, -0.5955, 0.1487, 0.363637, 0.157461, + 0.4063645, -0.2511505, -0.147619, 0.7081, -0.6369, -0.3049, 0.409092, 0.157461, + 0.3354085, -0.3618055, -0.0812285, 0.7081, -0.6369, -0.3049, 0.386364, 0.118096, + 0.3047735, -0.3287595, -0.221428, 0.7081, -0.6369, -0.3049, 0.431819, 0.118096, + 0.3354085, -0.3618055, -0.0812285, 0.5749, -0.7594, -0.3046, 0.386364, 0.118096, + 0.2126615, -0.425327, -0.1545055, 0.5749, -0.7594, -0.3046, 0.409091, 0.078731, + 0.3047735, -0.3287595, -0.221428, 0.5749, -0.7594, -0.3046, 0.431819, 0.118096, + 0.425324, -0.262868, 0.0, 0.74, -0.6726, -0.0, 0.363637, 0.157461, + 0.335409, -0.361805, 0.081229, 0.74, -0.6726, -0.0, 0.34091, 0.118096, + 0.3354085, -0.3618055, -0.0812285, 0.74, -0.6726, -0.0, 0.386364, 0.118096, + 0.335409, -0.361805, 0.081229, 0.6071, -0.7947, -0.0, 0.34091, 0.118096, + 0.2236055, -0.447214, 5e-07, 0.6071, -0.7947, -0.0, 0.363637, 0.07873, + 0.3354085, -0.3618055, -0.0812285, 0.6071, -0.7947, -0.0, 0.386364, 0.118096, + 0.3354085, -0.3618055, -0.0812285, 0.5257, -0.8363, -0.1557, 0.386364, 0.118096, + 0.2236055, -0.447214, 5e-07, 0.5257, -0.8363, -0.1557, 0.363637, 0.07873, + 0.2126615, -0.425327, -0.1545055, 0.5257, -0.8363, -0.1557, 0.409091, 0.078731, + 0.2236055, -0.447214, 5e-07, 0.3702, -0.9158, -0.1559, 0.363637, 0.07873, + 0.1015905, -0.483975, -0.073809, 0.3702, -0.9158, -0.1559, 0.386364, 0.039365, + 0.2126615, -0.425327, -0.1545055, 0.3702, -0.9158, -0.1559, 0.409091, 0.078731, + 0.4063645, -0.2511505, 0.147619, 0.7081, -0.6369, 0.3049, 0.318182, 0.157461, + 0.3047735, -0.3287595, 0.221428, 0.7081, -0.6369, 0.3049, 0.295455, 0.118096, + 0.335409, -0.361805, 0.081229, 0.7081, -0.6369, 0.3049, 0.34091, 0.118096, + 0.3047735, -0.3287595, 0.221428, 0.5749, -0.7594, 0.3046, 0.295455, 0.118096, + 0.2126615, -0.425327, 0.1545055, 0.5749, -0.7594, 0.3046, 0.318182, 0.078731, + 0.335409, -0.361805, 0.081229, 0.5749, -0.7594, 0.3046, 0.34091, 0.118096, + 0.335409, -0.361805, 0.081229, 0.5257, -0.8363, 0.1557, 0.34091, 0.118096, + 0.2126615, -0.425327, 0.1545055, 0.5257, -0.8363, 0.1557, 0.318182, 0.078731, + 0.2236055, -0.447214, 5e-07, 0.5257, -0.8363, 0.1557, 0.363637, 0.07873, + 0.2126615, -0.425327, 0.1545055, 0.3702, -0.9158, 0.156, 0.318182, 0.078731, + 0.1015905, -0.483975, 0.073809, 0.3702, -0.9158, 0.156, 0.34091, 0.039365, + 0.2236055, -0.447214, 5e-07, 0.3702, -0.9158, 0.156, 0.363637, 0.07873, + 0.2236055, -0.447214, 5e-07, 0.2885, -0.9575, -0.0, 0.363637, 0.07873, + 0.1015905, -0.483975, 0.073809, 0.2885, -0.9575, -0.0, 0.34091, 0.039365, + 0.1015905, -0.483975, -0.073809, 0.2885, -0.9575, -0.0, 0.386364, 0.039365, + 0.1015905, -0.483975, 0.073809, 0.1558, -0.9878, -0.0, 0.34091, 0.039365, + 0.0, -0.5, 0.0, 0.1558, -0.9878, -0.0, 0.363637, 0.0, + 0.1015905, -0.483975, -0.073809, 0.1558, -0.9878, -0.0, 0.386364, 0.039365, + -0.116411, -0.3287595, 0.3582815, -0.1685, -0.5545, 0.8149, 0.113637, 0.118096, + -0.0148195, -0.251151, 0.432092, -0.1685, -0.5545, 0.8149, 0.136364, 0.157461, + -0.138194, -0.22361, 0.4253245, -0.1685, -0.5545, 0.8149, 0.09091, 0.157461, + -0.081228, -0.425327, 0.2499975, -0.1121, -0.7594, 0.6409, 0.136365, 0.078731, + 0.026395, -0.361806, 0.3440925, -0.1121, -0.7594, 0.6409, 0.159092, 0.118096, + -0.116411, -0.3287595, 0.3582815, -0.1121, -0.7594, 0.6409, 0.113637, 0.118096, + -0.0388035, -0.483975, 0.1194265, -0.0339, -0.9158, 0.4003, 0.159092, 0.039365, + 0.0690995, -0.4472145, 0.2126605, -0.0339, -0.9158, 0.4003, 0.181819, 0.078731, + -0.081228, -0.425327, 0.2499975, -0.0339, -0.9158, 0.4003, 0.136365, 0.078731, + -0.116411, -0.3287595, 0.3582815, -0.0711, -0.6369, 0.7676, 0.113637, 0.118096, + 0.026395, -0.361806, 0.3440925, -0.0711, -0.6369, 0.7676, 0.159092, 0.118096, + -0.0148195, -0.251151, 0.432092, -0.0711, -0.6369, 0.7676, 0.136364, 0.157461, + 0.026395, -0.361806, 0.3440925, 0.1026, -0.5955, 0.7968, 0.159092, 0.118096, + 0.1314345, -0.262869, 0.404506, 0.1026, -0.5955, 0.7968, 0.181819, 0.157461, + -0.0148195, -0.251151, 0.432092, 0.1026, -0.5955, 0.7968, 0.136364, 0.157461, + -0.081228, -0.425327, 0.2499975, 0.0144, -0.8363, 0.5481, 0.136365, 0.078731, + 0.0690995, -0.4472145, 0.2126605, 0.0144, -0.8363, 0.5481, 0.181819, 0.078731, + 0.026395, -0.361806, 0.3440925, 0.0144, -0.8363, 0.5481, 0.159092, 0.118096, + 0.0690995, -0.4472145, 0.2126605, 0.1876, -0.7947, 0.5773, 0.181819, 0.078731, + 0.1809025, -0.3618055, 0.2938895, 0.1876, -0.7947, 0.5773, 0.204546, 0.118096, + 0.026395, -0.361806, 0.3440925, 0.1876, -0.7947, 0.5773, 0.159092, 0.118096, + 0.026395, -0.361806, 0.3440925, 0.2287, -0.6726, 0.7038, 0.159092, 0.118096, + 0.1809025, -0.3618055, 0.2938895, 0.2287, -0.6726, 0.7038, 0.204546, 0.118096, + 0.1314345, -0.262869, 0.404506, 0.2287, -0.6726, 0.7038, 0.181819, 0.157461, + 0.1809025, -0.3618055, 0.2938895, 0.3854, -0.5955, 0.7049, 0.204546, 0.118096, + 0.2659705, -0.251151, 0.340856, 0.3854, -0.5955, 0.7049, 0.227274, 0.157461, + 0.1314345, -0.262869, 0.404506, 0.3854, -0.5955, 0.7049, 0.181819, 0.157461, + -0.0388035, -0.483975, 0.1194265, 0.0891, -0.9575, 0.2743, 0.159092, 0.039365, + 0.1015905, -0.483975, 0.073809, 0.0891, -0.9575, 0.2743, 0.204546, 0.039365, + 0.0690995, -0.4472145, 0.2126605, 0.0891, -0.9575, 0.2743, 0.181819, 0.078731, + 0.1015905, -0.483975, 0.073809, 0.2627, -0.9158, 0.3039, 0.204546, 0.039365, + 0.2126615, -0.425327, 0.1545055, 0.2627, -0.9158, 0.3039, 0.227273, 0.078731, + 0.0690995, -0.4472145, 0.2126605, 0.2627, -0.9158, 0.3039, 0.181819, 0.078731, + 0.0690995, -0.4472145, 0.2126605, 0.3105, -0.8363, 0.4519, 0.181819, 0.078731, + 0.2126615, -0.425327, 0.1545055, 0.3105, -0.8363, 0.4519, 0.227273, 0.078731, + 0.1809025, -0.3618055, 0.2938895, 0.3105, -0.8363, 0.4519, 0.204546, 0.118096, + 0.2126615, -0.425327, 0.1545055, 0.4674, -0.7594, 0.4526, 0.227273, 0.078731, + 0.3047735, -0.3287595, 0.221428, 0.4674, -0.7594, 0.4526, 0.250001, 0.118096, + 0.1809025, -0.3618055, 0.2938895, 0.4674, -0.7594, 0.4526, 0.204546, 0.118096, + 0.1809025, -0.3618055, 0.2938895, 0.5087, -0.6369, 0.5792, 0.204546, 0.118096, + 0.3047735, -0.3287595, 0.221428, 0.5087, -0.6369, 0.5792, 0.250001, 0.118096, + 0.2659705, -0.251151, 0.340856, 0.5087, -0.6369, 0.5792, 0.227274, 0.157461, + 0.3047735, -0.3287595, 0.221428, 0.6153, -0.5545, 0.5603, 0.250001, 0.118096, + 0.3618035, -0.22361, 0.2628625, 0.6153, -0.5545, 0.5603, 0.272728, 0.157461, + 0.2659705, -0.251151, 0.340856, 0.6153, -0.5545, 0.5603, 0.227274, 0.157461, + +}; + Mesh* CUBE_MESH; +Mesh* SPHERE_MESH; void initMeshes() { - static float vertices[] = { - // positions // normals // texture coords - -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, - 0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f, - 0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, - 0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, - -0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, - -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, - -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, - 0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, - 0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, - 0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, - -0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, - -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, - -0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - -0.5f, 0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f, - -0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - -0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - -0.5f, -0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, - -0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - 0.5f, 0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, - 0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - 0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - 0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, - 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - -0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, - 0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f, - 0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, - 0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, - -0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, - -0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, - -0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, - 0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, - 0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, - 0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, - -0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, - -0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, - }; + CUBE_MESH = new Mesh(sizeof(CUBE_VERTICES) / sizeof(float) / 8, CUBE_VERTICES); + SPHERE_MESH = new Mesh(sizeof(SPHERE_VERTICES) / sizeof(float) / 8, SPHERE_VERTICES); +} - CUBE_MESH = new Mesh(36, vertices); -} \ No newline at end of file +/* Python generator: + + +# https://blenderartists.org/t/get-selected-uv-vertices-coordinates/697274 + +import bpy +from bpy import context + +HEADER = """ +static float CUBE_VERTICES[] = { + // positions // normals // texture coords +""" + +FOOTER = """ +};""" + +obj = context.active_object +mesh = obj.data +uv_layer = mesh.uv_layers.active.data + +print(HEADER) + +for idx, vert in enumerate(obj.data.vertices): + #print(obj.data.uv_layers.active.data[idx].uv) + coords = vert.co + normal = vert.normal + uv = uv_layer[idx].uv + print("{}f, {}f, {}f, {}f, {}f, {}f, {}f, {}f,".format(*coords, *normal, *uv)) + +print(FOOTER) + +*/ \ No newline at end of file diff --git a/core/src/rendering/defaultmeshes.h b/core/src/rendering/defaultmeshes.h index afce7e3..41c522b 100644 --- a/core/src/rendering/defaultmeshes.h +++ b/core/src/rendering/defaultmeshes.h @@ -2,5 +2,6 @@ #include "mesh.h" extern Mesh* CUBE_MESH; +extern Mesh* SPHERE_MESH; void initMeshes(); \ No newline at end of file diff --git a/core/src/rendering/mesh.cpp b/core/src/rendering/mesh.cpp index 6d8a1b6..9236eb1 100644 --- a/core/src/rendering/mesh.cpp +++ b/core/src/rendering/mesh.cpp @@ -3,7 +3,7 @@ #include "mesh.h" -Mesh::Mesh(int vertexCount, float *vertices) { +Mesh::Mesh(int vertexCount, float *vertices) : vertexCount(vertexCount) { // Generate buffers glGenBuffers(1, &VBO); glGenVertexArrays(1, &VAO); diff --git a/core/src/rendering/mesh.h b/core/src/rendering/mesh.h index 0b8d087..2b23051 100644 --- a/core/src/rendering/mesh.h +++ b/core/src/rendering/mesh.h @@ -4,6 +4,8 @@ class Mesh { unsigned int VBO, VAO; public: + int vertexCount; + Mesh(int vertexCount, float* vertices); ~Mesh(); void bind(); diff --git a/core/src/rendering/renderer.cpp b/core/src/rendering/renderer.cpp index 2972858..3c1a425 100644 --- a/core/src/rendering/renderer.cpp +++ b/core/src/rendering/renderer.cpp @@ -27,7 +27,8 @@ Shader* shader = NULL; Shader* skyboxShader = NULL; -Shader* handleShader; +Shader* handleShader = NULL; +Shader* identityShader = NULL; extern Camera camera; Skybox* skyboxTexture = NULL; Texture3D* studsTexture = NULL; @@ -61,6 +62,7 @@ void renderInit(GLFWwindow* window, int width, int height) { shader = new Shader("assets/shaders/phong.vs", "assets/shaders/phong.fs"); skyboxShader = new Shader("assets/shaders/skybox.vs", "assets/shaders/skybox.fs"); handleShader = new Shader("assets/shaders/handle.vs", "assets/shaders/handle.fs"); + identityShader = new Shader("assets/shaders/identity.vs", "assets/shaders/identity.fs"); } void renderParts() { @@ -72,7 +74,7 @@ void renderParts() { // shader->set("lightColor", glm::vec3(1.0f, 1.0f, 1.0f)); // view/projection transformations - glm::mat4 projection = glm::perspective(glm::radians(45.f), (float)viewportWidth / (float)viewportHeight, 0.1f, 100.0f); + glm::mat4 projection = glm::perspective(glm::radians(45.f), (float)viewportWidth / (float)viewportHeight, 0.1f, 1000.0f); glm::mat4 view = camera.getLookAt(); shader->set("projection", projection); shader->set("view", view); @@ -136,7 +138,7 @@ void renderSkyBox() { skyboxShader->use(); - glm::mat4 projection = glm::perspective(glm::radians(45.f), (float)viewportWidth / (float)viewportHeight, 0.1f, 100.0f); + glm::mat4 projection = glm::perspective(glm::radians(45.f), (float)viewportWidth / (float)viewportHeight, 0.1f, 1000.0f); // Remove translation component of view, making us always at (0, 0, 0) glm::mat4 view = glm::mat4(glm::mat3(camera.getLookAt())); @@ -150,8 +152,6 @@ void renderSkyBox() { } void renderHandles() { - // if (getSelection().size() == 0) return; - // if (getSelection()[0].lock()->GetClass() != &Part::TYPE) return; if (!editorToolHandles->adornee.has_value() || !editorToolHandles->active) return; glDepthMask(GL_TRUE); @@ -160,7 +160,7 @@ void renderHandles() { handleShader->use(); // view/projection transformations - glm::mat4 projection = glm::perspective(glm::radians(45.f), (float)viewportWidth / (float)viewportHeight, 0.1f, 100.0f); + glm::mat4 projection = glm::perspective(glm::radians(45.f), (float)viewportWidth / (float)viewportHeight, 0.1f, 1000.0f); glm::mat4 view = camera.getLookAt(); handleShader->set("projection", projection); handleShader->set("view", view); @@ -187,8 +187,29 @@ void renderHandles() { glm::mat3 normalMatrix = glm::mat3(glm::transpose(glm::inverse(model))); handleShader->set("normalMatrix", normalMatrix); - CUBE_MESH->bind(); - glDrawArrays(GL_TRIANGLES, 0, 36); + SPHERE_MESH->bind(); + glDrawArrays(GL_TRIANGLES, 0, SPHERE_MESH->vertexCount); + } + + // 2d square overlay + identityShader->use(); + identityShader->set("aColor", glm::vec3(0.f, 1.f, 1.f)); + + for (auto face : HandleFace::Faces) { + Data::CFrame cframe = editorToolHandles->GetCFrameOfHandle(face); + glm::vec4 screenPos = projection * view * glm::vec4((glm::vec3)cframe.Position(), 1.0f); + glm::vec3 ndcCoords = screenPos / screenPos.w; + + float rad = 5; + float xRad = rad * 1/viewportWidth; + float yRad = rad * 1/viewportHeight; + + glBegin(GL_QUADS); + glVertex3f(ndcCoords.x - xRad, ndcCoords.y - yRad, 0); + glVertex3f(ndcCoords.x + xRad, ndcCoords.y - yRad, 0); + glVertex3f(ndcCoords.x + xRad, ndcCoords.y + yRad, 0); + glVertex3f(ndcCoords.x - xRad, ndcCoords.y + yRad, 0); + glEnd(); } } diff --git a/editor/mainglwidget.cpp b/editor/mainglwidget.cpp index 336638b..40928bd 100644 --- a/editor/mainglwidget.cpp +++ b/editor/mainglwidget.cpp @@ -39,13 +39,9 @@ MainGLWidget::MainGLWidget(QWidget* parent): QOpenGLWidget(parent) { setMouseTracking(true); } -Shader* identityShader; - void MainGLWidget::initializeGL() { glewInit(); renderInit(NULL, width(), height()); - - identityShader = new Shader("assets/shaders/identity.vs", "assets/shaders/identity.fs"); } extern int vpx, vpy; @@ -67,43 +63,6 @@ extern std::optional draggingHandle; extern Shader* shader; void MainGLWidget::paintGL() { ::render(NULL); - - if (!editorToolHandles->adornee) return; - - for (HandleFace face : HandleFace::Faces) { - // Ignore negatives (for now) - if (face.normal != glm::abs(face.normal)) continue; - - glm::vec3 axisNormal = face.normal; - // // glm::vec3 planeNormal = camera.cameraFront; - glm::vec3 planeRight = glm::cross(axisNormal, glm::normalize(camera.cameraFront)); - glm::vec3 planeNormal = glm::cross(glm::normalize(planeRight), axisNormal); - - auto a = axisNormal; - auto b = planeRight; - auto c = planeNormal; - - glm::mat3 matrix = { - axisNormal, - planeRight, - -planeNormal, - }; - - glm::mat4 model = glm::translate(glm::mat4(1.0f), (glm::vec3)editorToolHandles->adornee->lock()->position()) * glm::mat4(matrix); - model = glm::scale(model, glm::vec3(5, 5, 0.2)); - - shader->set("model", model); - shader->set("material", Material { - .diffuse = glm::vec3(0.5, 1.f, 0.5), - .specular = glm::vec3(0.5f, 0.5f, 0.5f), - .shininess = 16.0f, - }); - glm::mat3 normalMatrix = glm::mat3(glm::transpose(glm::inverse(model))); - shader->set("normalMatrix", normalMatrix); - - CUBE_MESH->bind(); - // glDrawArrays(GL_TRIANGLES, 0, 36); - } } bool isMouseRightDragging = false; diff --git a/tools/genmesh.py b/tools/genmesh.py new file mode 100755 index 0000000..c8382e8 --- /dev/null +++ b/tools/genmesh.py @@ -0,0 +1,64 @@ +#!/usr/bin/python3 + +# Default mesh generator +# Input from wavefront obj file + +# Usage: ./genmesh.py mesh.obj > mesh.cpp + +import sys + +HEADER = """ +static float CUBE_VERTICES[] = { + // positions // normals // texture coords +""" + +FOOTER = """ +};""" + +file = open(sys.argv[1], "r") + +vert_coords = [] +vert_norms = [] +vert_uvs = [] + +out_vertices = [] + +# greatest_coord = 0 +# least_coord = 0 + +def normalize(x, y, z): + return (x/2, y/2, z/2) + +for line in file: + if line.startswith('v '): + coords = line.split(' ')[1:] + vert_coords.append((float(coords[0]), float(coords[1]), float(coords[2]))) + + if line.startswith('vn '): + coords = line.split(' ')[1:] + vert_norms.append((float(coords[0]), float(coords[1]), float(coords[2]))) + + if line.startswith('vt '): + coords = line.split(' ')[1:] + vert_uvs.append((float(coords[0]), float(coords[1]))) + + if line.startswith('f '): + verts = line.split(' ')[1:] + for vert in verts: + coords, uv, normal = vert.split('/') + coords, uv, normal = int(coords), int(uv), int(normal) + coords, uv, normal = vert_coords[coords-1], vert_uvs[uv-1], vert_norms[normal-1] + + coords = normalize(*coords) + # for coord in [*normal]: + # if coord > greatest_coord: greatest_coord = coord + # if coord < least_coord: least_coord = coord + + out_vertices.append((coords, normal, uv)) + +print(HEADER) + +for coords, normal, uv in out_vertices: + print(f"\t{coords[0]}, {coords[1]}, {coords[2]},\t{normal[0]}, {normal[1]}, {normal[2]},\t{uv[0]}, {uv[1]},") + +print(FOOTER) \ No newline at end of file