00001 #ifndef CD_Range_Sensor_h 00002 #define CD_Range_Sensor_h 1 00003 00004 #include "Universe\Universe.h" 00005 #include "robots\R_OpenChain.h" 00006 #include "CollisionDetectors\CD_BasicStyle.h" 00007 #include "CollisionDetectors\CD_LinearContinuous.h" 00008 #include "CollisionDetectors\CD_Vcollide.h" 00009 #include "geometry\geo_rangesensor\Range_Sensor.h" 00010 #include "Octree_Data_Fuser.h" 00011 00012 const char CD_Range_Sensor_Settings_Filename[20] = "CD_Range_Sensor.txt"; 00013 const char CD_Range_Sensor_Octree_Filename[9] = "test.txt"; 00014 00015 #pragma warning( push ) 00016 #pragma warning( disable : 4250 ) 00017 00018 class CD_Range_Sensor 00019 : 00020 public CD_BasicStyle, 00021 public CD_LinearContinuous 00022 //note: is CD_BasicStyle the appropriate parent??? 00023 //I hope this doesn't do anything with the universe because it's not the universe 00024 //we want to use for the sensor based collison dectection 00025 00026 { 00027 00028 public: 00029 00030 #ifdef WIN32 00031 CWnd* cWindow_ptr; 00032 00033 HGLRC hglrc_var; 00034 #endif 00035 00036 bool isMultiThreaded; 00037 00038 Octree_Data_Fuser dataFuser; 00039 00040 CD_Range_Sensor( Universe& universe); 00041 00042 CD_Range_Sensor (const CD_Range_Sensor& right); 00043 00044 virtual ~CD_Range_Sensor(); 00045 00046 void GL_Display_Octree (); 00047 00048 void Take_Picture(Configuration newconfig); 00049 00050 CollisionDetectorBase* CD_Range_Sensor::Clone () const; 00051 00052 virtual bool IsInterfering (const Configuration& config); 00053 00054 protected: 00055 00056 00057 bool savetofile; 00058 00059 Universe robot_universe; //universe with only robots, no obstacles 00060 00061 Universe* up; //points to the original universe which was passed in with constructor 00062 //(universe must not move) 00063 00064 Range_Sensor* FindFirstCamera (Entity* entity); 00065 00066 std::vector< Entity* > allorigEntities; 00067 00068 CD_Vcollide* lv; //local vcollide pointer to free/unknown 00069 00070 CD_Vcollide* lv_obstacle; //local vcollide pointer to obstacle/no obstacle 00071 00072 00073 private: 00074 00075 }; 00076 00077 #pragma warning( pop ) 00078 00079 #endif