X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmodel%2FCompositeModel.cpp;fp=src%2Fmodel%2FCompositeModel.cpp;h=0000000000000000000000000000000000000000;hb=2ea26d9ca5eaeae65daa0edbbaeada8c1f23670e;hp=d5b25af461fa34a2f6bdc63edd7592cad08929bb;hpb=5304d1e3c1a1e90d474307f4f7eea812a61e483c;p=blank.git diff --git a/src/model/CompositeModel.cpp b/src/model/CompositeModel.cpp deleted file mode 100644 index d5b25af..0000000 --- a/src/model/CompositeModel.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include "CompositeModel.hpp" - -#include "EntityModel.hpp" -#include "../graphics/DirectionalLighting.hpp" - -#include - - -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); - } -} - -}