KeyFrame.hh
00001 #ifndef KEYFRAME_HH
00002 #define KEYFRAME_HH
00003 
00004 #include "math/Vector3.hh"
00005 #include "math/Quaternion.hh"
00006 
00007 namespace gazebo
00008 {
00009   namespace common
00010   {
00011     class KeyFrame
00012     {
00013       public: KeyFrame(double _time);
00014       public: virtual ~KeyFrame();
00015 
00016       public: double GetTime() const;
00017 
00018       protected: double time;
00019     };
00020 
00021     class PoseKeyFrame : public KeyFrame
00022     {
00023       public: PoseKeyFrame(double _time);
00024       public: virtual ~PoseKeyFrame();
00025 
00026       public: void SetTranslate(const math::Vector3 &_trans);
00027       public: const math::Vector3 &GetTranslate() const;
00028 
00029       public: void SetRotation(const math::Quaternion &_rot);
00030       public: const math::Quaternion &GetRotation() const;
00031 
00032       protected: math::Vector3 translate;
00033       protected: math::Quaternion rotate;
00034     };
00035 
00036     class NumericKeyFrame : public KeyFrame
00037     {
00038       public: NumericKeyFrame(double _time);
00039       public: virtual ~NumericKeyFrame();
00040 
00041 
00042       public: void SetValue(const double &_value);
00043       public: const double &GetValue() const;
00044 
00045       protected: double value;
00046     };
00047   }
00048 }
00049 #endif