summaryrefslogtreecommitdiff
path: root/assetFactory/shape.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'assetFactory/shape.cpp')
-rw-r--r--assetFactory/shape.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/assetFactory/shape.cpp b/assetFactory/shape.cpp
new file mode 100644
index 0000000..f6e55e8
--- /dev/null
+++ b/assetFactory/shape.cpp
@@ -0,0 +1,17 @@
+#include "shape.h"
+#include "gfx/models/vertex.hpp"
+#include "maths.h"
+#include "modelFactoryMesh.h"
+#include "shape.h"
+
+std::vector<OpenMesh::VertexHandle>
+Shape::addMutatedToMesh(
+ ModelFactoryMesh & mesh, const std::span<const glm::vec3> vertices, const Mutation::Matrix & mutation)
+{
+ std::vector<OpenMesh::VertexHandle> vhs;
+ std::transform(vertices.begin(), vertices.end(), std::back_inserter(vhs), [&mesh, &mutation](const auto & v) {
+ const auto p = v % mutation;
+ return mesh.add_vertex({p.x, p.y, p.z});
+ });
+ return vhs;
+}