ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
00001 00007 #ifndef QTOPENGL_FOOTBOT_H 00008 #define QTOPENGL_FOOTBOT_H 00009 00010 namespace argos { 00011 class CQTOpenGLFootBot; 00012 class CFootBotEntity; 00013 } 00014 00015 #ifdef __APPLE__ 00016 #include <gl.h> 00017 #else 00018 #include <GL/gl.h> 00019 #endif 00020 00021 namespace argos { 00022 00023 class CQTOpenGLFootBot { 00024 00025 public: 00026 00027 CQTOpenGLFootBot(); 00028 00029 virtual ~CQTOpenGLFootBot(); 00030 00031 virtual void Draw(CFootBotEntity& c_entity); 00032 00033 protected: 00034 00039 void MakeWheel(); 00040 00042 void SetWhitePlasticMaterial(); 00044 void SetBlackTireMaterial(); 00046 void SetCircuitBoardMaterial(); 00048 void SetLEDMaterial(GLfloat f_red, GLfloat f_green, GLfloat f_blue); 00049 00051 void RenderWheel(); 00053 void RenderTrack(); 00055 void RenderBase(); 00057 void RenderGrippableSlice(); 00059 void RenderGripperMechanics(); 00061 void RenderGripperClaw(); 00063 void RenderRAB(); 00065 void RenderDistanceScannerSensor(); 00067 void RenderDistanceScanner(); 00069 void RenderIMX(); 00071 void RenderBeacon(); 00073 void RenderCamera(); 00074 00075 private: 00076 00078 GLuint m_unLists; 00079 00081 GLuint m_unBasicWheelList; 00082 00084 GLuint m_unWheelList; 00086 GLuint m_unTrackList; 00088 GLuint m_unBaseList; 00090 GLuint m_unGrippableSliceList; 00092 GLuint m_unGripperMechanicsList; 00094 GLuint m_unGripperClawList; 00096 GLuint m_unRABList; 00098 GLuint m_unDistanceScannerSensorList; 00100 GLuint m_unDistanceScannerList; 00102 GLuint m_unIMXList; 00104 GLuint m_unBeaconList; 00106 GLuint m_unCameraList; 00107 00110 GLuint m_unVertices; 00111 00112 /* Angle gap between two leds */ 00113 GLfloat m_fLEDAngleSlice; 00114 00115 }; 00116 00117 } 00118 00119 #endif