00001 // Copyright (C) 2004 University of Louisiana at Lafayette 00002 // Authors: Suresh Golconda 00003 00004 #ifndef CAJUN_DRAW_VPATH_H 00005 #define CAJUN_DRAW_VPATH_H 00006 00007 #include "data_queue.H" 00008 #include "cbviz_util.H" 00009 #include "conf.H" 00010 #include <vector> 00011 #include "component_interface.H" 00012 00013 namespace cajun 00014 { 00015 class draw_vpath_t : public component_interface_t 00016 { 00017 public: 00018 draw_vpath_t (double cbivz_origin[3], conf_t &conf, 00019 world_state_t *ws_); 00020 virtual ~draw_vpath_t () {;}; 00021 void update_data (double bot_pos_[3]); 00022 void display (double bot_pos[3]); 00023 void toggle_display (); 00024 void toggle_filter_type (); 00025 private: 00026 std::vector <vpath_data_t> *m_vpath_to_draw; 00027 std::vector <vpath_data_t> *m_vpath_to_populate; 00028 data_queue_reader_t<vpath_data_t> *m_vpath_dq; 00029 00030 double m_last_vpath_tstamp; 00031 bool m_display_id; 00032 bool m_display_curve_orientation; 00033 00034 double m_vpath_height; 00035 int m_display_type; 00036 double m_cell_size; 00037 double m_sq_space; 00038 int m_c_func; 00039 unsigned m_filter; 00040 00041 void read_vpath (); 00042 void draw_vpath_segment (vpath_data_t &vpath_); 00043 }; 00044 } 00045 #endif