Public Member Functions |
| Goal (const SpaceInformationPtr &si) |
| Constructor. The goal must always know the space information it is part of.
|
virtual | ~Goal (void) |
| Destructor. Clears the solution as well.
|
template<class T > |
T * | as (void) |
| Cast this instance to a desired type.
|
template<class T > |
const T * | as (void) const |
| Cast this instance to a desired type.
|
GoalType | getType (void) const |
| Return the goal type.
|
bool | hasType (GoalType type) const |
| Check if this goal can be cast to a particular goal type.
|
const SpaceInformationPtr & | getSpaceInformation (void) const |
| Get the space information this goal is for.
|
virtual bool | isSatisfied (const State *st) const =0 |
| Return true if the state satisfies the goal constraints.
|
virtual bool | isSatisfied (const State *st, double *distance) const |
| Return true if the state satisfies the goal constraints and compute the distance between the state given as argument and the goal (even if the goal is not satisfied). This distance can be an approximation. It can even be set to a constant, if such a computation is not possible.
|
bool | isSatisfied (const State *st, double pathLength, double *distance) const |
| Return true if the state satisfies the goal constraints and the path length is less than the desired maximum length. This call also computes the distance between the state given as argument and the goal.
|
virtual bool | isStartGoalPairValid (const State *, const State *) const |
| Since there can be multiple starting states (and multiple goal states) it is possible certain pairs are not to be allowed. By default we however assume all such pairs are allowed. Note: if this function returns true, isSatisfied() need not be called.
|
bool | isAchieved (void) const |
| Returns true if a solution path has been found (could be approximate)
|
double | getMaximumPathLength (void) const |
| Get the maximum length allowed for a solution path.
|
void | setMaximumPathLength (double maximumPathLength) |
| Set the maximum length allowed for a solution path. This value is checked only in the version of isSatisfied() that takes the path length as argument or by isPathLengthSatisfied(). The default maximal path length is infinity.
|
bool | isPathLengthSatisfied (double pathLength) const |
| Check if pathLength is smaller than the value returned by getMaximumPathLength()
|
const PathPtr & | getSolutionPath (void) const |
| Return the found solution path.
|
void | setSolutionPath (const PathPtr &path, bool approximate=false) |
| Update the solution path. If a previous solution path exists, it is deleted.
|
void | clearSolutionPath (void) |
| Forget the solution path. Memory is freed.
|
double | getDifference (void) const |
| If a difference between the desired solution and the solution found is computed by the planner, this functions returns it.
|
void | setDifference (double difference) |
| Set the difference between the found solution path and the desired solution path.
|
bool | isApproximate (void) const |
| Return true if the found solution is approximate (does not actually reach the desired goal, but hopefully is closer to it)
|
virtual void | print (std::ostream &out=std::cout) const |
| Print information about the goal.
|
Protected Attributes |
GoalType | type_ |
| Goal type.
|
SpaceInformationPtr | si_ |
| The space information for this goal.
|
double | maximumPathLength_ |
| The maximum length allowed for the solution path.
|
PathPtr | path_ |
| Solution path, if found.
|
double | difference_ |
| The achieved difference between the found solution and the desired goal.
|
bool | approximate_ |
| True if goal was not achieved, but an approximate solution was found.
|
Abstract definition of goals. Will contain solutions, if found.
Definition at line 61 of file Goal.h.