X-Git-Url: http://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=model.hpp;h=ecc8842b7e3807d901d642dc721f572a8cd91b78;hp=e74d65717973400120fd38eb4f2e4a71ba4418b3;hb=b472351f3c80cec8c7e9ec30cb4c113c947c0ff7;hpb=d26c67a51e58c3f70d1689e265e9bebe578b50ad diff --git a/model.hpp b/model.hpp index e74d657..ecc8842 100644 --- a/model.hpp +++ b/model.hpp @@ -15,21 +15,6 @@ #include "program.hpp" #include "skybox.hpp" -inline glm::mat4 aiMatrixToMat4(aiMatrix4x4 from) { - glm::mat4 to; - for (int i = 0; i < 4; i++) - for (int j = 0; j < 4; j++) - to[i][j] = from[j][i]; - return to; -} - -inline aiMatrix4x4 mat4ToaiMatrix(glm::mat4 from) { - aiMatrix4x4 to; - for (int i = 0; i < 4; i++) - for (int j = 0; j < 4; j++) - to[i][j] = from[j][i]; - return to; -} class Model { @@ -52,6 +37,7 @@ class Model { GLuint progId, vao, numIndices; unsigned int materialIndex; BoneMap boneMap; + const aiMesh &ai; }; public: @@ -73,6 +59,7 @@ class Model { glm::mat4 totalTrans(const glm::mat4 parentTrans, const float tick) const; const Node *parent; + const Node &getRoot() const; bool operator==(const Node &rhs) const; @@ -85,10 +72,12 @@ class Model { const bool isBone; }; - Node* getRoot() { return root; } + Node& getRoot() const { return *root; } Node* find(const aiString name) const; Node* find(const std::string &name) const; + std::pair closestVertex(Model::Node &node, glm::vec3 a, glm::vec3 b, glm::mat4 parentTrans = glm::mat4(1)) const; + private: const Program program;