summaryrefslogtreecommitdiff
path: root/assetFactory/cuboid.cpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2023-03-05 01:59:16 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2023-03-05 01:59:16 +0000
commitd4c073a18adaed73973f34c6c39fc15664d9211d (patch)
tree44536af3af0284ab75eae79ef81a5e4452019269 /assetFactory/cuboid.cpp
parentAdd helper operator to perform vec3*mat4 and perspective divide (diff)
parentRemove old hard coded asset factory test, run entirely from XML load and rend... (diff)
downloadilt-d4c073a18adaed73973f34c6c39fc15664d9211d.tar.bz2
ilt-d4c073a18adaed73973f34c6c39fc15664d9211d.tar.xz
ilt-d4c073a18adaed73973f34c6c39fc15664d9211d.zip
Merge branch 'model-factory'
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]}),
+ };
+}