]> git.tdb.fi Git - libs/gl.git/blobdiff - source/animation.cpp
Visit the rest of an iteration statement in NodeRemover
[libs/gl.git] / source / animation.cpp
index 1cfb533f94eb3cd901ecba9dc501d28433224a15..ab9d6e6085c35a36d1f430b652586411e7849047 100644 (file)
@@ -1,7 +1,6 @@
 #include <cmath>
 #include <msp/core/maputils.h>
 #include <msp/datafile/collection.h>
-#include <msp/time/units.h>
 #include "animation.h"
 #include "animationeventobserver.h"
 #include "armature.h"
@@ -78,9 +77,10 @@ void Animation::add_keyframe(const Time::TimeDelta &t, const RefPtr<const KeyFra
        if(realloc)
        {
                for(unsigned i=1; i<keyframes.size(); ++i)
-                       keyframes[i].prev = &keyframes[i-1];
+                       if(keyframes[i].prev)
+                               keyframes[i].prev = &keyframes[i-1];
        }
-       else if(keyframes.size()>1)
+       if(keyframes.size()>1 && t>(&tkf-1)->time)
                tkf.prev = &tkf-1;
 
        prepare_keyframe(tkf);