00001 #ifndef SIGEL_ROBOT_SIG_TRANSLATIONALJOINT_H 00002 #define SIGEL_ROBOT_SIG_TRANSLATIONALJOINT_H 00003 00004 namespace SIGEL_Robot { class SIG_TranslationalJoint; } 00005 00006 #include <qstring.h> 00007 #include <pointvector.h> 00008 00009 #include "SIGEL_Robot/SIG_Robot.h" 00010 #include "SIGEL_Robot/SIG_Joint.h" 00011 00012 namespace SIGEL_Robot 00013 { 00020 class SIG_TranslationalJoint : public SIG_Joint { 00021 private: 00022 DL_vector rightBase, leftBase, rightFix; 00023 DL_vector leftDir, rightDir, leftFix; 00024 DL_Scalar minimum, maximum, initial; 00025 public: 00026 SIG_TranslationalJoint (SIG_Robot *par, QString n, int nr = -1); 00027 SIG_TranslationalJoint (SIG_Robot *par, QTextStream & tx); 00028 ~SIG_TranslationalJoint (); 00029 virtual JointType getJointType (void) const; 00030 void setLeftPoints (DL_vector B, DL_vector D, DL_vector F); 00031 void setRightPoints (DL_vector B, DL_vector D, DL_vector F); 00032 void setRange (DL_Scalar mn, DL_Scalar mx, DL_Scalar ii); 00033 DL_vector getLeftBase () const; 00034 DL_vector getLeftDir () const; 00035 DL_vector getLeftFix () const; 00036 DL_vector getRightBase () const; 00037 DL_vector getRightDir () const; 00038 DL_vector getRightFix () const; 00039 DL_Scalar getMin () const; 00040 DL_Scalar getMax () const; 00041 DL_Scalar getIni () const; 00042 00043 virtual void transformPoints (SIG_Link *side, 00044 DL_vector mov, DL_matrix rot); 00045 virtual void getGeomRelation 00046 (DL_vector &t, DL_matrix &o, SIG_Link *origin); 00047 virtual void getMDH (SIG_Link * & predecessor, 00048 double & a, double & alpha, 00049 double & d, double & theta, 00050 double & screwD, double & screwTheta); 00051 virtual void writeToFileTransfer (QTextStream & tx); 00052 }; 00053 } 00054 00055 #endif // SIGEL_ROBOT_SIG_TRANSLATIONALJOINT_H