diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2023-02-15 02:26:06 +0000 |
---|---|---|
committer | Dan Goodliffe <dan.goodliffe@octal.co.uk> | 2023-02-15 11:34:11 +0000 |
commit | 715d4879fdd096ac82367984fdb22117d48737a4 (patch) | |
tree | 576b0553b10795bb51384ba4c47269d4226bdca6 /assetFactory/shape.h | |
parent | Add OpenMeshCore library (diff) | |
download | ilt-715d4879fdd096ac82367984fdb22117d48737a4.tar.bz2 ilt-715d4879fdd096ac82367984fdb22117d48737a4.tar.xz ilt-715d4879fdd096ac82367984fdb22117d48737a4.zip |
First cut of the model factory and the hardcoded Brush 47 model
Requires temporary change to the fragment shader to hardcode some visible colour to the model
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..9510538 --- /dev/null +++ b/assetFactory/shape.h @@ -0,0 +1,25 @@ +#pragma once + +#include "assetFactoryConfig_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); +}; |