- Timestamp:
- Mar 5, 2017, 10:50:56 AM (8 years ago)
- Location:
- trunk/lib
- Files:
-
- 44 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/FlairFilter/src/SimuAhrs.cpp
r157 r158 27 27 namespace filter { 28 28 29 SimuAhrs::SimuAhrs(string name, uint32_t dev_id,29 SimuAhrs::SimuAhrs(string name, uint32_t modelId,uint32_t deviceId, 30 30 uint8_t priority) 31 : Ahrs(new SimuImu(name, dev_id, priority), name) {31 : Ahrs(new SimuImu(name, modelId,deviceId, priority), name) { 32 32 SetIsReady(true); 33 33 } -
trunk/lib/FlairFilter/src/SimuAhrs.h
r157 r158 33 33 * 34 34 * \param name name 35 * \param dev_id number id of the simulated Ahrs 35 * \param modelId Model id 36 * \param deviceId Ahrs id of the Model 36 37 * \param priority priority of the SimuImu Thread 37 38 */ 38 39 SimuAhrs(std::string name, 39 uint32_t dev_id, uint8_t priority);40 uint32_t modelId,uint32_t deviceId, uint8_t priority); 40 41 41 42 /*! -
trunk/lib/FlairMeta/src/SimuX4.cpp
r157 r158 38 38 namespace meta { 39 39 40 SimuX4::SimuX4(string name, int simu_id,string options,40 SimuX4::SimuX4(string name, uint32_t simu_id,string options, 41 41 filter::UavMultiplex *multiplex) 42 42 : Uav(name, multiplex) { … … 46 46 47 47 SetBldc(new SimuBldc(GetUavMultiplex(), GetUavMultiplex()->GetLayout(), 48 "motors", GetUavMultiplex()->MotorsCount(), simu_id ));49 SetUsRangeFinder(new SimuUs("us", simu_id, 60));50 SetAhrs(new SimuAhrs("imu", simu_id, 70));48 "motors", GetUavMultiplex()->MotorsCount(), simu_id,0)); 49 SetUsRangeFinder(new SimuUs("us", simu_id,0, 60)); 50 SetAhrs(new SimuAhrs("imu", simu_id, 0,70)); 51 51 Tab *bat_tab = new Tab(getFrameworkManager()->GetTabWidget(), "battery"); 52 52 SetBatteryMonitor(new BatteryMonitor(bat_tab->NewRow(), "battery")); … … 59 59 } 60 60 61 SetVerticalCamera( 62 new SimuCamera("simu_cam_v", camvWidth, camvHeight, 3, simu_id, 10));61 SetVerticalCamera(new SimuCamera("simu_cam_v", camvWidth, camvHeight, 3, simu_id,0, 10)); 62 //SetHorizontalCamera(new SimuCamera("simu_cam_h", 320, 240, 3, simu_id,1, 10)); 63 63 } 64 64 -
trunk/lib/FlairMeta/src/SimuX4.h
r157 r158 26 26 // simu_id: 0 if simulating only one UAV 27 27 //>0 otherwise 28 SimuX4(std::string name, int simu_id = 0,std::string options="",28 SimuX4(std::string name, uint32_t simu_id = 0,std::string options="", 29 29 filter::UavMultiplex *multiplex = NULL); 30 30 ~SimuX4(); -
trunk/lib/FlairMeta/src/SimuX8.cpp
r157 r158 37 37 namespace meta { 38 38 39 SimuX8::SimuX8(string name, int simu_id,string options,39 SimuX8::SimuX8(string name, uint32_t simu_id,string options, 40 40 filter::UavMultiplex *multiplex) 41 41 : Uav(name, multiplex) { … … 45 45 46 46 SetBldc(new SimuBldc(GetUavMultiplex(), GetUavMultiplex()->GetLayout(), 47 "motors", GetUavMultiplex()->MotorsCount(), simu_id ));48 SetUsRangeFinder(new SimuUs("us", simu_id, 60));49 SetAhrs(new SimuAhrs("imu", simu_id, 70));47 "motors", GetUavMultiplex()->MotorsCount(), simu_id,0)); 48 SetUsRangeFinder(new SimuUs("us", simu_id,0, 60)); 49 SetAhrs(new SimuAhrs("imu", simu_id, 0,70)); 50 50 Tab *bat_tab = new Tab(getFrameworkManager()->GetTabWidget(), "battery"); 51 51 SetBatteryMonitor(new BatteryMonitor(bat_tab->NewRow(), "battery")); 52 52 GetBatteryMonitor()->SetBatteryValue(12); 53 SetVerticalCamera( 54 new SimuCamera("simu_cam_v", 320, 240, 3, simu_id, 10));53 SetVerticalCamera(new SimuCamera("simu_cam_v", 320, 240, 3, simu_id,0, 10)); 54 //SetHorizontalCamera(new SimuCamera("simu_cam_h", 320, 240, 3, simu_id,1, 10)); 55 55 } 56 56 -
trunk/lib/FlairMeta/src/SimuX8.h
r157 r158 26 26 // simu_id: 0 if simulating only one UAV 27 27 //>0 otherwise 28 SimuX8(std::string name, int simu_id = 0,std::string options="",28 SimuX8(std::string name, uint32_t simu_id = 0,std::string options="", 29 29 filter::UavMultiplex *multiplex = NULL); 30 30 ~SimuX8(); -
trunk/lib/FlairSensorActuator/src/SimuBldc.cpp
r157 r158 33 33 34 34 SimuBldc::SimuBldc(const IODevice *parent, Layout *layout, string name, 35 uint8_t motors_count, uint32_t dev_id)35 uint8_t motors_count, uint32_t modelId,uint32_t deviceId) 36 36 : Bldc(parent, layout, name, motors_count) { 37 ostringstream dev_name;38 dev_name << "simu_bldc_" << dev_id;39 37 shmem = 40 new SharedMem(this, dev_name.str().c_str(), motors_count * sizeof(float));38 new SharedMem(this, ShMemName(modelId, deviceId), motors_count * sizeof(float)); 41 39 42 40 GroupBox *groupbox = new GroupBox(layout->NewRow(), "simubldc"); … … 47 45 48 46 SimuBldc::SimuBldc(const Object *parent, string name, uint8_t motors_count, 49 uint32_t dev_id)47 uint32_t modelId,uint32_t deviceId) 50 48 : Bldc(parent, name, motors_count) { 51 ostringstream dev_name;52 dev_name << "simu_bldc_" << dev_id;53 49 shmem = 54 new SharedMem(this, dev_name.str().c_str(), motors_count * sizeof(float));50 new SharedMem(this, ShMemName(modelId, deviceId), motors_count * sizeof(float)); 55 51 56 52 // reset values … … 65 61 66 62 SimuBldc::~SimuBldc() {} 63 64 string SimuBldc::ShMemName(uint32_t modelId,uint32_t deviceId) { 65 ostringstream dev_name; 66 dev_name << "simu" << modelId << "_bldc_" << deviceId; 67 return dev_name.str().c_str(); 68 } 67 69 68 70 void SimuBldc::SetMotors(float *value) { -
trunk/lib/FlairSensorActuator/src/SimuBldc.h
r15 r158 46 46 * \param name name 47 47 * \param motors_count number of motors 48 * \param dev_id device id 48 * \param modelId Model id 49 * \param deviceId Bldc id of the Model 49 50 */ 50 51 SimuBldc(const core::IODevice *parent, gui::Layout *layout, std::string name, 51 uint8_t motors_count, uint32_t dev_id);52 uint8_t motors_count, uint32_t modelId,uint32_t deviceId); 52 53 53 54 /*! … … 59 60 * \param name name 60 61 * \param motors_count number of motors 61 * \param dev_id device id 62 * \param modelId Model id 63 * \param deviceId Bldc id of the Model 62 64 */ 63 65 SimuBldc(const core::Object *parent, std::string name, uint8_t motors_count, 64 uint32_t dev_id);66 uint32_t modelId,uint32_t deviceId); 65 67 66 68 /*! … … 107 109 */ 108 110 void SetMotors(float *value); 109 111 112 std::string ShMemName(uint32_t modelId,uint32_t deviceId); 110 113 core::SharedMem *shmem; 111 114 gui::DoubleSpinBox *k; -
trunk/lib/FlairSensorActuator/src/SimuCamera.cpp
r157 r158 33 33 SimuCamera::SimuCamera(string name, 34 34 uint16_t width, uint16_t height, uint8_t channels, 35 uint32_t dev_id, uint8_t priority)35 uint32_t modelId,uint32_t deviceId, uint8_t priority) 36 36 : Thread(getFrameworkManager(), name, priority), 37 37 Camera(name, width, height, cvimage::Type::Format::BGR) { … … 43 43 44 44 ostringstream dev_name; 45 dev_name << "simu _cam_" << dev_id;46 shmem = new SharedMem((Thread *)this, dev_name.str().c_str(), buf_size, SharedMem::Type::producerConsumer);45 dev_name << "simu" << modelId << "_cam_" << deviceId; 46 shmem = new SharedMem((Thread *)this,ShMemName(modelId, deviceId), buf_size, SharedMem::Type::producerConsumer); 47 47 48 48 SetIsReady(true); … … 51 51 //simulation part 52 52 SimuCamera::SimuCamera(const IODevice *parent, string name, uint16_t width, 53 uint16_t height, uint8_t channels, uint32_t dev_id)53 uint16_t height, uint8_t channels, uint32_t modelId,uint32_t deviceId) 54 54 : Thread(parent, name, 0), Camera(parent,name) { 55 55 56 56 buf_size = width * height * channels+sizeof(Time); 57 57 58 ostringstream dev_name; 59 dev_name << "simu_cam_" << dev_id; 60 shmem = new SharedMem((Thread *)this, dev_name.str().c_str(), 58 shmem = new SharedMem((Thread *)this,ShMemName(modelId, deviceId), 61 59 buf_size, SharedMem::Type::producerConsumer); 62 60 shmemReadBuf=NULL; … … 69 67 Join(); 70 68 if(shmemReadBuf!=NULL) delete shmemReadBuf; 69 } 70 71 string SimuCamera::ShMemName(uint32_t modelId,uint32_t deviceId) { 72 ostringstream dev_name; 73 dev_name << "simu" << modelId << "_cam_" << deviceId; 74 return dev_name.str().c_str(); 71 75 } 72 76 -
trunk/lib/FlairSensorActuator/src/SimuCamera.h
r151 r158 42 42 * \param height height 43 43 * \param channels number of channels 44 * \param dev_id device id 44 * \param modelId Model id 45 * \param deviceId Camera id of the Model 45 46 * \param priority priority of the Thread 46 47 */ 47 48 SimuCamera(std::string name, 48 uint16_t width, uint16_t height, uint8_t channels, uint32_t dev_id,49 uint16_t width, uint16_t height, uint8_t channels, uint32_t modelId,uint32_t deviceId, 49 50 uint8_t priority); 50 51 … … 60 61 * \param height height 61 62 * \param channels number of channels 62 * \param dev_id device id 63 * \param modelId Model id 64 * \param deviceId Camera id of the Model 63 65 */ 64 66 SimuCamera(const core::IODevice *parent, std::string name, uint16_t width, 65 uint16_t height, uint8_t channels, uint32_t dev_id);67 uint16_t height, uint8_t channels, uint32_t modelId,uint32_t deviceId); 66 68 67 69 /*! … … 95 97 */ 96 98 void UpdateFrom(const core::io_data *data){}; 99 100 std::string ShMemName(uint32_t modelId,uint32_t deviceId); 97 101 98 102 size_t buf_size; -
trunk/lib/FlairSensorActuator/src/SimuGps.cpp
r157 r158 39 39 40 40 SimuGps::SimuGps(string name, 41 NmeaGps::NMEAFlags_t NMEAFlags, uint32_t deviceId,uint8_t priority)41 NmeaGps::NMEAFlags_t NMEAFlags, uint32_t modelId,uint32_t deviceId,uint8_t priority) 42 42 : NmeaGps(name, NMEAFlags),Thread(getFrameworkManager(), name, priority) { 43 43 … … 49 49 numberOfSatellites = new SpinBox(GetGroupBox()->NewRow(), "number of satellites", 1, 15, 1, 5); 50 50 51 ostringstream dev_name; 52 dev_name << "simu_gps_" << deviceId; 53 shmem = new SharedMem((Thread *)this, dev_name.str().c_str(), 51 shmem = new SharedMem((Thread *)this, ShMemName(modelId, deviceId), 54 52 sizeof(gps_states_t)); 55 53 … … 58 56 59 57 60 SimuGps::SimuGps(const IODevice *parent, string name, uint32_t deviceId)58 SimuGps::SimuGps(const IODevice *parent, string name, uint32_t modelId,uint32_t deviceId) 61 59 : NmeaGps(parent, name), Thread(parent, name, 0) { 62 60 dataRate = NULL; 63 61 64 ostringstream dev_name; 65 dev_name << "simu_gps_" << deviceId; 66 shmem = new SharedMem((Thread *)this, dev_name.str().c_str(), 62 shmem = new SharedMem((Thread *)this,ShMemName(modelId, deviceId), 67 63 sizeof(gps_states_t)); 68 64 … … 73 69 SafeStop(); 74 70 Join(); 71 } 72 73 string SimuGps::ShMemName(uint32_t modelId,uint32_t deviceId) { 74 ostringstream dev_name; 75 dev_name << "simu" << modelId << "_gps_" << deviceId; 76 return dev_name.str().c_str(); 75 77 } 76 78 -
trunk/lib/FlairSensorActuator/src/SimuGps.h
r137 r158 43 43 * \param name name 44 44 * \param NMEAFlags NMEA sentances to enable 45 * \param deviceId device id 45 * \param modelId Model id 46 * \param deviceId Gps id of the Model 46 47 * \param priority priority of the Thread 47 48 */ 48 49 SimuGps(std::string name, 49 NmeaGps::NMEAFlags_t NMEAFlags, uint32_t deviceId,uint8_t priority);50 NmeaGps::NMEAFlags_t NMEAFlags, uint32_t modelId,uint32_t deviceId,uint8_t priority); 50 51 51 52 /*! … … 57 58 * \param parent parent 58 59 * \param name name 59 * \param deviceId device id 60 * \param modelId Model id 61 * \param deviceId Gps id of the Model 60 62 */ 61 SimuGps(const core::IODevice *parent, std::string name, uint32_t deviceId);63 SimuGps(const core::IODevice *parent, std::string name, uint32_t modelId,uint32_t deviceId); 62 64 63 65 /*! … … 92 94 float vn; 93 95 } gps_states_t; 96 97 std::string ShMemName(uint32_t modelId,uint32_t deviceId); 94 98 95 99 core::SharedMem *shmem; -
trunk/lib/FlairSensorActuator/src/SimuImu.cpp
r157 r158 34 34 namespace sensor { 35 35 36 SimuImu::SimuImu(string name, uint32_t dev_id,36 SimuImu::SimuImu(string name, uint32_t modelId,uint32_t deviceId, 37 37 uint8_t priority) 38 38 : Imu(name), Thread(getFrameworkManager(), name, priority) { … … 40 40 new SpinBox(GetGroupBox()->NewRow(), "data rate", " Hz", 1, 500, 1, 200); 41 41 ahrsData = new AhrsData((Imu *)this); 42 43 ostringstream dev_name; 44 dev_name << "simu_imu_" << dev_id; 45 shmem = new SharedMem((Thread *)this, dev_name.str().c_str(), 42 43 shmem = new SharedMem((Thread *)this, ShMemName(modelId, deviceId), 46 44 sizeof(imu_states_t)); 47 45 SetIsReady(true); 48 46 } 49 47 50 SimuImu::SimuImu(const IODevice *parent, string name, uint32_t dev_id)48 SimuImu::SimuImu(const IODevice *parent, string name, uint32_t modelId,uint32_t deviceId) 51 49 : Imu(parent,name), Thread(parent, name, 0) { 52 50 dataRate = NULL; 53 51 54 ostringstream dev_name; 55 dev_name << "simu_imu_" << dev_id; 56 shmem = new SharedMem((Thread *)this, dev_name.str().c_str(), 52 shmem = new SharedMem((Thread *)this, ShMemName(modelId, deviceId), 57 53 sizeof(imu_states_t)); 58 54 SetIsReady(true); … … 62 58 SafeStop(); 63 59 Join(); 60 } 61 62 string SimuImu::ShMemName(uint32_t modelId,uint32_t deviceId) { 63 ostringstream dev_name; 64 dev_name << "simu" << modelId << "_imu_" << deviceId; 65 return dev_name.str().c_str(); 64 66 } 65 67 -
trunk/lib/FlairSensorActuator/src/SimuImu.h
r137 r158 42 42 * 43 43 * \param name name 44 * \param dev_id device id 44 * \param modelId Model id 45 * \param deviceId Imu id of the Model 45 46 * \param priority priority of the Thread 46 47 */ 47 48 SimuImu(std::string name, 48 uint32_t dev_id, uint8_t priority);49 uint32_t modelId,uint32_t deviceId, uint8_t priority); 49 50 50 51 /*! … … 56 57 * \param parent parent 57 58 * \param name name 58 * \param dev_id device id 59 * \param modelId Model id 60 * \param deviceId Imu id of the Model 59 61 */ 60 SimuImu(const core::IODevice *parent, std::string name, uint32_t dev_id);62 SimuImu(const core::IODevice *parent, std::string name, uint32_t modelId,uint32_t deviceId); 61 63 62 64 /*! … … 93 95 float wz; 94 96 } imu_states_t; 97 98 std::string ShMemName(uint32_t modelId,uint32_t deviceId); 95 99 96 100 gui::SpinBox *dataRate; -
trunk/lib/FlairSensorActuator/src/SimuLaser.cpp
r157 r158 33 33 34 34 SimuLaser::SimuLaser(string name, 35 uint32_t dev_id, uint8_t priority)35 uint32_t modelId,uint32_t deviceId, uint8_t priority) 36 36 : Thread(getFrameworkManager(), name, priority), LaserRangeFinder(name) { 37 37 data_rate = 38 38 new SpinBox(GetGroupBox()->NewRow(), "data rate", " Hz", 1, 500, 1, 50); 39 39 40 ostringstream dev_name; 41 dev_name << "simu_Laser_" << dev_id; 42 shmem = new SharedMem((Thread *)this, dev_name.str().c_str(), 40 shmem = new SharedMem((Thread *)this, ShMemName(modelId, deviceId), 43 41 360 * sizeof(float)); 44 42 SetIsReady(true); 45 43 } 46 44 47 SimuLaser::SimuLaser(const IODevice *parent, string name, uint32_t dev_id)45 SimuLaser::SimuLaser(const IODevice *parent, string name, uint32_t modelId,uint32_t deviceId) 48 46 : Thread(parent, name, 0), LaserRangeFinder(parent, name) { 49 47 data_rate = NULL; 50 48 51 ostringstream dev_name; 52 dev_name << "simu_Laser_" << dev_id; 53 shmem = new SharedMem((Thread *)this, dev_name.str().c_str(), 49 shmem = new SharedMem((Thread *)this, ShMemName(modelId, deviceId), 54 50 360 * sizeof(float)); 55 51 SetIsReady(true); … … 59 55 SafeStop(); 60 56 Join(); 57 } 58 59 string SimuLaser::ShMemName(uint32_t modelId,uint32_t deviceId) { 60 ostringstream dev_name; 61 dev_name << "simu" << modelId << "_laser_" << deviceId; 62 return dev_name.str().c_str(); 61 63 } 62 64 -
trunk/lib/FlairSensorActuator/src/SimuLaser.h
r137 r158 41 41 * 42 42 * \param name name 43 * \param dev_id device id 43 * \param modelId Model id 44 * \param deviceId LaserRangeFinder id of the Model 44 45 * \param priority priority of the Thread 45 46 */ 46 47 SimuLaser(std::string name, 47 uint32_t dev_id, uint8_t priority);48 uint32_t modelId,uint32_t deviceId, uint8_t priority); 48 49 49 50 /*! … … 55 56 * \param parent parent 56 57 * \param name name 57 * \param dev_id device id 58 * \param modelId Model id 59 * \param deviceId LaserRangeFinder id of the Model 58 60 */ 59 SimuLaser(const core::IODevice *parent, std::string name, uint32_t dev_id);61 SimuLaser(const core::IODevice *parent, std::string name, uint32_t modelId,uint32_t deviceId); 60 62 61 63 /*! … … 89 91 */ 90 92 void Run(void); 91 93 94 std::string ShMemName(uint32_t modelId,uint32_t deviceId); 92 95 gui::SpinBox *data_rate; 93 96 }; -
trunk/lib/FlairSensorActuator/src/SimuUs.cpp
r157 r158 32 32 namespace sensor { 33 33 34 SimuUs::SimuUs(string name, uint32_t dev_id,34 SimuUs::SimuUs(string name, uint32_t modelId,uint32_t deviceId, 35 35 uint8_t priority) 36 36 : Thread(getFrameworkManager(), name, priority), UsRangeFinder( name) { … … 38 38 new SpinBox(GetGroupBox()->NewRow(), "data rate", " Hz", 1, 500, 1, 50); 39 39 40 ostringstream dev_name; 41 dev_name << "simu_us_" << dev_id; 42 shmem = new SharedMem((Thread *)this, dev_name.str().c_str(), sizeof(float)); 40 shmem = new SharedMem((Thread *)this, ShMemName(modelId, deviceId), sizeof(float)); 43 41 44 42 SetIsReady(true); 45 43 } 46 44 47 SimuUs::SimuUs(const IODevice *parent, string name, uint32_t dev_id)45 SimuUs::SimuUs(const IODevice *parent, string name,uint32_t modelId,uint32_t deviceId) 48 46 : Thread(parent, name, 0), UsRangeFinder(parent,name) { 49 47 data_rate = NULL; 50 48 51 ostringstream dev_name; 52 dev_name << "simu_us_" << dev_id; 53 shmem = new SharedMem((Thread *)this, dev_name.str().c_str(), sizeof(float)); 49 shmem = new SharedMem((Thread *)this, ShMemName(modelId, deviceId), sizeof(float)); 54 50 55 51 SetIsReady(true); … … 59 55 SafeStop(); 60 56 Join(); 57 } 58 59 string SimuUs::ShMemName(uint32_t modelId,uint32_t deviceId) { 60 ostringstream dev_name; 61 dev_name << "simu" << modelId << "_us_" << deviceId; 62 return dev_name.str().c_str(); 61 63 } 62 64 -
trunk/lib/FlairSensorActuator/src/SimuUs.h
r137 r158 41 41 * 42 42 * \param name name 43 * \param dev_id device id 43 * \param modelId Model id 44 * \param deviceId UsRangeFinder id of the Model 44 45 * \param priority priority of the Thread 45 46 */ 46 47 SimuUs(std::string name, 47 uint32_t dev_id, uint8_t priority);48 uint32_t modelId,uint32_t deviceId, uint8_t priority); 48 49 49 50 /*! … … 55 56 * \param parent parent 56 57 * \param name name 57 * \param dev_id device id 58 * \param modelId Model id 59 * \param deviceId UsRangeFinder id of the Model 58 60 */ 59 SimuUs(const core::IODevice *parent, std::string name, uint32_t dev_id);61 SimuUs(const core::IODevice *parent, std::string name, uint32_t modelId,uint32_t deviceId); 60 62 61 63 /*! … … 89 91 */ 90 92 void Run(void); 91 93 94 std::string ShMemName(uint32_t modelId,uint32_t deviceId); 92 95 gui::SpinBox *data_rate; 93 96 }; -
trunk/lib/FlairSimulator/src/Castle.cpp
r15 r158 17 17 18 18 #include "Castle.h" 19 #include "Simulator.h"20 19 #include <IrrlichtDevice.h> 21 20 #include <IFileSystem.h> … … 27 26 namespace simulator { 28 27 29 Castle::Castle( const Simulator *parent,int app_width, int app_height,28 Castle::Castle(int app_width, int app_height, 30 29 int scene_width, int scene_height, std::string media_path) 31 : Gui( parent,"Castle", app_width, app_height, scene_width, scene_height,30 : Gui("Castle", app_width, app_height, scene_width, scene_height, 32 31 media_path) { 33 32 // carte -
trunk/lib/FlairSimulator/src/Castle.h
r15 r158 23 23 class Castle : public Gui { 24 24 public: 25 Castle( const flair::simulator::Simulator *parent,int app_width,25 Castle(int app_width, 26 26 int app_height, int scene_width, int scene_height, 27 27 std::string media_path); -
trunk/lib/FlairSimulator/src/GenericObject.cpp
r134 r158 37 37 namespace simulator { 38 38 39 GenericObject::GenericObject( Simulator *parent,IMesh *mesh)39 GenericObject::GenericObject(IMesh *mesh) 40 40 { 41 41 meshSceneNode=getGui()->getSceneManager()->addMeshSceneNode(mesh); … … 46 46 meshSceneNode->setMaterialFlag(EMF_LIGHTING, false); 47 47 48 parent->pimpl_->objects.push_back(this);48 getSimulator()->pimpl_->objects.push_back(this); 49 49 } 50 50 -
trunk/lib/FlairSimulator/src/Gui.cpp
r69 r158 133 133 } 134 134 135 Gui::Gui( const Simulator *parent,std::string name, int app_width,135 Gui::Gui(std::string name, int app_width, 136 136 int app_height, int scene_width, int scene_height, 137 137 std::string media_path, E_DRIVER_TYPE driver_type) 138 : Object( parent, name, "Gui") {138 : Object(getSimulator(), name, "Gui") { 139 139 if (gui_ != NULL) 140 140 Err("Gui should be instanced only one time\n"); -
trunk/lib/FlairSimulator/src/Gui.h
r145 r158 48 48 namespace flair { 49 49 namespace simulator { 50 class Simulator;51 50 52 51 class Gui: public core::Object { … … 55 54 56 55 public: 57 Gui( const Simulator *parent,std::string name, int app_width, int app_height,56 Gui(std::string name, int app_width, int app_height, 58 57 int scene_width, int scene_height, std::string media_path, 59 58 irr::video::E_DRIVER_TYPE driver_type = irr::video::EDT_OPENGL); -
trunk/lib/FlairSimulator/src/Man.cpp
r157 r158 18 18 #include "Man.h" 19 19 #include "Gui.h" 20 #include "Simulator.h"21 #include "Simulator_impl.h"22 20 #include "Euler.h" 23 21 #include <ISceneManager.h> … … 38 36 namespace simulator { 39 37 40 Man::Man( const Simulator *parent, std::string name) : Model(parent, name) {38 Man::Man(std::string name,uint32_t modelId) : Model(name,modelId) { 41 39 node = getGui()->getSceneManager()->addAnimatedMeshSceneNode( 42 40 getGui()->getMesh("ninja.b3d"), getSceneNode(), -1, vector3df(0, 0, 0), -
trunk/lib/FlairSimulator/src/Man.h
r15 r158 34 34 namespace flair { 35 35 namespace simulator { 36 class Simulator;37 36 38 37 class Man : private Model { 39 38 public: 40 Man( const Simulator *parent, std::string name);39 Man(std::string name,uint32_t modelId); 41 40 ~Man(); 42 41 -
trunk/lib/FlairSimulator/src/Model.cpp
r70 r158 18 18 #include "Model_impl.h" 19 19 #include "Simulator.h" 20 #include "Simulator_impl.h"21 20 #include <DoubleSpinBox.h> 22 21 23 22 #ifdef GL 24 23 #include "FollowMeCamera.h" 25 #include "Gui.h"26 24 #include <ICameraSceneNode.h> 27 25 using namespace irr; … … 36 34 namespace simulator { 37 35 38 Model::Model(const Simulator *parent, std::string name) 39 : IODevice(parent, name) { 40 #ifdef GL 41 pimpl_ = 42 new Model_impl(this, name, getGui()->getSceneManager(), parent->pimpl_); 43 #else 44 pimpl_ = new Model_impl(this, name, parent->pimpl_); 45 #endif 46 parent->pimpl_->models.push_back(this); 36 Model::Model(std::string name,uint32_t modelId) 37 : IODevice(getSimulator(), name) { 38 pimpl_ = new Model_impl(this, name,modelId); 47 39 } 48 40 … … 79 71 float Model::dT(void) const { return pimpl_->dT->Value(); } 80 72 73 int Model::GetId(void) const { 74 return pimpl_->modelId; 75 } 76 81 77 } // end namespace simulator 82 78 } // end namespace flair -
trunk/lib/FlairSimulator/src/Model.h
r69 r158 51 51 namespace flair { 52 52 namespace simulator { 53 class Simulator;54 53 class FollowMeCamera; 55 54 … … 65 64 66 65 public: 67 Model( const Simulator *parent, std::string name);66 Model(std::string name,uint32_t modelId); 68 67 virtual ~Model(); 69 68 … … 93 92 #endif 94 93 gui::TabWidget *GetTabWidget(void) const; 94 int GetId(void) const; 95 95 96 96 protected: -
trunk/lib/FlairSimulator/src/Model_impl.cpp
r151 r158 18 18 #include "Model_impl.h" 19 19 #include "Simulator.h" 20 #include "Simulator_impl.h" 20 21 #include "TabWidget.h" 21 22 #include "Tab.h" … … 51 52 52 53 #ifdef GL 53 Model_impl::Model_impl(Model *self, std::string name, 54 ISceneManager *scenemanager, vrpn_Connection_IP *vrpn) 55 : ISceneNode(scenemanager->getRootSceneNode(), scenemanager, -1), 56 Thread(self, name, 50), vrpn_Tracker(name.c_str(), vrpn) 54 Model_impl::Model_impl(Model *self, std::string name,uint32_t modelId) 55 : ISceneNode(getGui()->getSceneManager()->getRootSceneNode(), getGui()->getSceneManager(), -1), 56 Thread(self, name, 50), vrpn_Tracker(name.c_str(), getSimulator()->pimpl_) 57 57 58 58 #else 59 Model_impl::Model_impl(Model *self, std::string name, vrpn_Connection_IP *vrpn)60 : Thread(self, name, 50), vrpn_Tracker(name.c_str(), vrpn)59 Model_impl::Model_impl(Model *self, std::string name,uint32_t modelId) 60 : Thread(self, name, 50), vrpn_Tracker(name.c_str(), getSimulator()->pimpl_) 61 61 #endif 62 62 { 63 63 this->self = self; 64 this->modelId=modelId; 64 65 65 66 #ifdef GL … … 131 132 132 133 self->AddDataToLog(output); 134 135 getSimulator()->pimpl_->models.push_back(self); 133 136 } 134 137 -
trunk/lib/FlairSimulator/src/Parser.cpp
r138 r158 40 40 namespace flair { 41 41 namespace simulator { 42 Parser::Parser( Simulator *parent,int app_width, int app_height,42 Parser::Parser(int app_width, int app_height, 43 43 int scene_width, int scene_height, std::string media_path, 44 44 std::string xmlFile) 45 : Gui( parent,"Parser", app_width, app_height, scene_width, scene_height,45 : Gui("Parser", app_width, app_height, scene_width, scene_height, 46 46 media_path) { 47 47 this->media_path = media_path; 48 this->parent = parent;49 48 xmlNode *root_element = NULL; 50 49 doc = xmlReadFile(xmlFile.c_str(), NULL, 0); … … 121 120 if (fp != NULL) { 122 121 GenericObject *object = 123 new GenericObject( parent,getGui()->getMesh((char *)xmlGetProp(cur_node, (xmlChar *)"model")));122 new GenericObject(getGui()->getMesh((char *)xmlGetProp(cur_node, (xmlChar *)"model"))); 124 123 object->setPosition( 125 124 getMeshVect(cur_node->children, (xmlChar *)"position")); … … 140 139 getScolor(cur_node->children)); 141 140 //SColor(100, 255, 100, 100)); 142 GenericObject *object = new GenericObject( parent,mesh);141 GenericObject *object = new GenericObject(mesh); 143 142 object->setPosition(getMeshVect(cur_node->children, (xmlChar *)"position")); 144 143 object->setRotation(getMeshVect(cur_node->children, (xmlChar *)"rotation")); … … 152 151 atof((char *)xmlGetProp(cur_node, (xmlChar *)"eight")))); 153 152 154 GenericObject *object = 155 new GenericObject(parent, mesh); 153 GenericObject *object =new GenericObject(mesh); 156 154 object->setPosition( 157 155 getMeshVect(cur_node->children, (xmlChar *)"position")); -
trunk/lib/FlairSimulator/src/Parser.h
r138 r158 39 39 */ 40 40 public: 41 Parser( Simulator *parent,int app_width, int app_height, int scene_width,41 Parser(int app_width, int app_height, int scene_width, 42 42 int scene_height, std::string media_path, std::string xmlFile); 43 43 ~Parser(); … … 46 46 xmlDoc *doc; 47 47 std::string media_path; 48 Simulator *parent;49 48 void processElements(xmlNode *a_node); 50 49 void processObjects(xmlNode *a_node); -
trunk/lib/FlairSimulator/src/SimuCameraGL.cpp
r151 r158 45 45 46 46 SimuCameraGL::SimuCameraGL(const Model *parent, std::string name, int width, 47 int height, int x, int y, int dev_id)48 : SimuCamera(parent, name, width, height, 3, dev_id), SensorGL(parent) {47 int height, int x, int y, uint32_t modelId,uint32_t deviceId) 48 : SimuCamera(parent, name, width, height, 3, modelId,deviceId), SensorGL(parent) { 49 49 smgr = getGui()->getSceneManager(); 50 50 camera = smgr->addCameraSceneNode(); 51 51 camera->addAnimator(this); 52 camera->setAspectRatio( 4.0f / 3.0f); // on force a cause du view port52 camera->setAspectRatio((float)width /(float)height); // on force a cause du view port 53 53 54 54 this->width = width; -
trunk/lib/FlairSimulator/src/SimuCameraGL.h
r151 r158 51 51 // top left origin 52 52 SimuCameraGL(const simulator::Model *parent, std::string name, int width, 53 int height, int x, int y, int dev_id);53 int height, int x, int y, uint32_t modelId,uint32_t deviceId); 54 54 ~SimuCameraGL(); 55 55 //! Sets the value of the near clipping plane. (default: 1.0f) -
trunk/lib/FlairSimulator/src/SimuLaserGL.cpp
r15 r158 38 38 namespace flair { 39 39 namespace sensor { 40 SimuLaserGL::SimuLaserGL(const Model *parent, std::string name, int dev_id)41 : SimuLaser(parent, name, dev_id), SensorGL(parent) {40 SimuLaserGL::SimuLaserGL(const Model *parent, std::string name, uint32_t modelId,uint32_t deviceId) 41 : SimuLaser(parent, name, modelId,deviceId), SensorGL(parent) { 42 42 Tab *setup_tab = new Tab(parent->GetTabWidget(), name); 43 43 position = new Vector3DSpinBox(setup_tab->NewRow(), "position", -2, 2, .01); -
trunk/lib/FlairSimulator/src/SimuLaserGL.h
r15 r158 38 38 class SimuLaserGL : public SimuLaser, public SensorGL { 39 39 public: 40 SimuLaserGL(const simulator::Model *parent, std::string name, int dev_id);40 SimuLaserGL(const simulator::Model *parent, std::string name, uint32_t modelId,uint32_t deviceId); 41 41 ~SimuLaserGL(); 42 42 -
trunk/lib/FlairSimulator/src/SimuUsGL.cpp
r15 r158 38 38 namespace flair { 39 39 namespace sensor { 40 SimuUsGL::SimuUsGL(const Model *parent, std::string name, int dev_id)41 : SimuUs(parent, name, dev_id), SensorGL(parent) {40 SimuUsGL::SimuUsGL(const Model *parent, std::string name, uint32_t modelId,uint32_t deviceId) 41 : SimuUs(parent, name, modelId,deviceId), SensorGL(parent) { 42 42 Tab *setup_tab = new Tab(parent->GetTabWidget(), name); 43 43 position = new Vector3DSpinBox(setup_tab->NewRow(), "position", -2, 2, .01); -
trunk/lib/FlairSimulator/src/SimuUsGL.h
r15 r158 38 38 class SimuUsGL : public SimuUs, public SensorGL { 39 39 public: 40 SimuUsGL(const simulator::Model *parent, std::string name, int dev_id);40 SimuUsGL(const simulator::Model *parent, std::string name, uint32_t modelId,uint32_t deviceId); 41 41 ~SimuUsGL(); 42 42 -
trunk/lib/FlairSimulator/src/Simulator.h
r15 r158 22 22 23 23 class Simulator_impl; 24 class Model_impl; 24 25 25 26 namespace flair { … … 36 37 37 38 class Simulator : public core::FrameworkManager { 38 friend class Model;39 friend class ::Model_impl; 39 40 friend class Gui; 40 41 friend class GenericObject; -
trunk/lib/FlairSimulator/src/X4.cpp
r157 r158 16 16 17 17 #include "X4.h" 18 #include "Simulator.h"19 18 #include <SimuBldc.h> 20 19 #include <TabWidget.h> … … 46 45 namespace simulator { 47 46 48 X4::X4( const Simulator *parent, std::string name, int dev_id)49 : Model( parent, name) {47 X4::X4(std::string name, uint32_t modelId) 48 : Model(name,modelId) { 50 49 Tab *setup_tab = new Tab(GetTabWidget(), "model"); 51 50 m = new DoubleSpinBox(setup_tab->NewRow(), "mass (kg):", 0, 20, 0.1); … … 75 74 5); // moment d'inertie d'un axe (N.m.s²/rad) 76 75 77 motors = new SimuBldc(this, name, 4, dev_id);76 motors = new SimuBldc(this, name, 4, modelId,0); 78 77 79 78 SetIsReady(true); … … 96 95 97 96 // cylinders are aligned with y axis 98 red_arm = geo->createCylinderMesh(2.5, 100, 16, SColor(0, 255, 0, 0));99 black_arm = geo->createCylinderMesh(2.5, 100, 16, SColor(0, 128, 128, 128));100 motor = geo->createCylinderMesh(7.5, 15, 16); //,SColor(0, 128, 128, 128));97 IMesh *red_arm = geo->createCylinderMesh(2.5, 100, 16, SColor(0, 255, 0, 0)); 98 IMesh *black_arm = geo->createCylinderMesh(2.5, 100, 16, SColor(0, 128, 128, 128)); 99 IMesh *motor = geo->createCylinderMesh(7.5, 15, 16); //,SColor(0, 128, 128, 128)); 101 100 // geo->drop(); 102 101 103 102 ITexture *texture = getGui()->getTexture("carbone.jpg"); 104 fl_arm = new MeshSceneNode(this, red_arm, vector3df(0, 0, 0),103 MeshSceneNode *fl_arm = new MeshSceneNode(this, red_arm, vector3df(0, 0, 0), 105 104 vector3df(0, 0, -135)); 106 fr_arm = new MeshSceneNode(this, red_arm, vector3df(0, 0, 0),105 MeshSceneNode *fr_arm = new MeshSceneNode(this, red_arm, vector3df(0, 0, 0), 107 106 vector3df(0, 0, -45)); 108 rl_arm = new MeshSceneNode(this, black_arm, vector3df(0, 0, 0),107 MeshSceneNode *rl_arm = new MeshSceneNode(this, black_arm, vector3df(0, 0, 0), 109 108 vector3df(0, 0, 135), texture); 110 rr_arm = new MeshSceneNode(this, black_arm, vector3df(0, 0, 0),109 MeshSceneNode *rr_arm = new MeshSceneNode(this, black_arm, vector3df(0, 0, 0), 111 110 vector3df(0, 0, 45), texture); 112 111 113 112 texture = getGui()->getTexture("metal047.jpg"); 114 fl_motor = new MeshSceneNode(this, motor, vector3df(70.71, -70.71, 2.5),113 MeshSceneNode *fl_motor = new MeshSceneNode(this, motor, vector3df(70.71, -70.71, 2.5), 115 114 vector3df(90, 0, 0), texture); 116 fr_motor = new MeshSceneNode(this, motor, vector3df(70.71, 70.71, 2.5),115 MeshSceneNode *fr_motor = new MeshSceneNode(this, motor, vector3df(70.71, 70.71, 2.5), 117 116 vector3df(90, 0, 0), texture); 118 rl_motor = new MeshSceneNode(this, motor, vector3df(-70.71, -70.71, 2.5),117 MeshSceneNode *rl_motor = new MeshSceneNode(this, motor, vector3df(-70.71, -70.71, 2.5), 119 118 vector3df(90, 0, 0), texture); 120 rr_motor = new MeshSceneNode(this, motor, vector3df(-70.71, 70.71, 2.5),119 MeshSceneNode *rr_motor = new MeshSceneNode(this, motor, vector3df(-70.71, 70.71, 2.5), 121 120 vector3df(90, 0, 0), texture); 122 121 -
trunk/lib/FlairSimulator/src/X4.h
r157 r158 32 32 } 33 33 34 #ifdef GL35 namespace irr {36 namespace scene {37 class IMesh;38 }39 }40 #endif41 42 34 namespace flair { 43 35 namespace simulator { 44 class Simulator;45 36 class Blade; 46 class MeshSceneNode;47 37 48 38 class X4 : public Model { 49 39 public: 50 X4( const Simulator *parent, std::string name, int dev_id);40 X4(std::string name, uint32_t modelId); 51 41 ~X4(); 52 42 #ifdef GL … … 55 45 56 46 protected: 57 irr::scene::IMesh *red_arm, *black_arm, *motor;58 MeshSceneNode *fl_arm, *fr_arm, *rl_arm, *rr_arm;59 MeshSceneNode *fl_motor, *fr_motor, *rl_motor, *rr_motor;60 47 Blade *fl_blade, *fr_blade, *rl_blade, *rr_blade; 61 48 core::Mutex *motor_speed_mutex; -
trunk/lib/FlairSimulator/src/X8.cpp
r157 r158 16 16 17 17 #include "X8.h" 18 #include "Simulator.h"19 18 #include <SimuBldc.h> 20 19 #include <TabWidget.h> … … 46 45 namespace simulator { 47 46 48 X8::X8(const Simulator *parent, std::string name, int dev_id) 49 : Model(parent, name) { 47 X8::X8(std::string name, uint32_t modelId): Model( name,modelId) { 50 48 Tab *setup_tab = new Tab(GetTabWidget(), "model"); 51 49 m = new DoubleSpinBox(setup_tab->NewRow(), "mass (kg):", 0, 20, 0.1); … … 84 82 0.1); // coefficient de forme des helices 1<S=1+Ss/Sprop<2 (sans unite) 85 83 86 motors = new SimuBldc(this, name, 8, dev_id);84 motors = new SimuBldc(this, name, 8, modelId,0); 87 85 88 86 SetIsReady(true); … … 101 99 102 100 // cylinders are aligned with y axis 103 red_arm = geo->createCylinderMesh(2.5, 100, 16, SColor(0, 255, 0, 0));104 black_arm = geo->createCylinderMesh(2.5, 100, 16, SColor(0, 128, 128, 128));105 motor = geo->createCylinderMesh(7.5, 15, 16); //,SColor(0, 128, 128, 128));101 IMesh *red_arm = geo->createCylinderMesh(2.5, 100, 16, SColor(0, 255, 0, 0)); 102 IMesh *black_arm = geo->createCylinderMesh(2.5, 100, 16, SColor(0, 128, 128, 128)); 103 IMesh *motor = geo->createCylinderMesh(7.5, 15, 16); //,SColor(0, 128, 128, 128)); 106 104 // geo->drop(); 107 105 108 106 ITexture *texture = getGui()->getTexture("carbone.jpg"); 109 fl_arm = new MeshSceneNode(this, red_arm, vector3df(0, 0, 0),107 MeshSceneNode *fl_arm = new MeshSceneNode(this, red_arm, vector3df(0, 0, 0), 110 108 vector3df(0, 0, -135)); 111 fr_arm = new MeshSceneNode(this, red_arm, vector3df(0, 0, 0),109 MeshSceneNode *fr_arm = new MeshSceneNode(this, red_arm, vector3df(0, 0, 0), 112 110 vector3df(0, 0, -45)); 113 rl_arm = new MeshSceneNode(this, black_arm, vector3df(0, 0, 0),111 MeshSceneNode *rl_arm = new MeshSceneNode(this, black_arm, vector3df(0, 0, 0), 114 112 vector3df(0, 0, 135), texture); 115 rr_arm = new MeshSceneNode(this, black_arm, vector3df(0, 0, 0),113 MeshSceneNode *rr_arm = new MeshSceneNode(this, black_arm, vector3df(0, 0, 0), 116 114 vector3df(0, 0, 45), texture); 117 115 118 116 texture = getGui()->getTexture("metal047.jpg"); 119 tfl_motor = new MeshSceneNode(this, motor, vector3df(70.71, -70.71, 2.5),120 vector3df(90, 0, 0), texture); 121 tfr_motor = new MeshSceneNode(this, motor, vector3df(70.71, 70.71, 2.5),122 vector3df(90, 0, 0), texture); 123 trl_motor = new MeshSceneNode(this, motor, vector3df(-70.71, -70.71, 2.5),124 vector3df(90, 0, 0), texture); 125 trr_motor = new MeshSceneNode(this, motor, vector3df(-70.71, 70.71, 2.5),126 vector3df(90, 0, 0), texture); 127 128 bfl_motor = new MeshSceneNode(this, motor, vector3df(70.71, -70.71, -17.5),129 vector3df(90, 0, 0), texture); 130 bfr_motor = new MeshSceneNode(this, motor, vector3df(70.71, 70.71, -17.5),131 vector3df(90, 0, 0), texture); 132 brl_motor = new MeshSceneNode(this, motor, vector3df(-70.71, -70.71, -17.5),133 vector3df(90, 0, 0), texture); 134 brr_motor = new MeshSceneNode(this, motor, vector3df(-70.71, 70.71, -17.5),117 MeshSceneNode *tfl_motor = new MeshSceneNode(this, motor, vector3df(70.71, -70.71, 2.5), 118 vector3df(90, 0, 0), texture); 119 MeshSceneNode *tfr_motor = new MeshSceneNode(this, motor, vector3df(70.71, 70.71, 2.5), 120 vector3df(90, 0, 0), texture); 121 MeshSceneNode *trl_motor = new MeshSceneNode(this, motor, vector3df(-70.71, -70.71, 2.5), 122 vector3df(90, 0, 0), texture); 123 MeshSceneNode *trr_motor = new MeshSceneNode(this, motor, vector3df(-70.71, 70.71, 2.5), 124 vector3df(90, 0, 0), texture); 125 126 MeshSceneNode *bfl_motor = new MeshSceneNode(this, motor, vector3df(70.71, -70.71, -17.5), 127 vector3df(90, 0, 0), texture); 128 MeshSceneNode *bfr_motor = new MeshSceneNode(this, motor, vector3df(70.71, 70.71, -17.5), 129 vector3df(90, 0, 0), texture); 130 MeshSceneNode *brl_motor = new MeshSceneNode(this, motor, vector3df(-70.71, -70.71, -17.5), 131 vector3df(90, 0, 0), texture); 132 MeshSceneNode *brr_motor = new MeshSceneNode(this, motor, vector3df(-70.71, 70.71, -17.5), 135 133 vector3df(90, 0, 0), texture); 136 134 -
trunk/lib/FlairSimulator/src/X8.h
r157 r158 32 32 } 33 33 34 #ifdef GL35 namespace irr {36 namespace scene {37 class IMesh;38 }39 }40 #endif41 42 34 namespace flair { 43 35 namespace simulator { 44 class Simulator;45 36 class Blade; 46 class MeshSceneNode;47 37 48 38 class X8 : public Model { 49 39 public: 50 X8( const Simulator *parent, std::string name, int dev_id);40 X8(std::string name, uint32_t modelId); 51 41 ~X8(); 52 42 virtual void Draw(void); … … 55 45 protected: 56 46 #ifdef GL 57 irr::scene::IMesh *red_arm, *black_arm, *motor;58 MeshSceneNode *fl_arm, *fr_arm, *rl_arm, *rr_arm;59 MeshSceneNode *tfl_motor, *tfr_motor, *trl_motor, *trr_motor;60 MeshSceneNode *bfl_motor, *bfr_motor, *brl_motor, *brr_motor;61 47 Blade *tfl_blade, *tfr_blade, *trl_blade, *trr_blade; 62 48 Blade *bfl_blade, *bfr_blade, *brl_blade, *brr_blade; -
trunk/lib/FlairSimulator/src/unexported/GenericObject.h
r134 r158 34 34 namespace flair { 35 35 namespace simulator { 36 class Simulator;37 36 38 37 class GenericObject { … … 40 39 41 40 public: 42 GenericObject( Simulator *parent,irr::scene::IMesh *mesh);41 GenericObject(irr::scene::IMesh *mesh); 43 42 virtual ~GenericObject(); 44 43 -
trunk/lib/FlairSimulator/src/unexported/Model_impl.h
r69 r158 66 66 { 67 67 public: 68 #ifdef GL 69 Model_impl(flair::simulator::Model *self, std::string name, 70 irr::scene::ISceneManager *scenemanager, vrpn_Connection_IP *vrpn); 71 #else 72 Model_impl(flair::simulator::Model *self, std::string name, 73 vrpn_Connection_IP *vrpn); 74 #endif 68 Model_impl(flair::simulator::Model *self, std::string name,uint32_t modelId); 75 69 ~Model_impl(); 76 70 … … 100 94 flair::gui::TabWidget *tabwidget; 101 95 flair::gui::DoubleSpinBox *dT; 96 int modelId; 102 97 103 98 private: -
trunk/lib/FlairSimulator/src/unexported/Simulator_impl.h
r15 r158 29 29 } 30 30 31 class Model_impl; 32 31 33 class Simulator_impl : public vrpn_Connection_IP, private flair::core::Thread { 32 friend class flair::simulator::Model;34 friend class ::Model_impl; 33 35 friend class flair::simulator::GenericObject; 34 36
Note:
See TracChangeset
for help on using the changeset viewer.