diff --git a/generator/include/shapes/torus.hpp b/generator/include/shapes/torus.hpp new file mode 100644 index 0000000..f3b6dc5 --- /dev/null +++ b/generator/include/shapes/torus.hpp @@ -0,0 +1,12 @@ +#ifndef SOLAR_SYSTEM_TORUS_HPP +#define SOLAR_SYSTEM_TORUS_HPP + +#include +#include + +#include "../utils.hpp" + +bool generateTorus(float majorRadius, float minorRadius, int sides, int rings, + const char* filepath); + +#endif // SOLAR_SYSTEM_TORUS_HPP \ No newline at end of file diff --git a/generator/src/main.cpp b/generator/src/main.cpp index e3eea97..5ac5386 100644 --- a/generator/src/main.cpp +++ b/generator/src/main.cpp @@ -5,6 +5,7 @@ #include "../include/shapes/cube.hpp" #include "../include/shapes/plane.hpp" #include "../include/shapes/sphere.hpp" +#include "../include/shapes/torus.hpp" void generateFigure(int argc, char* argv[]) { if (argc < 5) { @@ -48,6 +49,15 @@ void generateFigure(int argc, char* argv[]) { generateCone(radius, height, slices, stacks, figureType); + } else if (figureName == "torus" && argc == 7) { + // Generate Torus + std::cout << "Generating Torus\n"; + float innerRadius = std::stof(argv[2]); + float outerRadius = std::stof(argv[3]); + int slices = std::stoi(argv[4]); + int stacks = std::stoi(argv[5]); + + generateTorus(innerRadius, outerRadius, slices, stacks, figureType); } else { std::cerr << "Invalid arguments\n"; } diff --git a/generator/src/shapes/torus.cpp b/generator/src/shapes/torus.cpp new file mode 100644 index 0000000..22105c9 --- /dev/null +++ b/generator/src/shapes/torus.cpp @@ -0,0 +1,76 @@ +#include +#include +#include +#include + +#include "utils.hpp" + +std::vector torusTriangles(float majorRadius, float minorRadius, + int sides, int rings) { + std::vector points; + + for (int i = 0; i < rings; ++i) { + float theta1 = static_cast(i) * 2.0f * static_cast(M_PI) / + static_cast(rings); + float theta2 = static_cast(i + 1) * 2.0f * static_cast(M_PI) / + static_cast(rings); + + for (int j = 0; j < sides; ++j) { + float phi1 = static_cast(j) * 2.0f * static_cast(M_PI) / + static_cast(sides); + float phi2 = static_cast(j + 1) * 2.0f * static_cast(M_PI) / + static_cast(sides); + + // Vertices + float x1 = + (majorRadius + minorRadius * std::cos(phi1)) * std::cos(theta1); + float y1 = minorRadius * std::sin(phi1); + float z1 = + (majorRadius + minorRadius * std::cos(phi1)) * std::sin(theta1); + + float x2 = + (majorRadius + minorRadius * std::cos(phi2)) * std::cos(theta1); + float y2 = minorRadius * std::sin(phi2); + float z2 = + (majorRadius + minorRadius * std::cos(phi2)) * std::sin(theta1); + + float x3 = + (majorRadius + minorRadius * std::cos(phi1)) * std::cos(theta2); + float y3 = minorRadius * std::sin(phi1); + float z3 = + (majorRadius + minorRadius * std::cos(phi1)) * std::sin(theta2); + + float x4 = + (majorRadius + minorRadius * std::cos(phi2)) * std::cos(theta2); + float y4 = minorRadius * std::sin(phi2); + float z4 = + (majorRadius + minorRadius * std::cos(phi2)) * std::sin(theta2); + + // Push vertices in counter-clockwise order + points.push_back(Point(x1, y1, z1)); + points.push_back(Point(x2, y2, z2)); + points.push_back(Point(x4, y4, z4)); + + points.push_back(Point(x1, y1, z1)); + points.push_back(Point(x4, y4, z4)); + points.push_back(Point(x3, y3, z3)); + } + } + + return points; +} + +bool generateTorus(float majorRadius, float minorRadius, int sides, int rings, + const char* filepath) { + std::vector triangles = + torusTriangles(majorRadius, minorRadius, sides, rings); + + if (triangles.empty()) { + std::cerr << "Error: Empty vector of triangles.\n"; + return false; + } + + saveToFile(triangles, filepath); + + return true; +} \ No newline at end of file diff --git a/models/torus.3d b/models/torus.3d new file mode 100644 index 0000000..1a30136 --- /dev/null +++ b/models/torus.3d @@ -0,0 +1,600 @@ +1.5 0 0 +1.40451 0.293893 0 +1.13627 0.293893 0.825549 +1.5 0 0 +1.13627 0.293893 0.825549 +1.21353 0 0.881678 +1.40451 0.293893 0 +1.15451 0.475528 0 +0.934017 0.475528 0.678603 +1.40451 0.293893 0 +0.934017 0.475528 0.678603 +1.13627 0.293893 0.825549 +1.15451 0.475528 0 +0.845491 0.475528 0 +0.684017 0.475528 0.496967 +1.15451 0.475528 0 +0.684017 0.475528 0.496967 +0.934017 0.475528 0.678603 +0.845491 0.475528 0 +0.595491 0.293893 0 +0.481763 0.293893 0.350021 +0.845491 0.475528 0 +0.481763 0.293893 0.350021 +0.684017 0.475528 0.496967 +0.595491 0.293893 0 +0.5 -4.37114e-08 0 +0.404509 -4.37114e-08 0.293893 +0.595491 0.293893 0 +0.404509 -4.37114e-08 0.293893 +0.481763 0.293893 0.350021 +0.5 -4.37114e-08 0 +0.595492 -0.293893 0 +0.481763 -0.293893 0.350021 +0.5 -4.37114e-08 0 +0.481763 -0.293893 0.350021 +0.404509 -4.37114e-08 0.293893 +0.595492 -0.293893 0 +0.845492 -0.475528 0 +0.684017 -0.475528 0.496968 +0.595492 -0.293893 0 +0.684017 -0.475528 0.496968 +0.481763 -0.293893 0.350021 +0.845492 -0.475528 0 +1.15451 -0.475528 0 +0.934017 -0.475528 0.678603 +0.845492 -0.475528 0 +0.934017 -0.475528 0.678603 +0.684017 -0.475528 0.496968 +1.15451 -0.475528 0 +1.40451 -0.293893 0 +1.13627 -0.293893 0.825549 +1.15451 -0.475528 0 +1.13627 -0.293893 0.825549 +0.934017 -0.475528 0.678603 +1.40451 -0.293893 0 +1.5 8.74228e-08 0 +1.21353 8.74228e-08 0.881678 +1.40451 -0.293893 0 +1.21353 8.74228e-08 0.881678 +1.13627 -0.293893 0.825549 +1.21353 0 0.881678 +1.13627 0.293893 0.825549 +0.434017 0.293893 1.33577 +1.21353 0 0.881678 +0.434017 0.293893 1.33577 +0.463525 0 1.42658 +1.13627 0.293893 0.825549 +0.934017 0.475528 0.678603 +0.356763 0.475528 1.098 +1.13627 0.293893 0.825549 +0.356763 0.475528 1.098 +0.434017 0.293893 1.33577 +0.934017 0.475528 0.678603 +0.684017 0.475528 0.496967 +0.261271 0.475528 0.80411 +0.934017 0.475528 0.678603 +0.261271 0.475528 0.80411 +0.356763 0.475528 1.098 +0.684017 0.475528 0.496967 +0.481763 0.293893 0.350021 +0.184017 0.293893 0.566346 +0.684017 0.475528 0.496967 +0.184017 0.293893 0.566346 +0.261271 0.475528 0.80411 +0.481763 0.293893 0.350021 +0.404509 -4.37114e-08 0.293893 +0.154508 -4.37114e-08 0.475528 +0.481763 0.293893 0.350021 +0.154508 -4.37114e-08 0.475528 +0.184017 0.293893 0.566346 +0.404509 -4.37114e-08 0.293893 +0.481763 -0.293893 0.350021 +0.184017 -0.293893 0.566346 +0.404509 -4.37114e-08 0.293893 +0.184017 -0.293893 0.566346 +0.154508 -4.37114e-08 0.475528 +0.481763 -0.293893 0.350021 +0.684017 -0.475528 0.496968 +0.261271 -0.475528 0.80411 +0.481763 -0.293893 0.350021 +0.261271 -0.475528 0.80411 +0.184017 -0.293893 0.566346 +0.684017 -0.475528 0.496968 +0.934017 -0.475528 0.678603 +0.356763 -0.475528 1.098 +0.684017 -0.475528 0.496968 +0.356763 -0.475528 1.098 +0.261271 -0.475528 0.80411 +0.934017 -0.475528 0.678603 +1.13627 -0.293893 0.825549 +0.434017 -0.293893 1.33577 +0.934017 -0.475528 0.678603 +0.434017 -0.293893 1.33577 +0.356763 -0.475528 1.098 +1.13627 -0.293893 0.825549 +1.21353 8.74228e-08 0.881678 +0.463525 8.74228e-08 1.42658 +1.13627 -0.293893 0.825549 +0.463525 8.74228e-08 1.42658 +0.434017 -0.293893 1.33577 +0.463525 0 1.42658 +0.434017 0.293893 1.33577 +-0.434017 0.293893 1.33577 +0.463525 0 1.42658 +-0.434017 0.293893 1.33577 +-0.463526 0 1.42658 +0.434017 0.293893 1.33577 +0.356763 0.475528 1.098 +-0.356763 0.475528 1.098 +0.434017 0.293893 1.33577 +-0.356763 0.475528 1.098 +-0.434017 0.293893 1.33577 +0.356763 0.475528 1.098 +0.261271 0.475528 0.80411 +-0.261271 0.475528 0.80411 +0.356763 0.475528 1.098 +-0.261271 0.475528 0.80411 +-0.356763 0.475528 1.098 +0.261271 0.475528 0.80411 +0.184017 0.293893 0.566346 +-0.184017 0.293893 0.566346 +0.261271 0.475528 0.80411 +-0.184017 0.293893 0.566346 +-0.261271 0.475528 0.80411 +0.184017 0.293893 0.566346 +0.154508 -4.37114e-08 0.475528 +-0.154509 -4.37114e-08 0.475528 +0.184017 0.293893 0.566346 +-0.154509 -4.37114e-08 0.475528 +-0.184017 0.293893 0.566346 +0.154508 -4.37114e-08 0.475528 +0.184017 -0.293893 0.566346 +-0.184017 -0.293893 0.566346 +0.154508 -4.37114e-08 0.475528 +-0.184017 -0.293893 0.566346 +-0.154509 -4.37114e-08 0.475528 +0.184017 -0.293893 0.566346 +0.261271 -0.475528 0.80411 +-0.261271 -0.475528 0.80411 +0.184017 -0.293893 0.566346 +-0.261271 -0.475528 0.80411 +-0.184017 -0.293893 0.566346 +0.261271 -0.475528 0.80411 +0.356763 -0.475528 1.098 +-0.356763 -0.475528 1.098 +0.261271 -0.475528 0.80411 +-0.356763 -0.475528 1.098 +-0.261271 -0.475528 0.80411 +0.356763 -0.475528 1.098 +0.434017 -0.293893 1.33577 +-0.434017 -0.293893 1.33577 +0.356763 -0.475528 1.098 +-0.434017 -0.293893 1.33577 +-0.356763 -0.475528 1.098 +0.434017 -0.293893 1.33577 +0.463525 8.74228e-08 1.42658 +-0.463526 8.74228e-08 1.42658 +0.434017 -0.293893 1.33577 +-0.463526 8.74228e-08 1.42658 +-0.434017 -0.293893 1.33577 +-0.463526 0 1.42658 +-0.434017 0.293893 1.33577 +-1.13627 0.293893 0.825549 +-0.463526 0 1.42658 +-1.13627 0.293893 0.825549 +-1.21353 0 0.881678 +-0.434017 0.293893 1.33577 +-0.356763 0.475528 1.098 +-0.934017 0.475528 0.678603 +-0.434017 0.293893 1.33577 +-0.934017 0.475528 0.678603 +-1.13627 0.293893 0.825549 +-0.356763 0.475528 1.098 +-0.261271 0.475528 0.80411 +-0.684017 0.475528 0.496967 +-0.356763 0.475528 1.098 +-0.684017 0.475528 0.496967 +-0.934017 0.475528 0.678603 +-0.261271 0.475528 0.80411 +-0.184017 0.293893 0.566346 +-0.481763 0.293893 0.350021 +-0.261271 0.475528 0.80411 +-0.481763 0.293893 0.350021 +-0.684017 0.475528 0.496967 +-0.184017 0.293893 0.566346 +-0.154509 -4.37114e-08 0.475528 +-0.404509 -4.37114e-08 0.293893 +-0.184017 0.293893 0.566346 +-0.404509 -4.37114e-08 0.293893 +-0.481763 0.293893 0.350021 +-0.154509 -4.37114e-08 0.475528 +-0.184017 -0.293893 0.566346 +-0.481763 -0.293893 0.350021 +-0.154509 -4.37114e-08 0.475528 +-0.481763 -0.293893 0.350021 +-0.404509 -4.37114e-08 0.293893 +-0.184017 -0.293893 0.566346 +-0.261271 -0.475528 0.80411 +-0.684017 -0.475528 0.496967 +-0.184017 -0.293893 0.566346 +-0.684017 -0.475528 0.496967 +-0.481763 -0.293893 0.350021 +-0.261271 -0.475528 0.80411 +-0.356763 -0.475528 1.098 +-0.934017 -0.475528 0.678603 +-0.261271 -0.475528 0.80411 +-0.934017 -0.475528 0.678603 +-0.684017 -0.475528 0.496967 +-0.356763 -0.475528 1.098 +-0.434017 -0.293893 1.33577 +-1.13627 -0.293893 0.825549 +-0.356763 -0.475528 1.098 +-1.13627 -0.293893 0.825549 +-0.934017 -0.475528 0.678603 +-0.434017 -0.293893 1.33577 +-0.463526 8.74228e-08 1.42658 +-1.21353 8.74228e-08 0.881678 +-0.434017 -0.293893 1.33577 +-1.21353 8.74228e-08 0.881678 +-1.13627 -0.293893 0.825549 +-1.21353 0 0.881678 +-1.13627 0.293893 0.825549 +-1.40451 0.293893 -1.22786e-07 +-1.21353 0 0.881678 +-1.40451 0.293893 -1.22786e-07 +-1.5 0 -1.31134e-07 +-1.13627 0.293893 0.825549 +-0.934017 0.475528 0.678603 +-1.15451 0.475528 -1.0093e-07 +-1.13627 0.293893 0.825549 +-1.15451 0.475528 -1.0093e-07 +-1.40451 0.293893 -1.22786e-07 +-0.934017 0.475528 0.678603 +-0.684017 0.475528 0.496967 +-0.845491 0.475528 -7.39152e-08 +-0.934017 0.475528 0.678603 +-0.845491 0.475528 -7.39152e-08 +-1.15451 0.475528 -1.0093e-07 +-0.684017 0.475528 0.496967 +-0.481763 0.293893 0.350021 +-0.595491 0.293893 -5.20595e-08 +-0.684017 0.475528 0.496967 +-0.595491 0.293893 -5.20595e-08 +-0.845491 0.475528 -7.39152e-08 +-0.481763 0.293893 0.350021 +-0.404509 -4.37114e-08 0.293893 +-0.5 -4.37114e-08 -4.37114e-08 +-0.481763 0.293893 0.350021 +-0.5 -4.37114e-08 -4.37114e-08 +-0.595491 0.293893 -5.20595e-08 +-0.404509 -4.37114e-08 0.293893 +-0.481763 -0.293893 0.350021 +-0.595492 -0.293893 -5.20595e-08 +-0.404509 -4.37114e-08 0.293893 +-0.595492 -0.293893 -5.20595e-08 +-0.5 -4.37114e-08 -4.37114e-08 +-0.481763 -0.293893 0.350021 +-0.684017 -0.475528 0.496967 +-0.845492 -0.475528 -7.39152e-08 +-0.481763 -0.293893 0.350021 +-0.845492 -0.475528 -7.39152e-08 +-0.595492 -0.293893 -5.20595e-08 +-0.684017 -0.475528 0.496967 +-0.934017 -0.475528 0.678603 +-1.15451 -0.475528 -1.0093e-07 +-0.684017 -0.475528 0.496967 +-1.15451 -0.475528 -1.0093e-07 +-0.845492 -0.475528 -7.39152e-08 +-0.934017 -0.475528 0.678603 +-1.13627 -0.293893 0.825549 +-1.40451 -0.293893 -1.22786e-07 +-0.934017 -0.475528 0.678603 +-1.40451 -0.293893 -1.22786e-07 +-1.15451 -0.475528 -1.0093e-07 +-1.13627 -0.293893 0.825549 +-1.21353 8.74228e-08 0.881678 +-1.5 8.74228e-08 -1.31134e-07 +-1.13627 -0.293893 0.825549 +-1.5 8.74228e-08 -1.31134e-07 +-1.40451 -0.293893 -1.22786e-07 +-1.5 0 -1.31134e-07 +-1.40451 0.293893 -1.22786e-07 +-1.13627 0.293893 -0.82555 +-1.5 0 -1.31134e-07 +-1.13627 0.293893 -0.82555 +-1.21353 0 -0.881678 +-1.40451 0.293893 -1.22786e-07 +-1.15451 0.475528 -1.0093e-07 +-0.934017 0.475528 -0.678603 +-1.40451 0.293893 -1.22786e-07 +-0.934017 0.475528 -0.678603 +-1.13627 0.293893 -0.82555 +-1.15451 0.475528 -1.0093e-07 +-0.845491 0.475528 -7.39152e-08 +-0.684017 0.475528 -0.496968 +-1.15451 0.475528 -1.0093e-07 +-0.684017 0.475528 -0.496968 +-0.934017 0.475528 -0.678603 +-0.845491 0.475528 -7.39152e-08 +-0.595491 0.293893 -5.20595e-08 +-0.481763 0.293893 -0.350021 +-0.845491 0.475528 -7.39152e-08 +-0.481763 0.293893 -0.350021 +-0.684017 0.475528 -0.496968 +-0.595491 0.293893 -5.20595e-08 +-0.5 -4.37114e-08 -4.37114e-08 +-0.404508 -4.37114e-08 -0.293893 +-0.595491 0.293893 -5.20595e-08 +-0.404508 -4.37114e-08 -0.293893 +-0.481763 0.293893 -0.350021 +-0.5 -4.37114e-08 -4.37114e-08 +-0.595492 -0.293893 -5.20595e-08 +-0.481763 -0.293893 -0.350021 +-0.5 -4.37114e-08 -4.37114e-08 +-0.481763 -0.293893 -0.350021 +-0.404508 -4.37114e-08 -0.293893 +-0.595492 -0.293893 -5.20595e-08 +-0.845492 -0.475528 -7.39152e-08 +-0.684017 -0.475528 -0.496968 +-0.595492 -0.293893 -5.20595e-08 +-0.684017 -0.475528 -0.496968 +-0.481763 -0.293893 -0.350021 +-0.845492 -0.475528 -7.39152e-08 +-1.15451 -0.475528 -1.0093e-07 +-0.934017 -0.475528 -0.678603 +-0.845492 -0.475528 -7.39152e-08 +-0.934017 -0.475528 -0.678603 +-0.684017 -0.475528 -0.496968 +-1.15451 -0.475528 -1.0093e-07 +-1.40451 -0.293893 -1.22786e-07 +-1.13627 -0.293893 -0.82555 +-1.15451 -0.475528 -1.0093e-07 +-1.13627 -0.293893 -0.82555 +-0.934017 -0.475528 -0.678603 +-1.40451 -0.293893 -1.22786e-07 +-1.5 8.74228e-08 -1.31134e-07 +-1.21353 8.74228e-08 -0.881678 +-1.40451 -0.293893 -1.22786e-07 +-1.21353 8.74228e-08 -0.881678 +-1.13627 -0.293893 -0.82555 +-1.21353 0 -0.881678 +-1.13627 0.293893 -0.82555 +-0.434016 0.293893 -1.33577 +-1.21353 0 -0.881678 +-0.434016 0.293893 -1.33577 +-0.463525 0 -1.42658 +-1.13627 0.293893 -0.82555 +-0.934017 0.475528 -0.678603 +-0.356762 0.475528 -1.098 +-1.13627 0.293893 -0.82555 +-0.356762 0.475528 -1.098 +-0.434016 0.293893 -1.33577 +-0.934017 0.475528 -0.678603 +-0.684017 0.475528 -0.496968 +-0.261271 0.475528 -0.80411 +-0.934017 0.475528 -0.678603 +-0.261271 0.475528 -0.80411 +-0.356762 0.475528 -1.098 +-0.684017 0.475528 -0.496968 +-0.481763 0.293893 -0.350021 +-0.184017 0.293893 -0.566346 +-0.684017 0.475528 -0.496968 +-0.184017 0.293893 -0.566346 +-0.261271 0.475528 -0.80411 +-0.481763 0.293893 -0.350021 +-0.404508 -4.37114e-08 -0.293893 +-0.154508 -4.37114e-08 -0.475528 +-0.481763 0.293893 -0.350021 +-0.154508 -4.37114e-08 -0.475528 +-0.184017 0.293893 -0.566346 +-0.404508 -4.37114e-08 -0.293893 +-0.481763 -0.293893 -0.350021 +-0.184017 -0.293893 -0.566346 +-0.404508 -4.37114e-08 -0.293893 +-0.184017 -0.293893 -0.566346 +-0.154508 -4.37114e-08 -0.475528 +-0.481763 -0.293893 -0.350021 +-0.684017 -0.475528 -0.496968 +-0.261271 -0.475528 -0.80411 +-0.481763 -0.293893 -0.350021 +-0.261271 -0.475528 -0.80411 +-0.184017 -0.293893 -0.566346 +-0.684017 -0.475528 -0.496968 +-0.934017 -0.475528 -0.678603 +-0.356762 -0.475528 -1.098 +-0.684017 -0.475528 -0.496968 +-0.356762 -0.475528 -1.098 +-0.261271 -0.475528 -0.80411 +-0.934017 -0.475528 -0.678603 +-1.13627 -0.293893 -0.82555 +-0.434016 -0.293893 -1.33577 +-0.934017 -0.475528 -0.678603 +-0.434016 -0.293893 -1.33577 +-0.356762 -0.475528 -1.098 +-1.13627 -0.293893 -0.82555 +-1.21353 8.74228e-08 -0.881678 +-0.463525 8.74228e-08 -1.42658 +-1.13627 -0.293893 -0.82555 +-0.463525 8.74228e-08 -1.42658 +-0.434016 -0.293893 -1.33577 +-0.463525 0 -1.42658 +-0.434016 0.293893 -1.33577 +0.434017 0.293893 -1.33577 +-0.463525 0 -1.42658 +0.434017 0.293893 -1.33577 +0.463526 0 -1.42658 +-0.434016 0.293893 -1.33577 +-0.356762 0.475528 -1.098 +0.356763 0.475528 -1.098 +-0.434016 0.293893 -1.33577 +0.356763 0.475528 -1.098 +0.434017 0.293893 -1.33577 +-0.356762 0.475528 -1.098 +-0.261271 0.475528 -0.80411 +0.261271 0.475528 -0.80411 +-0.356762 0.475528 -1.098 +0.261271 0.475528 -0.80411 +0.356763 0.475528 -1.098 +-0.261271 0.475528 -0.80411 +-0.184017 0.293893 -0.566346 +0.184017 0.293893 -0.566346 +-0.261271 0.475528 -0.80411 +0.184017 0.293893 -0.566346 +0.261271 0.475528 -0.80411 +-0.184017 0.293893 -0.566346 +-0.154508 -4.37114e-08 -0.475528 +0.154509 -4.37114e-08 -0.475528 +-0.184017 0.293893 -0.566346 +0.154509 -4.37114e-08 -0.475528 +0.184017 0.293893 -0.566346 +-0.154508 -4.37114e-08 -0.475528 +-0.184017 -0.293893 -0.566346 +0.184017 -0.293893 -0.566346 +-0.154508 -4.37114e-08 -0.475528 +0.184017 -0.293893 -0.566346 +0.154509 -4.37114e-08 -0.475528 +-0.184017 -0.293893 -0.566346 +-0.261271 -0.475528 -0.80411 +0.261271 -0.475528 -0.80411 +-0.184017 -0.293893 -0.566346 +0.261271 -0.475528 -0.80411 +0.184017 -0.293893 -0.566346 +-0.261271 -0.475528 -0.80411 +-0.356762 -0.475528 -1.098 +0.356763 -0.475528 -1.098 +-0.261271 -0.475528 -0.80411 +0.356763 -0.475528 -1.098 +0.261271 -0.475528 -0.80411 +-0.356762 -0.475528 -1.098 +-0.434016 -0.293893 -1.33577 +0.434017 -0.293893 -1.33577 +-0.356762 -0.475528 -1.098 +0.434017 -0.293893 -1.33577 +0.356763 -0.475528 -1.098 +-0.434016 -0.293893 -1.33577 +-0.463525 8.74228e-08 -1.42658 +0.463526 8.74228e-08 -1.42658 +-0.434016 -0.293893 -1.33577 +0.463526 8.74228e-08 -1.42658 +0.434017 -0.293893 -1.33577 +0.463526 0 -1.42658 +0.434017 0.293893 -1.33577 +1.13627 0.293893 -0.825549 +0.463526 0 -1.42658 +1.13627 0.293893 -0.825549 +1.21353 0 -0.881678 +0.434017 0.293893 -1.33577 +0.356763 0.475528 -1.098 +0.934017 0.475528 -0.678603 +0.434017 0.293893 -1.33577 +0.934017 0.475528 -0.678603 +1.13627 0.293893 -0.825549 +0.356763 0.475528 -1.098 +0.261271 0.475528 -0.80411 +0.684017 0.475528 -0.496967 +0.356763 0.475528 -1.098 +0.684017 0.475528 -0.496967 +0.934017 0.475528 -0.678603 +0.261271 0.475528 -0.80411 +0.184017 0.293893 -0.566346 +0.481763 0.293893 -0.350021 +0.261271 0.475528 -0.80411 +0.481763 0.293893 -0.350021 +0.684017 0.475528 -0.496967 +0.184017 0.293893 -0.566346 +0.154509 -4.37114e-08 -0.475528 +0.404508 -4.37114e-08 -0.293893 +0.184017 0.293893 -0.566346 +0.404508 -4.37114e-08 -0.293893 +0.481763 0.293893 -0.350021 +0.154509 -4.37114e-08 -0.475528 +0.184017 -0.293893 -0.566346 +0.481763 -0.293893 -0.350021 +0.154509 -4.37114e-08 -0.475528 +0.481763 -0.293893 -0.350021 +0.404508 -4.37114e-08 -0.293893 +0.184017 -0.293893 -0.566346 +0.261271 -0.475528 -0.80411 +0.684017 -0.475528 -0.496968 +0.184017 -0.293893 -0.566346 +0.684017 -0.475528 -0.496968 +0.481763 -0.293893 -0.350021 +0.261271 -0.475528 -0.80411 +0.356763 -0.475528 -1.098 +0.934017 -0.475528 -0.678603 +0.261271 -0.475528 -0.80411 +0.934017 -0.475528 -0.678603 +0.684017 -0.475528 -0.496968 +0.356763 -0.475528 -1.098 +0.434017 -0.293893 -1.33577 +1.13627 -0.293893 -0.825549 +0.356763 -0.475528 -1.098 +1.13627 -0.293893 -0.825549 +0.934017 -0.475528 -0.678603 +0.434017 -0.293893 -1.33577 +0.463526 8.74228e-08 -1.42658 +1.21353 8.74228e-08 -0.881678 +0.434017 -0.293893 -1.33577 +1.21353 8.74228e-08 -0.881678 +1.13627 -0.293893 -0.825549 +1.21353 0 -0.881678 +1.13627 0.293893 -0.825549 +1.40451 0.293893 2.45572e-07 +1.21353 0 -0.881678 +1.40451 0.293893 2.45572e-07 +1.5 0 2.62268e-07 +1.13627 0.293893 -0.825549 +0.934017 0.475528 -0.678603 +1.15451 0.475528 2.01861e-07 +1.13627 0.293893 -0.825549 +1.15451 0.475528 2.01861e-07 +1.40451 0.293893 2.45572e-07 +0.934017 0.475528 -0.678603 +0.684017 0.475528 -0.496967 +0.845491 0.475528 1.4783e-07 +0.934017 0.475528 -0.678603 +0.845491 0.475528 1.4783e-07 +1.15451 0.475528 2.01861e-07 +0.684017 0.475528 -0.496967 +0.481763 0.293893 -0.350021 +0.595491 0.293893 1.04119e-07 +0.684017 0.475528 -0.496967 +0.595491 0.293893 1.04119e-07 +0.845491 0.475528 1.4783e-07 +0.481763 0.293893 -0.350021 +0.404508 -4.37114e-08 -0.293893 +0.5 -4.37114e-08 8.74228e-08 +0.481763 0.293893 -0.350021 +0.5 -4.37114e-08 8.74228e-08 +0.595491 0.293893 1.04119e-07 +0.404508 -4.37114e-08 -0.293893 +0.481763 -0.293893 -0.350021 +0.595492 -0.293893 1.04119e-07 +0.404508 -4.37114e-08 -0.293893 +0.595492 -0.293893 1.04119e-07 +0.5 -4.37114e-08 8.74228e-08 +0.481763 -0.293893 -0.350021 +0.684017 -0.475528 -0.496968 +0.845492 -0.475528 1.4783e-07 +0.481763 -0.293893 -0.350021 +0.845492 -0.475528 1.4783e-07 +0.595492 -0.293893 1.04119e-07 +0.684017 -0.475528 -0.496968 +0.934017 -0.475528 -0.678603 +1.15451 -0.475528 2.01861e-07 +0.684017 -0.475528 -0.496968 +1.15451 -0.475528 2.01861e-07 +0.845492 -0.475528 1.4783e-07 +0.934017 -0.475528 -0.678603 +1.13627 -0.293893 -0.825549 +1.40451 -0.293893 2.45572e-07 +0.934017 -0.475528 -0.678603 +1.40451 -0.293893 2.45572e-07 +1.15451 -0.475528 2.01861e-07 +1.13627 -0.293893 -0.825549 +1.21353 8.74228e-08 -0.881678 +1.5 8.74228e-08 2.62268e-07 +1.13627 -0.293893 -0.825549 +1.5 8.74228e-08 2.62268e-07 +1.40451 -0.293893 2.45572e-07