00001 00002 // 00003 //Contents: Class CJoints 00004 // 00006 00007 #ifndef _Joint_Header_ 00008 #define _Joint_Header_ 00009 00010 //#include <vector> 00011 #include "kinematics\FrameManager.h" 00012 #include "Robots\R_OpenChain.h" 00013 #include "kinematics\Configuration.h" 00014 00015 class CJoints 00016 { 00017 public: 00018 CJoints(); 00019 CJoints(FrameManager* frameManager); 00020 virtual ~CJoints(); 00021 00022 //Set context of environment 00023 virtual void SetRobot(R_OpenChain *robot); 00024 virtual void SetFrameManager(FrameManager* frameManager); 00025 virtual void SetBaseFrame(unsigned int frame); 00026 virtual void SetFirstJoint(unsigned int joint); 00027 virtual void SetLastJoint(unsigned int joint); 00028 //virtual void SetCollisionDetector (CD_BasicStyle* collisionDetector); 00029 00030 virtual bool GetConfiguration(Configuration &conf)=0; 00031 virtual bool GetConfiguration(Configuration &conf, Configuration ¤t, double dist)=0; 00032 00033 public: 00034 unsigned int jointNum; 00035 00036 protected: 00037 R_OpenChain* robot; 00038 std::vector< LinkBase*> links; 00039 //CD_BasicStyle* collisionDetector; 00040 FrameManager* frameManager; 00041 unsigned int baseFrame; 00042 unsigned int firstJoint; 00043 unsigned int lastJoint; 00044 00045 virtual double Distance(LinkBase *link, double q1, double q2); 00046 }; 00047 00048 00049 #endif