37 #ifndef OMPL_CONTROL_PLANNER_DATA_
38 #define OMPL_CONTROL_PLANNER_DATA_
40 #include "ompl/base/PlannerData.h"
41 #include "ompl/control/SpaceInformation.h"
42 #include "ompl/control/Control.h"
43 #include <boost/serialization/base_object.hpp>
80 virtual bool operator == (
const PlannerDataEdge &rhs)
const
84 return static_cast<const PlannerDataEdge
>(*this) == rhs;
90 friend class boost::serialization::access;
91 friend class PlannerDataStorage;
92 friend class PlannerData;
94 PlannerDataEdgeControl() : PlannerDataEdge(), c_(NULL) {};
96 template <
class Archive>
97 void serialize(Archive & ar,
const unsigned int )
99 ar & boost::serialization::base_object<base::PlannerDataEdge>(*this);
130 virtual bool removeEdge (
unsigned int v1,
unsigned int v2);
136 virtual void clear (
void);
161 void freeMemory(
void);
Object containing planner generated vertex and edge data. It is assumed that all vertices are unique...
Definition of an abstract control.
virtual base::PlannerDataEdge * clone() const
Return a clone of this object, allocated from the heap.
std::set< Control * > decoupledControls_
A list of controls that are allocated during the decoupleFromPlanner method. These controls are freed...
Object containing planner generated vertex and edge data. It is assumed that all vertices are unique...
Representation of an edge in PlannerData for planning with controls. This structure encodes a specifi...
PlannerData(const SpaceInformationPtr &siC)
Constructor. Accepts a SpaceInformationPtr for the space planned in.
double getDuration(void) const
Return the duration associated with this edge.
virtual bool hasControls(void) const
Returns true if this PlannerData instance has controls associated with it.
Base class for a vertex in the PlannerData structure. All derived classes must implement the clone an...
SpaceInformationPtr siC_
The instance of control::SpaceInformation associated with this data.
PlannerDataEdgeControl(const Control *c, double duration)
Constructor. Accepts a control pointer and a duration.
const SpaceInformationPtr & getSpaceInformation(void) const
Return the instance of SpaceInformation used in this PlannerData.
const Control * getControl(void) const
Return the control associated with this edge.
virtual void decoupleFromPlanner(void)
Creates a deep copy of the states contained in the vertices of this PlannerData structure so that whe...
virtual bool removeVertex(const base::PlannerDataVertex &st)
Removes the vertex associated with the given data. If the vertex does not exist, false is returned...
virtual ~PlannerData(void)
Destructor.
virtual bool removeEdge(unsigned int v1, unsigned int v2)
Removes the edge between vertex indexes v1 and v2. Success is returned.
Base class for a PlannerData edge.
virtual void clear(void)
Clears the entire data structure.
PlannerDataEdgeControl(const PlannerDataEdgeControl &rhs)
Copy constructor.