X-Git-Url: https://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=model.cpp;h=f4fc307ebca7db0515ce0af40bc74d916ccc2021;hp=345309a211e30232e2bd0c50a3945ccf74b43542;hb=ad77a970429c9c5e9cf8d513d0469d03ad82e622;hpb=671418e7effc7cbbb7e05df216291406d2b82dd7 diff --git a/model.cpp b/model.cpp index 345309a..f4fc307 100644 --- a/model.cpp +++ b/model.cpp @@ -224,6 +224,14 @@ glm::mat4 Model::Node::totalTrans(const glm::mat4 parentTrans, const float tick) return m; } +const Model::Node &Model::Node::getRoot() const { + const Model::Node *rootPtr = this; + while (rootPtr->parent != nullptr) + rootPtr = rootPtr->parent; + const Model::Node &root = *rootPtr; + return root; +} + void Model::Node::draw( const std::vector &meshes, const std::vector &materials, const Skybox skybox, @@ -341,8 +349,6 @@ Model::Model(const aiScene *scene, Program p): program(p) { } } - printHierarchy(scene->mRootNode); - root = new Node(*(scene->mRootNode), p.progId, &animMap, allBones, nullptr); }