src/smp/components/extenders/single_integrator.h

Go to the documentation of this file.
00001 
00009 #ifndef _SMP_SYSTEM_SINGLE_INTEGRATOR_H_
00010 #define _SMP_SYSTEM_SINGLE_INTEGRATOR_H_
00011 
00012 #include <smp/components/extenders/state_array_double.h>
00013 #include <smp/components/extenders/input_array_double.h>
00014 #include <smp/components/extenders/base.h>
00015 
00016 
00017 namespace smp {
00018 
00019     
00021 
00029     template <int NUM_DIMENSIONS>
00030     class state_single_integrator : public state_array_double<NUM_DIMENSIONS> {
00031 
00032     };
00033 
00034 
00035 
00037 
00045     class input_single_integrator : public input_array_double<1> {
00046     
00047     };
00048 
00049 
00050 
00052 
00060     template< class typeparams, int NUM_DIMENSIONS >
00061     class extender_single_integrator : public extender_base< typeparams > {
00062 
00063 
00064 
00065         typedef typename typeparams::state state_t;
00066         typedef typename typeparams::input input_t;
00067         typedef typename typeparams::vertex_data vertex_data_t;
00068         typedef typename typeparams::edge_data edge_data_t;
00069 
00070         typedef vertex<typeparams> vertex_t;
00071         typedef edge<typeparams> edge_t;
00072 
00073         typedef trajectory< typeparams > trajectory_t;
00074 
00075         double max_length;
00076 
00077 
00078     public: 
00079 
00080         extender_single_integrator ();
00081         ~extender_single_integrator ();
00082    
00083 
00084         int ex_update_insert_vertex (vertex_t *vertex_in);
00085     
00086 
00087         int ex_update_insert_edge (edge_t *edge_in);  
00088 
00089 
00090         int ex_update_delete_vertex (vertex_t *vertex_in);
00091     
00092     
00093         int ex_update_delete_edge (edge_t *edge_in);
00094 
00095 
00096         int extend (state_t *state_from_in, state_t *state_towards_in,
00097                     int *exact_connection_out, trajectory_t *trajectory_out,
00098                     list<state_t*> *intermediate_vertices_out);
00099 
00112         int set_max_length (double max_length_in);
00113 
00114  
00115     };
00116 
00117 
00118 }
00119 
00120 #endif