00001 // Copyright (C) 2006 University of Louisiana at Lafayette, 2006 00002 // Authors: Christopher Mire 00003 00004 #ifndef CAJUN_SIMULATED_OBJECT_H 00005 #define CAJUN_SIMULATED_OBJECT_H 00006 00007 #include "dynamic_object.H" 00008 #include "signal_line_sensor.H" 00009 #include "drive_sensor.H" 00010 #include "laser_sensor.H" 00011 #include "iteris_sensor.H" 00012 00013 namespace cajun 00014 { 00015 class drive_sensor_t; 00016 class signal_line_sensor_t; 00017 class laser_sensor_t; 00018 class iteris_sensor_t; 00019 00020 class simulated_object_t : public dynamic_object_t 00021 { 00022 public: 00023 simulated_object_t (); 00024 simulated_object_t (dWorldID *world_body, dSpaceID *world_space, dGeomID ground, 00025 object_info_t *object_data, rndf_tool_t *rndf_tool, 00026 rndf_t *m_rndf, access_data_t *access_data_, 00027 char const *lane_dir_); 00028 ~simulated_object_t (); 00029 bool update (float curr_time); 00030 void get_data (vector<obstacle_data_t> *&object_info, 00031 vector <obstacle_points_data_t> *&object_points_); 00032 float get_steering_pos (); 00033 float get_throttle_pos (); 00034 signal_line_data_t m_robotSignals; 00035 control_line_data_t m_robotControls; 00036 private: 00037 rndf_t *m_rndf; 00038 double m_bot_heading; 00039 control_data_t m_control_data; 00040 bool m_manual_control; 00041 drive_sensor_t *m_drive_sensor; 00042 signal_line_sensor_t *m_signal_line_sensor; 00043 std::vector<laser_sensor_t*> m_laser_sensor; 00044 iteris_sensor_t *m_iteris_sensor; 00045 }; 00046 } 00047 #endif