PAMI_Super_Star_2025/CodeCell/OLED_Screen/3D_Object.hpp

43 lines
810 B
C++

#include <vector>
#include <array>
#include "Vector3D.hpp"
using std::vector, std::array, std::initializer_list;
namespace _3D
{
enum class Axes {
X,
Y,
Z
};
struct Triangle {
Triangle(initializer_list<initializer_list<float>> pointsInit)
{
auto it = pointsInit.begin();
points[0] = Vector3D<float>(*it++);
points[1] = Vector3D<float>(*it++);
points[2] = Vector3D<float>(*it);
}
array<Vector3D<float>, 3> points;
bool infill {false};
bool outline {true};
};
struct Object {
Object(initializer_list<initializer_list<initializer_list<float>>> trianglesInit)
{
for(const auto &triangleInit : trianglesInit)
{
triangles.push_back(Triangle(triangleInit));
}
}
vector<Triangle> triangles;
};
}