37#ifndef OMPL_BASE_GOAL_
38#define OMPL_BASE_GOAL_
40#include "ompl/base/State.h"
41#include "ompl/base/SpaceInformation.h"
42#include "ompl/util/ClassForward.h"
43#include "ompl/base/GoalTypes.h"
46#include <boost/concept_check.hpp>
55 OMPL_CLASS_FORWARD(Goal);
67 Goal &operator=(
const Goal &) =
delete;
80 BOOST_CONCEPT_ASSERT((boost::Convertible<T *, Goal *>));
82 return static_cast<T *
>(
this);
90 BOOST_CONCEPT_ASSERT((boost::Convertible<T *, Goal *>));
92 return static_cast<const T *
>(
this);
104 return (
type_ & type) == type;
142 virtual void print(std::ostream &out = std::cout)
const;
Abstract definition of goals.
virtual bool isSatisfied(const State *st) const =0
Return true if the state satisfies the goal constraints.
SpaceInformationPtr si_
The space information for this goal.
virtual void print(std::ostream &out=std::cout) const
Print information about the goal.
bool hasType(GoalType type) const
Check if this goal can be cast to a particular goal type.
virtual ~Goal()=default
Destructor.
const SpaceInformationPtr & getSpaceInformation() const
Get the space information this goal is for.
const T * as() const
Cast this instance to a desired type.
GoalType getType() const
Return the goal type.
T * as()
Cast this instance to a desired type.
virtual bool isStartGoalPairValid(const State *, const State *) const
Since there can be multiple starting states (and multiple goal states) it is possible certain pairs a...
Definition of an abstract state.
GoalType
The type of goal.
Main namespace. Contains everything in this library.