00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include "compatsim.h"
00031
00032 namespace lpzrobots {
00033
00034
00035 CompatSim::CompatSim(void (*startFun)(const OdeHandle&, const OsgHandle&, GlobalData& globalData),
00036 void (*endFun)(GlobalData& globalData),
00037 void (*configFun)(GlobalData& globalData),
00038 void (*commandFun)(const OdeHandle&, const OsgHandle&, GlobalData& globalData, int key),
00039 void (*collCallbackFun)(const OdeHandle&, void* data, dGeomID o1, dGeomID o2),
00040 void (*addCallbackFun)(GlobalData& globalData, bool draw, bool pause))
00041 : startFun(startFun), endFun(endFun), configFun(configFun), commandFun(commandFun),
00042 collCallbackFun(collCallbackFun), addCallbackFun(addCallbackFun) {
00043 }
00044
00045 CompatSim::~CompatSim() {}
00046
00047
00048 void CompatSim::start(const OdeHandle& odeHandle, const OsgHandle& osgHandle, GlobalData& globalData){
00049 if(startFun) startFun(odeHandle, osgHandle, globalData);
00050 }
00051
00052 void CompatSim::end(GlobalData& globalData){
00053 if(endFun) endFun(globalData);
00054 };
00055
00056 void CompatSim::config(GlobalData& globalData){
00057 if(configFun) configFun(globalData);
00058 }
00059
00060 void CompatSim::command(const OdeHandle& odeHandle, const OsgHandle& osgHandle,
00061 GlobalData& globalData, int key) {
00062 if(commandFun) commandFun(odeHandle, osgHandle, globalData, key);
00063 }
00064
00065 bool CompatSim::collCallback(const OdeHandle& odeHandle, void* data, dGeomID o1, dGeomID o2) {
00066 if(collCallbackFun){
00067 collCallbackFun(odeHandle, data, o1, o2);
00068 return true;
00069 } else
00070 return false;
00071 }
00072
00073 void CompatSim::addCallback(GlobalData& globalData, bool draw, bool pause) {
00074 if(addCallbackFun)
00075 addCallbackFun(globalData, draw, pause);
00076 }
00077
00078 }