00001 // Copyright (C) 2006 University of Louisiana at Lafayette 00002 // Authors: Amit Puntambekar 00003 00004 #ifndef CAJUN_DRAW_TRI_H 00005 #define CAJUN_DRAW_TRI_H 00006 00007 #include "data_queue.H" 00008 #include "laser_data.H" 00009 #include "component_interface.H" 00010 00011 namespace cajun 00012 { 00013 # define m_triangle_data(m_num_tri_ctr, i) m_triangle_data[(m_num_tri_ctr)].triangle_ver[i] 00014 00015 class draw_triangles_t : public component_interface_t 00016 { 00017 public: 00018 draw_triangles_t (double cbviz_origin[3],int triangle_data_id, 00019 conf_t &conf, world_state_t *ws_); 00020 virtual ~draw_triangles_t (); 00021 void change_to_viz_coord(tri_ver_t *global_vertex_data_, 00022 unsigned i_, 00023 triangle_data_t global_triangle_data_); 00024 void update_data (double bot_pos_[3]); 00025 void display (double bot_pos[3]); 00026 void toggle_display (); 00027 private: 00028 data_queue_reader_t<triangle_data_t> *m_triangle_reader; 00029 unsigned m_num_triangles; 00030 unsigned m_num_tri_ctr; 00031 triangle_data_t *m_triangle_data; 00032 double cbviz_origin[3]; 00033 int *vertices; 00034 int *num_beams; 00035 float m_specular_color[4]; 00036 float m_diffuse_color[4]; 00037 float m_ambient_color[4]; 00038 }; 00039 } 00040 #endif