Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

SIG_RobotCompiler.h

00001 #ifndef SIGEL_ROBOTIO_SIG_ROBOTCOMPILER_H
00002 #define SIGEL_ROBOTIO_SIG_ROBOTCOMPILER_H
00003 
00004 namespace SIGEL_RobotIO { class SIG_RobotCompiler; }
00005 
00006 #include "SIGEL_Robot/SIG_Body.h"
00007 #include "SIGEL_Robot/SIG_Robot.h"
00008 #include "SIGEL_Robot/SIG_Material.h"
00009 #include "SIGEL_Robot/SIG_Link.h"
00010 #include "SIGEL_Robot/SIG_Joint.h"
00011 #include "SIGEL_Robot/SIG_RotationalJoint.h"
00012 #include "SIGEL_Robot/SIG_TranslationalJoint.h"
00013 #include "SIGEL_Robot/SIG_CylindricalJoint.h"
00014 #include "SIGEL_Robot/SIG_GlueJoint.h"
00015 #include "SIGEL_Robot/SIG_Drive.h"
00016 #include "SIGEL_Robot/SIG_Sensor.h"
00017 #include "SIGEL_Robot/SIG_JointSensor.h"
00018 #include "SIGEL_Robot/SIG_Geometry.h"
00019 #include "SIGEL_RobotIO/SIG_RobotScanner.h"
00020 #include <pointvector.h>
00021 
00022 using SIGEL_Robot::SIG_Body;
00023 using SIGEL_Robot::SIG_Robot;
00024 using SIGEL_Robot::SIG_Material;
00025 using SIGEL_Robot::SIG_Link;
00026 using SIGEL_Robot::SIG_Joint;
00027 using SIGEL_Robot::SIG_RotationalJoint;
00028 using SIGEL_Robot::SIG_TranslationalJoint;
00029 using SIGEL_Robot::SIG_CylindricalJoint;
00030 using SIGEL_Robot::SIG_GlueJoint;
00031 using SIGEL_Robot::SIG_Geometry;
00032 using SIGEL_Robot::SIG_Polygon;
00033 using SIGEL_Robot::SIG_Drive;
00034 using SIGEL_Robot::SIG_Sensor;
00035 using SIGEL_Robot::SIG_JointSensor;
00036 
00037 namespace SIGEL_RobotIO {
00038         class SIG_RobotCompiler {
00039         protected:
00040                 SIG_Scanner &myScanner;
00041                 SIG_Robot *target;
00042                 QString dirprefix;
00043         public:
00044                 SIG_RobotCompiler (SIG_RobotScanner &sc,
00045                                    SIG_Robot *tg,
00046                                    QString homepath);
00047                 virtual ~SIG_RobotCompiler (void);
00048 
00049                 // QString prefixFile (QString filename);
00050 
00051                 void expect (int symboltype);
00052                 QString expectWord (void);
00053                 DL_Scalar expectNumber (void);
00054                 QString expectString (void);
00055 
00056                 virtual SIG_Material *materialFind (QString name) = 0;
00057                 virtual void materialDensity (SIG_Material *material,
00058                                               DL_Scalar density) = 0;
00059                 virtual void materialFriction (SIG_Material *material,
00060                                                QString otherSide,
00061                                                DL_Scalar frictionconst) = 0;
00062                 virtual void materialElasticity (SIG_Material *material,
00063                                                  DL_Scalar elasconst) = 0;
00064                 virtual void materialColour (SIG_Material *material,
00065                                              DL_Scalar red,
00066                                              DL_Scalar green,
00067                                              DL_Scalar blue) = 0;
00068                 virtual void materialFinish (SIG_Material *material) = 0;
00069 
00070                 virtual SIG_Link *linkFind (QString name) = 0;
00071                 virtual void linkIsTorso (SIG_Link *link) = 0;
00072                 virtual void linkGeometryFile (SIG_Link *link,
00073                                                QString geometryfile) = 0;
00074                 virtual void linkMaterial (SIG_Link *link,
00075                                            QString material) = 0;
00076                 virtual void linkPoint (SIG_Link *link,
00077                                         QString pointname,
00078                                         DL_Scalar x,
00079                                         DL_Scalar y,
00080                                         DL_Scalar z) = 0;
00081                 virtual void linkNoCollide (SIG_Link *link,
00082                                             QString nocollide) = 0;
00083                 virtual void linkFinish (SIG_Link *link) = 0;
00084 
00085                 virtual SIG_RotationalJoint *rjointFind (QString name) = 0;
00086                 virtual void rjointLinking (SIG_RotationalJoint *rj,
00087                                             QString Alink, QString AB, QString AD, QString AH,
00088                                             QString Blink, QString BB, QString BD, QString BH) = 0;
00089                 virtual void rjointExtents (SIG_RotationalJoint *rj,
00090                                             DL_Scalar mn, DL_Scalar mx, DL_Scalar ii) = 0;
00091                 virtual void rjointFinish (SIG_RotationalJoint *rj) = 0;
00092 
00093                 virtual SIG_TranslationalJoint *tjointFind (QString name) = 0;
00094                 virtual void tjointLinking (SIG_TranslationalJoint *tj,
00095                                             QString Alink, QString AB, QString AD, QString AF,
00096                                             QString Blink, QString BB, QString BD, QString BF) = 0;
00097                 virtual void tjointExtents (SIG_TranslationalJoint *tj,
00098                                             DL_Scalar mn, DL_Scalar mx, DL_Scalar ii) = 0;
00099                 virtual void tjointFinish (SIG_TranslationalJoint *tj) = 0;
00100 
00101                 virtual SIG_CylindricalJoint *cjointFind (QString name) = 0;
00102                 virtual void cjointLinking (SIG_CylindricalJoint *cj,
00103                                             QString Alink, QString AB, QString AD, QString AH,
00104                                             QString Blink, QString BB, QString BD, QString BH) = 0;
00105                 virtual void cjointRotExtents (SIG_CylindricalJoint *cj,
00106                                                DL_Scalar mn, DL_Scalar mx, DL_Scalar ii) = 0;
00107                 virtual void cjointTraExtents (SIG_CylindricalJoint *cj,
00108                                                DL_Scalar mn, DL_Scalar mx, DL_Scalar ii) = 0;
00109                 virtual void cjointFinish (SIG_CylindricalJoint *cj) = 0;
00110 
00111                 virtual SIG_GlueJoint *glueFind (QString name) = 0;
00112                 virtual void glueLinking (SIG_GlueJoint *glue,
00113                                           QString Alink, QString AA, QString AB, QString AC,
00114                                           QString Blink, QString BP, QString BQ, QString BR) =0;
00115                 virtual void glueFinish (SIG_GlueJoint *glue) = 0;
00116 
00117                 virtual SIG_Drive *driveFind (QString name) = 0;
00118                 virtual void driveMode (SIG_Drive *d, QString mode) = 0;
00119                 virtual void driveJoint (SIG_Drive *d, QString jointname) = 0;
00120                 virtual void driveMinMaxForce (SIG_Drive *d,
00121                                                DL_Scalar minf, DL_Scalar maxf) = 0;
00122                 virtual void driveFinish (SIG_Drive *d) = 0;
00123 
00124                 virtual SIG_JointSensor *jointSensorFind (QString name) = 0;
00125                 virtual void jointSensorJoint (SIG_JointSensor *js, QString jointname) = 0;
00126                 virtual void jointSensorFinish (SIG_JointSensor *js) = 0;
00127 
00128                 virtual SIG_Geometry *surfaceFind (QString name) = 0;
00129                 virtual SIG_Polygon *surfaceNewPoly (SIG_Geometry *g) = 0;
00130                 virtual void surfaceNewPoint (SIG_Polygon *p,
00131                                               DL_Scalar x,
00132                                               DL_Scalar y,
00133                                               DL_Scalar z) = 0;
00134                 virtual void surfaceFinish (SIG_Geometry *g, QString name) = 0;
00135 
00136                 virtual void modifierScaleall (DL_Scalar scalingFactor) { }
00137 
00138                 virtual void nextIsMaterial (void);
00139                 virtual void nextIsLink (void);
00140                 virtual void nextIsJoint (void);
00141                 virtual void nextIsGlue (void);
00142                 virtual void nextIsDrive (void);
00143                 virtual void nextIsSensor (void);
00144                 virtual void nextIsSurface (void);
00145 
00146                 virtual void nextModScaleall (void);
00147 
00148                 bool compileNextEntity (void);
00149                 void runPass (void);
00150         };
00151 }
00152 
00153 #endif

Generated at Mon Sep 3 01:32:30 2001 for PG 368 - SIGEL by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000