00001 #ifndef SIGEL_SIMULATION_SIG_SIMULATION_H 00002 #define SIGEL_SIMULATION_SIG_SIMULATION_H 00003 00004 #include "SIGEL_Simulation/SIG_Recorder.h" 00005 #include "SIGEL_Simulation/SIG_CommandInterface.h" 00006 #include "SIGEL_Simulation/SIG_SimulationData.h" 00007 #include "SIGEL_Simulation/SIG_SimulationQueries.h" 00008 #include "SIGEL_Simulation/SIG_Interpreter.h" 00009 #include "SIGEL_Robot/SIG_Robot.h" 00010 #include "SIGEL_Program/SIG_Program.h" 00011 #include "SIGEL_Environment/SIG_Environment.h" 00012 #include "SIGEL_Simulation/SIG_SimulationCannotSolveException.h" 00013 #include <qstring.h> 00014 00023 namespace SIGEL_Simulation 00024 { 00025 00036 class SIG_Simulation : public QObject 00037 { 00038 Q_OBJECT 00039 public: 00052 SIG_Simulation( SIGEL_Robot::SIG_Robot const & robot, 00053 SIGEL_Environment::SIG_Environment const & environment, 00054 SIGEL_Program::SIG_Program const & robotProgram, 00055 SIG_SimulationParameters const & simulationParameter, 00056 SIG_Recorder & theRecorder); 00057 00070 void start() 00071 throw(SIGEL_Simulation::SIG_SimulationCannotSolveException); 00072 00085 void makeTimeSteps( int numTimeSteps ) 00086 throw(SIGEL_Simulation::SIG_SimulationCannotSolveException); 00087 00088 public slots: 00092 void slotDynamoMessage(QString theMessage); 00093 00094 private: 00098 bool stopSimulation; 00099 00106 SIG_Recorder & recorder; 00107 00111 SIG_CommandInterface *commandInterface; 00112 00119 SIG_SimulationData *simulationData; 00120 00124 SIG_SimulationQueries *simulationQueries; 00125 00129 SIG_Interpreter *interpreter; 00130 }; 00131 00132 } 00133 00134 #endif // SIGEL_SIMULATION_SIG_SIMULATION_H