00001 // Copyright (C) 2007 University of Louisiana at Lafayette 00002 // Authors: Suresh Golconda 00003 00004 #ifndef CAJUN_RNDF_LANE_FILETER_H 00005 #define CAJUN_RNDF_LANE_FILETER_H 00006 00007 #include "world_state.H" 00008 #include "rndf.H" 00009 00010 namespace cajun 00011 { 00012 class rndf_lane_filter_t 00013 { 00014 private: 00015 world_state_t *m_ws; 00016 rndf_t const *m_rndf; 00017 00018 public: 00019 rndf_lane_filter_t (world_state_t *ws_, rndf_t const *rndf_): 00020 m_ws (ws_), m_rndf (rndf_) { } 00021 void smoothen_all_lane_segs (); 00022 private: 00027 bool smoothen_beg_lane_seg (rndf_lane_data_t &lane_data, 00028 rndf_lane_data_t const &prev_lane_seg); 00034 bool smoothen_end_lane_seg (rndf_lane_data_t &lane_data, 00035 rndf_lane_data_t const &next_lane_seg); 00039 void smoothen_lane_seg (unsigned start_sid_, unsigned start_lid_, 00040 unsigned start_wid_, unsigned end_sid_, 00041 unsigned end_lid_, unsigned end_wid_); 00042 }; 00043 }; 00044 00045 00046 00047 #endif