ompl::control::CompoundControlSpace Class Reference
A control space to allow the composition of control spaces. More...
#include <ompl/control/ControlSpace.h>
Inheritance diagram for ompl::control::CompoundControlSpace:

Public Types | |
typedef CompoundControl | ControlType |
Define the type of control allocated by this control space. | |
Public Member Functions | |
CompoundControlSpace (const base::StateSpacePtr &stateSpace) | |
Constructor. The corresponding state space needs to be specified. | |
template<class T > | |
T * | as (const unsigned int index) const |
Cast a component of this instance to a desired type. | |
virtual void | addSubspace (const ControlSpacePtr &component) |
Adds a control space as a component of the compound control space. | |
unsigned int | getSubspaceCount () const |
Get the number of control spaces that make up the compound control space. | |
const ControlSpacePtr & | getSubspace (const unsigned int index) const |
Get a specific subspace from the compound control space. | |
const ControlSpacePtr & | getSubspace (const std::string &name) const |
Get a specific subspace from the compound control space. | |
virtual unsigned int | getDimension () const |
Get the dimension of this control space. | |
virtual Control * | allocControl () const |
Allocate memory for a control. | |
virtual void | freeControl (Control *control) const |
Free the memory of a control. | |
virtual void | copyControl (Control *destination, const Control *source) const |
Copy a control to another. | |
virtual bool | equalControls (const Control *control1, const Control *control2) const |
Check if two controls are the same. | |
virtual void | nullControl (Control *control) const |
Make the control have no effect if it were to be applied to a state for any amount of time. | |
virtual ControlSamplerPtr | allocDefaultControlSampler () const |
Allocate the default control sampler. | |
virtual double * | getValueAddressAtIndex (Control *control, const unsigned int index) const |
Many controls contain a number of double values. This function provides a means to get the memory address of a double value from a control control located at position index. The first double value is returned for index = 0. If index is too large (does not point to any double values in the control), the return value is NULL. | |
virtual void | printControl (const Control *control, std::ostream &out=std::cout) const |
Print a control to a stream. | |
virtual void | printSettings (std::ostream &out) const |
Print the settings for this control space to a stream. | |
virtual void | setup () |
Perform final setup steps. This function is automatically called by the SpaceInformation. | |
virtual unsigned int | getSerializationLength () const |
Returns the serialization size for a single control in this space. | |
virtual void | serialize (void *serialization, const Control *ctrl) const |
Serializes the given control into the serialization buffer. | |
virtual void | deserialize (Control *ctrl, const void *serialization) const |
Deserializes a control from the serialization buffer. | |
virtual bool | isCompound () const |
Check if the control space is compound. | |
void | lock () |
Lock this control space. This means no further control spaces can be added as components. This function can be for instance called from the constructor of a state space that inherits from CompoundControlSpace to prevent the user to add further components. | |
Protected Attributes | |
std::vector< ControlSpacePtr > | components_ |
The component control spaces that make up the compound control space. | |
unsigned int | componentCount_ |
The number of contained components. | |
bool | locked_ |
Flag indicating whether adding further components is allowed or not. |
Detailed Description
A control space to allow the composition of control spaces.
Definition at line 196 of file ControlSpace.h.
Member Function Documentation
template<class T >
T* ompl::control::CompoundControlSpace::as | ( | const unsigned int | index | ) | const [inline] |
Cast a component of this instance to a desired type.
Make sure the type we are casting to is indeed a control space
Definition at line 214 of file ControlSpace.h.
The documentation for this class was generated from the following files:
- ompl/control/ControlSpace.h
- ompl/control/src/ControlSpace.cpp