00001 #ifndef __GLCOORDINATES_H__ 00002 #define __GLCOORDINATES_H__ 00003 00004 #include <hrpUtil/Eigen3d.h> 00005 00006 class GLcoordinates 00007 { 00008 public: 00009 GLcoordinates(); 00010 void setTransform(const double i_trans[12]); 00011 double *getTransform() { return m_trans; } 00012 hrp::Vector3 getPosition(); 00013 void setPosition(double x, double y, double z); 00014 void getPosition(double& x, double& y, double& z); 00015 template<class T> 00016 void setPosition(const T &p){ 00017 m_trans[12] = p[0]; m_trans[13] = p[1]; m_trans[14] = p[2]; 00018 } 00019 void setRotation(double r, double p, double y); 00020 void setRotation(double ax, double ay, double az, double th); 00021 hrp::Matrix33 getRotation(); 00022 void setRotation(const hrp::Matrix33 &R); 00023 void setRotation(const double *R); 00024 void getRotation(hrp::Matrix33 &R); 00025 protected: 00026 double m_trans[16]; 00027 }; 00028 #endif