00001 #ifndef SIGEL_ROBOTIO_SIG_ROBOTCOMPILERSTRUCTURE_H 00002 #define SIGEL_ROBOTIO_SIG_ROBOTCOMPILERSTRUCTURE_H 00003 00004 namespace SIGEL_RobotIO { class SIG_RobotCompilerStructure; } 00005 00006 #include "SIGEL_Robot/SIG_Robot.h" 00007 #include "SIGEL_Robot/SIG_Geometry.h" 00008 #include "SIGEL_RobotIO/SIG_RobotScanner.h" 00009 #include "SIGEL_RobotIO/SIG_RobotCompiler.h" 00010 #include "SIGEL_RobotIO/SIG_RobotIOExceptions.h" 00011 00012 namespace SIGEL_RobotIO { 00013 class SIG_RobotCompilerStructure : public SIG_RobotCompiler { 00014 public: 00015 SIG_RobotCompilerStructure (SIG_RobotScanner &sc, 00016 SIG_Robot *tg, 00017 QString homepath); 00018 virtual ~SIG_RobotCompilerStructure (void); 00019 00020 virtual SIG_Material *materialFind (QString name); 00021 virtual void materialDensity (SIG_Material *material, 00022 DL_Scalar density); 00023 virtual void materialFriction (SIG_Material *material, 00024 QString otherSide, 00025 DL_Scalar frictionconst); 00026 virtual void materialElasticity (SIG_Material *material, 00027 DL_Scalar elasconst); 00028 virtual void materialColour (SIG_Material *material, 00029 DL_Scalar red, 00030 DL_Scalar green, 00031 DL_Scalar blue); 00032 virtual void materialFinish (SIG_Material *material); 00033 00034 virtual SIG_Link *linkFind (QString name); 00035 virtual void linkIsTorso (SIG_Link *link); 00036 virtual void linkGeometryFile (SIG_Link *link, 00037 QString geometryfile); 00038 virtual void linkMaterial (SIG_Link *link, 00039 QString material); 00040 virtual void linkPoint (SIG_Link *link, 00041 QString pointname, 00042 DL_Scalar x, 00043 DL_Scalar y, 00044 DL_Scalar z); 00045 virtual void linkNoCollide (SIG_Link *link, 00046 QString nocollide); 00047 virtual void linkFinish (SIG_Link *link); 00048 00049 virtual SIG_RotationalJoint *rjointFind (QString name); 00050 virtual void rjointLinking (SIG_RotationalJoint *rj, 00051 QString Alink, QString AB, QString AD, QString AH, 00052 QString Blink, QString BB, QString BD, QString BH); 00053 virtual void rjointExtents (SIG_RotationalJoint *rj, 00054 DL_Scalar mn, DL_Scalar mx, DL_Scalar ii); 00055 virtual void rjointFinish (SIG_RotationalJoint *rj); 00056 00057 virtual SIG_TranslationalJoint *tjointFind (QString name); 00058 virtual void tjointLinking (SIG_TranslationalJoint *tj, 00059 QString Alink, QString AB, QString AD, QString AF, 00060 QString Blink, QString BB, QString BD, QString BF); 00061 virtual void tjointExtents (SIG_TranslationalJoint *tj, 00062 DL_Scalar mn, DL_Scalar mx, DL_Scalar ii); 00063 virtual void tjointFinish (SIG_TranslationalJoint *tj); 00064 00065 virtual SIG_CylindricalJoint *cjointFind (QString name); 00066 virtual void cjointLinking (SIG_CylindricalJoint *cj, 00067 QString Alink, QString AB, QString AD, QString AH, 00068 QString Blink, QString BB, QString BD, QString BH); 00069 virtual void cjointRotExtents (SIG_CylindricalJoint *cj, 00070 DL_Scalar mn, DL_Scalar mx, DL_Scalar ii); 00071 virtual void cjointTraExtents (SIG_CylindricalJoint *cj, 00072 DL_Scalar mn, DL_Scalar mx, DL_Scalar ii); 00073 virtual void cjointFinish (SIG_CylindricalJoint *cj); 00074 00075 virtual SIG_GlueJoint *glueFind (QString name); 00076 virtual void glueLinking (SIG_GlueJoint *glue, 00077 QString Alink, QString AA, QString AB, QString AC, 00078 QString Blink, QString BP, QString BQ, QString BR); 00079 virtual void glueFinish (SIG_GlueJoint *glue); 00080 00081 virtual SIG_Drive *driveFind (QString name); 00082 virtual void driveMode (SIG_Drive *d, QString mode); 00083 virtual void driveJoint (SIG_Drive *d, QString jointname); 00084 virtual void driveMinMaxForce (SIG_Drive *d, DL_Scalar minf, DL_Scalar maxf); 00085 virtual void driveFinish (SIG_Drive *d); 00086 00087 virtual SIG_JointSensor *jointSensorFind (QString name); 00088 virtual void jointSensorJoint (SIG_JointSensor *js, QString jointname); 00089 virtual void jointSensorFinish (SIG_JointSensor *js); 00090 00091 virtual SIG_Geometry *surfaceFind (QString name) {} 00092 virtual SIG_Polygon *surfaceNewPoly (SIG_Geometry *g) {} 00093 virtual void surfaceNewPoint (SIG_Polygon *p, 00094 DL_Scalar x, 00095 DL_Scalar y, 00096 DL_Scalar z) {} 00097 virtual void surfaceFinish (SIG_Geometry *g, QString name) {} 00098 }; 00099 } 00100 00101 #endif