added very simple animation system
This commit is contained in:
parent
0e560c2eef
commit
3bf2aba9db
@ -59,9 +59,17 @@ class MeshNode : public SceneNode
|
|||||||
{
|
{
|
||||||
GeometryNode geometry;
|
GeometryNode geometry;
|
||||||
public:
|
public:
|
||||||
|
// temp
|
||||||
|
glm::mat4 m_movement;
|
||||||
|
glm::mat4 m_acceleration;
|
||||||
|
|
||||||
MeshNode(Mesh* mesh) : geometry(mesh, glm::mat4()) {}
|
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; }
|
void setTransform(const glm::mat4 &transform) { geometry.modelMatrix = transform; }
|
||||||
const glm::mat4& getTransform() { return geometry.modelMatrix; }
|
const glm::mat4& getTransform() { return geometry.modelMatrix; }
|
||||||
|
@ -54,16 +54,21 @@ int main(){
|
|||||||
MeshNode* mnode/* = new MeshNode(fonte_des_neiges->getTextMesh("Hello World!"));
|
MeshNode* mnode/* = new MeshNode(fonte_des_neiges->getTextMesh("Hello World!"));
|
||||||
scene.addObject(scene.getRootObject(),mnode)*/;
|
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)));
|
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);
|
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)));
|
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);
|
scene.addObject(scene.getRootObject(),mnode);
|
||||||
|
|
||||||
mnode = new MeshNode(fonte_des_neiges->getTextMesh("Very font!", glm::vec3(0.7, 0.2, 0.8)));
|
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->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);
|
scene.addObject(scene.getRootObject(),mnode);
|
||||||
|
|
||||||
engine.setScene(&scene);
|
engine.setScene(&scene);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user