]> git.localhorst.tv Git - blank.git/blobdiff - src/model/CompositeModel.cpp
split composite model in template and instance
[blank.git] / src / model / CompositeModel.cpp
diff --git a/src/model/CompositeModel.cpp b/src/model/CompositeModel.cpp
deleted file mode 100644 (file)
index d5b25af..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#include "CompositeModel.hpp"
-
-#include "EntityModel.hpp"
-#include "../graphics/DirectionalLighting.hpp"
-
-#include <glm/gtx/quaternion.hpp>
-
-
-namespace blank {
-
-CompositeModel::CompositeModel()
-: node_model(nullptr)
-, position(0.0f)
-, orientation(1.0f, 0.0f, 0.0f, 0.0f)
-, parts() {
-
-}
-
-
-CompositeModel &CompositeModel::AddPart() {
-       parts.emplace_back();
-       parts.back().parent = this;
-       return parts.back();
-}
-
-
-glm::mat4 CompositeModel::LocalTransform() const noexcept {
-       glm::mat4 transform(toMat4(orientation));
-       transform[3].x = position.x;
-       transform[3].y = position.y;
-       transform[3].z = position.z;
-       return transform;
-}
-
-glm::mat4 CompositeModel::GlobalTransform() const noexcept {
-       if (HasParent()) {
-               return Parent().GlobalTransform() * LocalTransform();
-       } else {
-               return LocalTransform();
-       }
-}
-
-
-void CompositeModel::Render(const glm::mat4 &M, DirectionalLighting &prog) const {
-       glm::mat4 transform(M * LocalTransform());
-       if (HasNodeModel()) {
-               prog.SetM(transform);
-               NodeModel().Draw();
-       }
-       for (const CompositeModel &part : parts) {
-               part.Render(transform, prog);
-       }
-}
-
-}