smp::extender_base< typeparams > Class Template Reference

The abstract class that specifies the structure of the extender component. More...

#include <base.h>

Inheritance diagram for smp::extender_base< typeparams >:
smp::extender_double_integrator< typeparams, NUM_DIMENSIONS > smp::extender_dubins< typeparams > smp::extender_dubins_double_integrator< typeparams > smp::extender_single_integrator< typeparams, NUM_DIMENSIONS >

List of all members.

Public Member Functions

virtual int ex_update_insert_vertex (vertex_t *vertex_in)=0
 Update function for vertex insertion.
virtual int ex_update_insert_edge (edge_t *edge_in)=0
 Update function for edge insertion.
virtual int ex_update_delete_vertex (vertex_t *vertex_in)=0
 Update function for vertex deletion.
virtual int ex_update_delete_edge (edge_t *edge_in)=0
 Update function for edge insertion.
virtual int extend (state_t *state_from_in, state_t *state_towards_in, int *exact_connection_out, trajectory_t *trajectory_out, list< state_t * > *intermediate_vertices_out)=0
 Abstract function that generates a trajectory connecting two given states.

Detailed Description

template<class typeparams>
class smp::extender_base< typeparams >

The abstract class that specifies the structure of the extender component.

An extender provides the function to generate a trajectory that connects two given states. The extender can also provide a list of designated states, which become vertices of their own when added to the graph maintained by the planning algorithm.


Member Function Documentation

template<class typeparams >
virtual int smp::extender_base< typeparams >::ex_update_delete_edge ( edge_t edge_in) [pure virtual]

Update function for edge insertion.

This function is called by the planner whenever an edge is delete from the graph. A pointer to the edge is given as an argument.

Parameters:
edge_inA pointer to deleted edge.
Returns:
Return 1 for success, a non-positive value to indiacate error.

Implemented in smp::extender_double_integrator< typeparams, NUM_DIMENSIONS >, smp::extender_dubins< typeparams >, smp::extender_dubins_double_integrator< typeparams >, and smp::extender_single_integrator< typeparams, NUM_DIMENSIONS >.

template<class typeparams >
virtual int smp::extender_base< typeparams >::ex_update_delete_vertex ( vertex_t vertex_in) [pure virtual]

Update function for vertex deletion.

This function is called by the planner whenever a vertex is deleted from the graph. A pointer to the vertex is given as an argument.

Parameters:
vertex_inA pointer to deleted vertex.
Returns:
Return 1 if success, a non-positive value to indiacate error.

Implemented in smp::extender_double_integrator< typeparams, NUM_DIMENSIONS >, smp::extender_dubins< typeparams >, smp::extender_dubins_double_integrator< typeparams >, and smp::extender_single_integrator< typeparams, NUM_DIMENSIONS >.

template<class typeparams >
virtual int smp::extender_base< typeparams >::ex_update_insert_edge ( edge_t edge_in) [pure virtual]

Update function for edge insertion.

This function is called by the planner whenever a new edge is added to the graph. A pointer to the new edge is given as an argument.

Parameters:
edge_inA pointer to the new edge.
Returns:
Return 1 for success, a non-positive value to indiacate error.

Implemented in smp::extender_double_integrator< typeparams, NUM_DIMENSIONS >, smp::extender_dubins< typeparams >, smp::extender_dubins_double_integrator< typeparams >, and smp::extender_single_integrator< typeparams, NUM_DIMENSIONS >.

template<class typeparams >
virtual int smp::extender_base< typeparams >::ex_update_insert_vertex ( vertex_t vertex_in) [pure virtual]

Update function for vertex insertion.

This function is called by the planner whenever a new vertex is added to the graph. A pointer to the new vertex is given as an argument.

Parameters:
vertex_inA pointer to the new vertex.
Returns:
Return 1 if success, a non-positive value to indiacate error.

Implemented in smp::extender_double_integrator< typeparams, NUM_DIMENSIONS >, smp::extender_dubins< typeparams >, smp::extender_dubins_double_integrator< typeparams >, and smp::extender_single_integrator< typeparams, NUM_DIMENSIONS >.

template<class typeparams >
virtual int smp::extender_base< typeparams >::extend ( state_t *  state_from_in,
state_t *  state_towards_in,
int *  exact_connection_out,
trajectory_t trajectory_out,
list< state_t * > *  intermediate_vertices_out 
) [pure virtual]

Abstract function that generates a trajectory connecting two given states.

Generates a trajectory, returned in the trajectory_out argument, that connects two given states, provided with the state_from_in and state_towards_in arguments. If the connection is exact, i.e., the trajectory reaches state_towards_in exactly, then the output variable exact_connection_out is set to one. If, on the other hand, the connection is approximate, then the same variable is set to zero.

Parameters:
state_from_inThe state that the new trajectory starts from.
state_towards_inThe state that the new trajectory is shooted towards.
exact_connection_outSet to one if the connection is exact, otherwise this variable is set to zero by this function.
trajectory_outThe output variable that contians the resulting trajectory.
intermediate_vertices_outThe list of states that will be individual vertices.
Returns:
Returns 1 for success, a non-positive number to indicate error.

Implemented in smp::extender_double_integrator< typeparams, NUM_DIMENSIONS >, smp::extender_dubins< typeparams >, smp::extender_dubins_double_integrator< typeparams >, and smp::extender_single_integrator< typeparams, NUM_DIMENSIONS >.


The documentation for this class was generated from the following file: