diff options
Diffstat (limited to 'dev/a4-dance/motion_clip.h')
-rw-r--r-- | dev/a4-dance/motion_clip.h | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/dev/a4-dance/motion_clip.h b/dev/a4-dance/motion_clip.h deleted file mode 100644 index d676adc..0000000 --- a/dev/a4-dance/motion_clip.h +++ /dev/null @@ -1,79 +0,0 @@ - -#ifndef ANIMATION_CLIP_H_ -#define ANIMATION_CLIP_H_ - -#include <mingfx.h> -#include "pose.h" -#include "skeleton.h" - - -/** A MotionClip is a series of poses that can be applied to an animated character. - In addition to storing that list, this class provides some utility functions for - editing the clip, including triming unwanted frames from the front or back or - prepended or appending additional frames to the clip. You can also make the clip - loop smoothly. */ -class MotionClip { -public: - /// Creates an empty clip. - MotionClip(); - virtual ~MotionClip(); - - /// Loads a clip from a file in the AMC mocap data format. A reference to - /// the skeleton used during the data capture is required in order to know - /// the proper bone names and hierarchical arrangement. - void LoadFromAMC(const std::string &filename, const Skeleton &skeleton); - - /// Adds a single pose to the beginning of the motion clip, shifting all - /// frames later by 1. - void PrependPose(const Pose &pose); - - /// Adds a single pose to the end of the motion clip. - void AppendPose(const Pose &pose); - - /// Combines this motion clip and another by prepending the other. If you - /// wish to smoothly blend (i.e., cross disolve) between the two clips, then - /// use a value > 0 for num_blend_frames. - void PrependClip(const MotionClip &clip, int num_blend_frames); - - /// Combines this motion clip and another by appending the other. If you - /// wish to smoothly blend (i.e., cross disolve) between the two clips, then - /// use a value > 0 for num_blend_frames. - void AppendClip(const MotionClip &clip, int num_blend_frames); - - /// Turns the motion clip into a continuous loop by blending the last - /// num_blend_frames/2 poses with the first num_blend_frames/2 poses. - void MakeLoop(int num_blend_frames); - - /// Removes some poses from the front of the motion clip. - void TrimFront(int num_frames); - - /// Removes some poses from the end of the motoin clip. - void TrimBack(int num_frames); - - /// Runs through the motion clip, frame by frame, and calculates the relative - /// translation from one frame to the next, storing the results in each pose. - /// This is not needed if the motion clip will only be used for playback in - /// an absolute positioning mode, but it is needed for playback in a relative - /// positioning mode. - void CalcRelativeTranslations(); - - /// Returns the length (in number of frames) of the motoin clip. - int size() const; - - /// Returns the character's pose for the given frame. - Pose pose(int frame_num) const; - - /// Returns the character's pose for the given frame. - Pose& pose(int frame_num); - - /// Returns the character's pose for the given frame. - Pose operator[](const int frame_num) const; - - /// Returns the character's pose for the given frame. - Pose& operator[](const int frame_num); - -private: - std::vector<Pose> frames_; -}; - -#endif |