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