From 3bf2aba9dbb6d51c3500b995ab1eb5908240f0fc Mon Sep 17 00:00:00 2001 From: Anselme Date: Fri, 22 Jul 2016 13:21:32 +0200 Subject: [PATCH] added very simple animation system --- src/scenetree.h | 10 +++++++++- src/test/main.cpp | 13 +++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/scenetree.h b/src/scenetree.h index b286c8c..b19ea0c 100644 --- a/src/scenetree.h +++ b/src/scenetree.h @@ -59,9 +59,17 @@ class MeshNode : public SceneNode { GeometryNode geometry; public: + // temp + glm::mat4 m_movement; + glm::mat4 m_acceleration; + MeshNode(Mesh* mesh) : geometry(mesh, glm::mat4()) {} - virtual void update() {} + virtual void update() + { + m_movement = m_acceleration * m_movement; + geometry.modelMatrix = m_movement * geometry.modelMatrix; + } void setTransform(const glm::mat4 &transform) { geometry.modelMatrix = transform; } const glm::mat4& getTransform() { return geometry.modelMatrix; } diff --git a/src/test/main.cpp b/src/test/main.cpp index 90f87a2..b0d0af4 100644 --- a/src/test/main.cpp +++ b/src/test/main.cpp @@ -54,16 +54,21 @@ int main(){ MeshNode* mnode/* = new MeshNode(fonte_des_neiges->getTextMesh("Hello World!")); scene.addObject(scene.getRootObject(),mnode)*/; - mnode = new MeshNode(fonte_des_neiges->getTextMesh("WOW!", glm::vec3(0.5, 0.7, 0.2))); + mnode = new MeshNode(fonte_des_neiges->getTextMesh("WOW", glm::vec3(0.5, 0.7, 0.2))); mnode->setTransform(glm::rotate(glm::translate(glm::mat4(), glm::vec3(70, 30, 0)), 0.4f, glm::vec3(0, 0, 1))); scene.addObject(scene.getRootObject(),mnode); - mnode = new MeshNode(fonte_des_neiges->getTextMesh("Such Text!", glm::vec3(0.7, 0.4, 0.2))); + mnode = new MeshNode(fonte_des_neiges->getTextMesh("Such Text", glm::vec3(0.7, 0.4, 0.2))); mnode->setTransform(glm::rotate(glm::translate(glm::mat4(), glm::vec3(200, 170, 0)), -0.5f, glm::vec3(0, 0, 1))); scene.addObject(scene.getRootObject(),mnode); - mnode = new MeshNode(fonte_des_neiges->getTextMesh("Very font!", glm::vec3(0.7, 0.2, 0.8))); - mnode->setTransform(glm::rotate(glm::translate(glm::mat4(), glm::vec3(260, 300, 0)), 0.1f, glm::vec3(0, 0, 1))); + mnode = new MeshNode(fonte_des_neiges->getTextMesh("Very font", glm::vec3(0.7, 0.2, 0.8))); + mnode->setTransform(glm::rotate(glm::translate(glm::mat4(), glm::vec3(180, 400, 0)), 0.1f, glm::vec3(0, 0, 1))); + scene.addObject(scene.getRootObject(),mnode); + + mnode = new MeshNode(fonte_des_neiges->getTextMesh("Much animation", glm::vec3(0.3, 0.3, 0.8))); + mnode->setTransform(glm::translate(glm::mat4(), glm::vec3(400, 250, 0))); + mnode->m_movement = glm::translate(glm::rotate(glm::translate(glm::mat4(), glm::vec3(580, 280, 0)), 0.03f, glm::vec3(0, 0, 1)), glm::vec3(-580, -280, 0)); scene.addObject(scene.getRootObject(),mnode); engine.setScene(&scene);