Browse Source

Added function to get position coordinates from keyframes

Matt Benic 8 years ago
parent
commit
9776287fe0
2 changed files with 19 additions and 1 deletions
  1. 15 1
      Source/Atomic/Graphics/Animation.cpp
  2. 4 0
      Source/Atomic/Graphics/Animation.h

+ 15 - 1
Source/Atomic/Graphics/Animation.cpp

@@ -432,7 +432,21 @@ void Animation::SetTracks(const Vector<AnimationTrack>& tracks)
 
 }
 
-// ATOMIC END
 
+Vector3 Animation::GetKeyFramePositionAtIndex(const String & name, unsigned keyIndex)
+{
+    for (HashMap<StringHash, AnimationTrack>::ConstIterator i = tracks_.Begin(); i != tracks_.End(); ++i)
+    {
+        const AnimationTrack& track = i->second_;
 
+        if (track.name_ == name)
+        {
+            const AnimationKeyFrame& key = track.keyFrames_.At(keyIndex);
+            return key.position_;
+        }
+    }
+    return Vector3();
+}
+
+// ATOMIC END
 }

+ 4 - 0
Source/Atomic/Graphics/Animation.h

@@ -186,8 +186,12 @@ public:
     /// Set all animation tracks.
     void SetTracks(const Vector<AnimationTrack>& tracks);
 
+    /// Return position of an animation track's keyframe at index.
+    Vector3 GetKeyFramePositionAtIndex(const String& name, unsigned keyIndex);
+
     // ATOMIC END
 
+
 private:
     /// Animation name.
     String animationName_;