summaryrefslogtreecommitdiff
path: root/assetFactory/cuboid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'assetFactory/cuboid.cpp')
-rw-r--r--assetFactory/cuboid.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/assetFactory/cuboid.cpp b/assetFactory/cuboid.cpp
new file mode 100644
index 0000000..24fe4a4
--- /dev/null
+++ b/assetFactory/cuboid.cpp
@@ -0,0 +1,29 @@
+#include "cuboid.h"
+#include "modelFactoryMesh.h"
+
+Cuboid::CreatedFaces
+Cuboid::createMesh(ModelFactoryMesh & mesh, const Mutation::Matrix & mutation) const
+{
+ static constexpr std::array<glm::vec3, 8> VERTICES {{
+ // bottom
+ {n, n, z},
+ {n, y, z},
+ {y, y, z},
+ {y, n, z},
+ // top
+ {y, n, o},
+ {y, y, o},
+ {n, y, o},
+ {n, n, o},
+ }};
+
+ const auto vhs = addMutatedToMesh(mesh, VERTICES, mutation);
+ return {
+ mesh.add_namedFace("top", {vhs[4], vhs[5], vhs[6], vhs[7]}),
+ mesh.add_namedFace("bottom", {vhs[0], vhs[1], vhs[2], vhs[3]}),
+ mesh.add_namedFace("left", {vhs[0], vhs[7], vhs[6], vhs[1]}),
+ mesh.add_namedFace("right", {vhs[2], vhs[5], vhs[4], vhs[3]}),
+ mesh.add_namedFace("front", {vhs[0], vhs[3], vhs[4], vhs[7]}),
+ mesh.add_namedFace("back", {vhs[2], vhs[1], vhs[6], vhs[5]}),
+ };
+}