src/smp/components/collision_checkers/base.h

Go to the documentation of this file.
00001 
00010 #ifndef _SMP_COLLISION_CHECKER_BASE_H_
00011 #define _SMP_COLLISION_CHECKER_BASE_H_
00012 
00013 #include <smp/planner_utils/trajectory.h>
00014 #include <smp/planner_utils/vertex_edge.h>
00015 
00016 
00017 namespace smp {
00018 
00020 
00028     template< class typeparams >
00029     class collision_checker_base {
00030 
00031 
00032 
00033         typedef typename typeparams::state state_t;
00034         typedef typename typeparams::input input_t;
00035         typedef typename typeparams::vertex_data vertex_data_t;
00036         typedef typename typeparams::edge_data edge_data_t;
00037 
00038         typedef vertex<typeparams> vertex_t;
00039         typedef edge<typeparams> edge_t;
00040     
00041         typedef trajectory<typeparams> trajectory_t;
00042 
00043         
00044     public:
00045     
00046         virtual ~collision_checker_base () { };
00047 
00048 
00059         virtual int cc_update_insert_vertex (vertex_t *vertex_in) = 0;
00060     
00061 
00072         virtual int cc_update_insert_edge (edge_t *edge_in) = 0;    
00073 
00074 
00085         virtual int cc_update_delete_vertex (vertex_t *vertex_in) = 0;
00086     
00087 
00098         virtual int cc_update_delete_edge (edge_t *edge_in) = 0;    
00099 
00100 
00110         virtual int check_collision_state (state_t *state_in) = 0;
00111 
00112     
00122         virtual int check_collision_trajectory (trajectory_t *trajectory_in) = 0;
00123 
00124     };
00125 
00126 
00127 }
00128 
00129 #endif