00001 00009 #ifndef TG_POSE 00010 #define TG_POSE 00011 00012 #include <blort/TomGine/tgMathlib.h> 00013 #include <blort/TomGine/tgQuaternion.h> 00014 00015 namespace TomGine{ 00016 00020 class tgPose{ 00021 public: 00022 vec3 t; 00023 tgQuaternion q; 00024 00025 tgPose operator*(const tgPose& p) const; 00026 vec3 operator*(const vec3& t) const; 00027 tgPose operator+(const tgPose &p) const; 00028 tgPose operator-(const tgPose &p) const; 00029 tgPose Transpose() const; 00030 00031 void PrintHeader() const; 00032 void Print() const; 00033 00034 void Activate() const; 00035 void Deactivate() const; 00036 00037 void SetPose(mat3 r, vec3 p); 00038 void GetPose(mat3 &r, vec3 &p) const; 00039 00040 void Rotate(float x, float y, float z); 00041 void Rotate(vec3 r); 00042 void RotateAxis(vec3 rot); 00043 void RotateEuler(vec3 rot); 00044 void Translate(float x, float y, float z); 00045 void Translate(vec3 t); 00046 }; 00047 00048 } // namespace TomGine 00049 00050 #endif