00001 #ifndef __PYSIMULATOR_H__ 00002 #define __PYSIMULATOR_H__ 00003 00004 #include "hrpsys/util/SDLUtil.h" 00005 #include "Simulator.h" 00006 #include "GLscene.h" 00007 00008 class PyBody; 00009 00010 class PySimulator : public Simulator 00011 { 00012 public: 00013 PySimulator(); 00014 PySimulator(PyObject *pyo); 00015 ~PySimulator(); 00016 void initRTCmanager(); 00017 void initRTCmanager(PyObject *pyo); 00018 void initRTCmanager(int argc, char **argv); 00019 void initViewer(); 00020 PyBody* loadBody(std::string name, std::string url); 00021 PyBody* createBody(std::string name); 00022 bool loadProject(std::string fname); 00023 void simulate(); 00024 void simulate(double time); 00025 void start(double time); 00026 void endless(bool flag); 00027 void clear(); 00028 void play(); 00029 void pause(); 00030 void notifyChanged(); 00031 void addCollisionCheckPair(PyBody *b1, PyBody *b2); 00032 void capture(std::string); 00033 unsigned int logLength(); 00034 PyObject *bodies(); 00035 PyBody *getBody(std::string name); 00036 bool showSensors(); 00037 void setShowSensors(bool flag); 00038 void reset(); 00039 void setUseBBox(bool flag); 00040 void setWindowSize(int s); 00041 void setMaxLogLength(double len); 00042 double maxLogLength(); 00043 private: 00044 LogManager<SceneState> log; 00045 GLscene scene; 00046 SDLwindow window; 00047 RTC::Manager* manager; 00048 bool useBBox; 00049 double maxLogLen; 00050 }; 00051 00052 #endif