|
|
| KdTreeNF () |
|
| KdTreeNF (XMLNode &_node) |
|
virtual | ~KdTreeNF ()=default |
|
|
virtual void | Initialize () override |
|
virtual void | Print (std::ostream &_os) const override |
|
|
virtual void | FindNeighbors (RoadmapType *const _r, const Cfg &_cfg, const VertexSet &_candidates, OutputIterator _out) override |
|
virtual void | FindNeighbors (GroupRoadmapType *const _r, const GroupCfgType &_cfg, const VertexSet &_candidates, OutputIterator _out) override |
|
| NeighborhoodFinderMethod (const Type _type=Type::OTHER) |
|
| NeighborhoodFinderMethod (XMLNode &_node, const Type _type=Type::OTHER, const bool _requireDM=true) |
|
virtual | ~NeighborhoodFinderMethod ()=default |
|
Type | GetType () const noexcept |
|
virtual size_t & | GetK () noexcept |
|
virtual double & | GetRadius () noexcept |
|
virtual void | SetDMLabel (const std::string &_label) noexcept |
|
virtual const std::string & | GetDMLabel () const noexcept |
|
template<typename AbstractRoadmapType > |
void | FindNeighbors (AbstractRoadmapType *const _r, const typename AbstractRoadmapType::CfgType &_cfg, OutputIterator _out) |
|
| MPBaseObject (const std::string &_label="", const std::string &_name="", bool _debug=false) |
|
| MPBaseObject (XMLNode &_node) |
|
virtual | ~MPBaseObject () |
|
const std::string & | GetName () const |
| Get the class name for this object. More...
|
|
const std::string & | GetLabel () const |
| Get the unique label for this object. More...
|
|
std::string | GetNameAndLabel () const |
| Get the unique string identifier for this object "m_name::m_label". More...
|
|
void | SetLabel (const std::string &) |
| Set the unique label for this object. More...
|
|
void | SetMPLibrary (MPLibrary *) noexcept |
| Set the owning MPLibrary. More...
|
|
MPLibrary * | GetMPLibrary () const noexcept |
| Get the owning MPLibrary. More...
|
|
bool | IsRunning () const noexcept |
| Check the library's running flag. More...
|
|
MPProblem * | GetMPProblem () const noexcept |
| Get the library's current MPProblem. More...
|
|
Environment * | GetEnvironment () const noexcept |
| Get the current environment. More...
|
|
MPTask * | GetTask () const noexcept |
| Get the current task. More...
|
|
GroupTask * | GetGroupTask () const noexcept |
| Get the current group task. More...
|
|
MPSolutionType * | GetMPSolution () const noexcept |
|
RoadmapType * | GetRoadmap (Robot *const _r=nullptr) const noexcept |
| Get the current free-space roadmap. More...
|
|
GroupRoadmapType * | GetGroupRoadmap (RobotGroup *const _g=nullptr) const noexcept |
| Get the current free-space group roadmap. More...
|
|
RoadmapType * | GetBlockRoadmap (Robot *const _r=nullptr) const noexcept |
| Get the current obstacle-space roadmap. More...
|
|
Path * | GetPath (Robot *const _r=nullptr) const noexcept |
|
GroupPath * | GetGroupPath (RobotGroup *const _g=nullptr) const noexcept |
| Get the current best group path. More...
|
|
StatClass * | GetStatClass () const noexcept |
| Get the current StatClass. More...
|
|
LocalObstacleMap * | GetLocalObstacleMap () const noexcept |
| Get the local obstacle map. More...
|
|
Uses a k-d tree to find nearest-neighbors.
This class builds a separate kd tree for each roadmap and each of its components. This is important for avoiding a continuous rebuild from scratch for any candidate set other than the full roadmap.
- Todo:
- We should be able to use a Search_traits_adaptor to avoid recopying the points and instead put VIDs into the kd tree. However my attempt to do that resulted in bogus runtime behavior within CGAL's Kd_tree::build (dimension is computed incorrectly resulting in a bad array size). Figure out how to finagle this so that we can avoid recopying Cfgs.
- Todo:
- This is limited to euclidean distance at present, but it should be possible to use any minkowski or mahalonobis distance with the appropriate distance adapter. It can not support arbitrary distances despite the claims in CGAL's documentation because the implementation requires finding the nearest and furthest point to an AABB; this is not tractible unless the geometrically nearest/farthest points (i.e. measured with euclidean) are also the nearest points for our metric.