00001 #ifndef SIGEL_ROBOT_SIG_BODY_H 00002 #define SIGEL_ROBOT_SIG_BODY_H 00003 00004 namespace SIGEL_Robot { class SIG_Body; } 00005 #include <qstring.h> 00006 #include <CyberVRML97.h> 00007 #include <newmat.h> 00008 #include <cstdlib> 00009 #include <qlist.h> 00010 #include <qvector.h> 00011 #include <pointvector.h> 00012 #include <matrix.h> 00013 #include "SIGEL_Robot/SIG_Robot.h" 00014 #include "SIGEL_Robot/SIG_Link.h" 00015 #include "SIGEL_Robot/SIG_Geometry.h" 00016 00017 namespace SIGEL_Robot 00018 { 00028 class SIG_Body { 00029 private: 00030 SIG_Robot *parent; 00031 QList<SIG_Link> usedByLinks; 00032 QString geometryFile, directory; 00033 SIG_Geometry *geometry; 00034 00035 public: 00039 SIG_Body (SIG_Robot *par, QString f, QString d); 00046 SIG_Body (SIG_Robot *par, QTextStream & tx); 00050 ~SIG_Body (void); 00051 00056 void addUsingLink (SIG_Link* user); 00057 00065 void load (); 00066 00073 NEWMAT::Matrix SIG_Body::createRotationMatrix( QArray< float > rotation ); 00074 00084 void readVRMLNode(Node *node, NEWMAT::Matrix transformation); 00085 00093 void setGeometry (SIG_Geometry *geo); 00094 00098 SIG_Geometry const *getGeometry (void) const; 00099 00104 void writeToFileTransfer (QTextStream & tx); 00105 00109 QString getGeometryFile (void) const; 00110 00115 QString getName (void) const; 00116 }; 00117 } 00118 00119 #endif // SIGEL_ROBOT_SIG_BODY_H