]> git.tdb.fi Git - libs/gl.git/blobdiff - source/animationplayer.cpp
Support for armature-based animation
[libs/gl.git] / source / animationplayer.cpp
index 9537960c8d86875f749bf2257d4ea34de8905d9a..a929f3c233e846bcc39eedae496bbd7a860e0988 100644 (file)
@@ -1,5 +1,6 @@
 #include "animatedobject.h"
 #include "animationplayer.h"
+#include "armature.h"
 
 using namespace std;
 
@@ -17,6 +18,12 @@ void AnimationPlayer::tick(const Time::TimeDelta &dt)
        {
                i->iterator += dt;
                i->object.set_matrix(i->iterator.get_matrix());
+               if(const Armature *armature = i->animation.get_armature())
+               {
+                       unsigned max_index = armature->get_max_link_index();
+                       for(unsigned j=0; j<max_index; ++j)
+                               i->object.set_pose_matrix(j, i->iterator.get_pose_matrix(j));
+               }
 
                if(i->iterator.is_end())
                        slots.erase(i++);