37 #ifndef OMPL_BASE_PLANNER_
38 #define OMPL_BASE_PLANNER_
40 #include "ompl/base/SpaceInformation.h"
41 #include "ompl/base/ProblemDefinition.h"
42 #include "ompl/base/PlannerData.h"
43 #include "ompl/base/PlannerStatus.h"
44 #include "ompl/base/PlannerTerminationCondition.h"
45 #include "ompl/base/GenericParam.h"
47 #include "ompl/util/Time.h"
48 #include "ompl/util/ClassForward.h"
49 #include "ompl/util/Deprecation.h"
50 #include <boost/function.hpp>
51 #include <boost/concept_check.hpp>
52 #include <boost/noncopyable.hpp>
53 #include <boost/lexical_cast.hpp>
65 OMPL_CLASS_FORWARD(Planner);
197 return addedStartStates_;
203 return sampledGoalsCount_;
210 unsigned int addedStartStates_;
211 unsigned int sampledGoalsCount_;
265 BOOST_CONCEPT_ASSERT((boost::Convertible<T*, Planner*>));
267 return static_cast<T*
>(
this);
272 const T*
as(
void)
const
275 BOOST_CONCEPT_ASSERT((boost::Convertible<T*, Planner*>));
277 return static_cast<const T*
>(
this);
321 virtual void clear(
void);
332 const std::string&
getName(
void)
const;
335 void setName(
const std::string &name);
344 virtual void setup(
void);
376 template<
typename T,
typename PlannerType,
typename SetterType,
typename GetterType>
377 void declareParam(
const std::string &name,
const PlannerType &planner,
const SetterType& setter,
const GetterType& getter,
const std::string &rangeSuggestion =
"")
379 params_.
declareParam<T>(name, boost::bind(setter, planner, _1), boost::bind(getter, planner));
380 if (!rangeSuggestion.empty())
381 params_[name].setRangeSuggestion(rangeSuggestion);
385 template<
typename T,
typename PlannerType,
typename SetterType>
386 void declareParam(
const std::string &name,
const PlannerType &planner,
const SetterType& setter,
const std::string &rangeSuggestion =
"")
389 if (!rangeSuggestion.empty())
390 params_[name].setRangeSuggestion(rangeSuggestion);