00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
#ifndef OPENCAL_POSITIONTIMETRACK_H
00012
#define OPENCAL_POSITIONTIMETRACK_H
00013
00014
00015
#include <OpenCAL/global.h>
00016
#include <OpenCAL/TimeTrack.h>
00017
00018
#include <OpenCAL/Vector3.h>
00019
using OpenCAL::Utils::Vector3;
00020
00021
#include <map>
00022
using std::map;
00023
00024
00025
namespace OpenCAL
00026 {
00027
00028
00036 class OPENCAL_API PositionTimeTrack:
public TimeTrack
00037 {
00038
protected:
00039
00040
typedef map<float, Vector3> KeyFrameMap;
00041
00042
00043 Vector3 *m_position;
00044 KeyFrameMap m_keyFrames;
00045
00046
public:
00047
00048 PositionTimeTrack(
KeyFrameSystem *keyFrameSystem, Vector3 *position);
00049
virtual ~PositionTimeTrack();
00050
00051
00052
void addKeyFrame(
float time,
const Vector3 &value);
00053
void deleteKeyFrame(
float time);
00054
void apply();
00055 };
00056 }
00057
00058
#endif // OPENCAL_POSITIONTIMETRACK_H