diff --git a/include/omath/3d_primitives/plane.hpp b/include/omath/3d_primitives/plane.hpp index 26f5871..1539398 100644 --- a/include/omath/3d_primitives/plane.hpp +++ b/include/omath/3d_primitives/plane.hpp @@ -3,14 +3,24 @@ // #pragma once +#include "mesh.hpp" +#include "omath/engines/opengl_engine/camera.hpp" +#include "omath/engines/opengl_engine/mesh.hpp" +#include "omath/engines/opengl_engine/traits/mesh_trait.hpp" #include "omath/linear_algebra/triangle.hpp" #include "omath/linear_algebra/vector3.hpp" #include namespace omath::primitives { + using PlaneMesh = Mesh, + std::array, 8>, std::array, 12>>; [[nodiscard]] - std::array>, 2> create_plane(const Vector3& vertex_a, - const Vector3& vertex_b, - const Vector3& direction, float size) noexcept; -} + std::array>, 2> create_plane(const Vector3& vertex_a, const Vector3& vertex_b, + const Vector3& direction, float size) noexcept + { + const auto second_vertex_a = vertex_a + direction * size; + return std::array{Triangle{second_vertex_a, vertex_a, vertex_b}, + Triangle{second_vertex_a, vertex_b + direction * size, vertex_b}}; + } +} // namespace omath::primitives