diff options
Diffstat (limited to 'assetFactory/shape.h')
-rw-r--r-- | assetFactory/shape.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/assetFactory/shape.h b/assetFactory/shape.h new file mode 100644 index 0000000..5a2b59c --- /dev/null +++ b/assetFactory/shape.h @@ -0,0 +1,25 @@ +#pragma once + +#include "modelFactoryMesh_fwd.h" +#include "mutation.h" +#include "stdTypeDefs.hpp" +#include <OpenMesh/Core/Mesh/Handles.hh> +#include <map> +#include <span> +#include <string> + +class Vertex; + +class Shape : public StdTypeDefs<Shape> { +public: + using CreatedFaces = std::multimap<std::string, OpenMesh::FaceHandle>; + + static constexpr float z {}, y {.5}, n {-y}, o {1}; + + virtual ~Shape() = default; + + virtual CreatedFaces createMesh(ModelFactoryMesh &, const Mutation::Matrix & mutation) const = 0; + + static std::vector<OpenMesh::VertexHandle> addMutatedToMesh( + ModelFactoryMesh & mesh, const std::span<const glm::vec3> vertices, const Mutation::Matrix & mutation); +}; |