1 #ifndef PMPL_NEIGHBORHOOD_FINDER_METHOD_H_ 
    2 #define PMPL_NEIGHBORHOOD_FINDER_METHOD_H_ 
    4 #include <boost/mpl/list.hpp> 
    5 #include <boost/mpl/for_each.hpp> 
   58     typedef typename std::back_insert_iterator<std::vector<Neighbor>>
 
   68         const bool _requireDM = 
true);
 
   76     virtual void Print(std::ostream& _os) 
const override;
 
   86     virtual 
size_t& 
GetK() noexcept;
 
   93     virtual 
void SetDMLabel(const std::
string& _label) noexcept;
 
   97     virtual const std::
string& 
GetDMLabel() const noexcept;
 
  119     template <typename AbstractRoadmapType>
 
  121         const typename AbstractRoadmapType::CfgType& _cfg, 
OutputIterator _out);
 
  136     template <typename AbstractRoadmapType>
 
  137     bool DirectEdge(const AbstractRoadmapType* _g,
 
  138         const typename AbstractRoadmapType::CfgType& _c,
 
  139         const typename AbstractRoadmapType::
VID _v) const noexcept;
 
  161 template <
typename AbstractRoadmapType>
 
  165     const typename AbstractRoadmapType::CfgType& _cfg,
 
  172 template <
typename AbstractRoadmapType>
 
  177     const typename AbstractRoadmapType::CfgType& _c,
 
  178     const typename AbstractRoadmapType::VID _v) 
const noexcept {
 
  180   const typename AbstractRoadmapType::VID vid = _g->GetVID(_c);
 
#define INVALID_VID
Definition: GenericStateGraph.h:23
 
Definition: GenericStateGraph.h:67
 
STAPLGraph::vertex_descriptor VID
Definition: GenericStateGraph.h:83
 
std::unordered_set< VID > VertexSet
Definition: GenericStateGraph.h:86
 
Definition: GroupCfg.h:39
 
Definition: GroupRoadmap.h:25
 
Definition: MPBaseObject.h:46
 
Definition: NeighborhoodFinderMethod.h:32
 
bool DirectEdge(const AbstractRoadmapType *_g, const typename AbstractRoadmapType::CfgType &_c, const typename AbstractRoadmapType::VID _v) const noexcept
Definition: NeighborhoodFinderMethod.h:176
 
virtual void Print(std::ostream &_os) const override
Definition: NeighborhoodFinderMethod.cpp:49
 
RoadmapType::VertexSet VertexSet
Definition: NeighborhoodFinderMethod.h:41
 
virtual ~NeighborhoodFinderMethod()=default
 
MPBaseObject::RoadmapType RoadmapType
Definition: NeighborhoodFinderMethod.h:39
 
MPBaseObject::GroupRoadmapType GroupRoadmapType
Definition: NeighborhoodFinderMethod.h:42
 
std::string m_dmLabel
The distance metric to use.
Definition: NeighborhoodFinderMethod.h:152
 
Type
The type of neighbors found.
Definition: NeighborhoodFinderMethod.h:50
 
@ RADIUS
All neighbors within a radius.
 
@ APPROX
Approximate nearest neighbors.
 
virtual void FindNeighbors(RoadmapType *const _r, const Cfg &_cfg, const VertexSet &_candidates, OutputIterator _out)=0
 
double m_radius
Maximum distance of closest neighbors.
Definition: NeighborhoodFinderMethod.h:150
 
Type m_nfType
Type of neighborhood finder.
Definition: NeighborhoodFinderMethod.h:148
 
RoadmapType::VID VID
Definition: NeighborhoodFinderMethod.h:40
 
Type GetType() const noexcept
Definition: NeighborhoodFinderMethod.cpp:61
 
virtual const std::string & GetDMLabel() const noexcept
Definition: NeighborhoodFinderMethod.cpp:93
 
size_t m_k
How many closest neighbors to find?
Definition: NeighborhoodFinderMethod.h:149
 
virtual size_t & GetK() noexcept
Definition: NeighborhoodFinderMethod.cpp:69
 
std::back_insert_iterator< std::vector< Neighbor > > OutputIterator
Output iterator for writing discovered neighbors to a container.
Definition: NeighborhoodFinderMethod.h:59
 
virtual void SetDMLabel(const std::string &_label) noexcept
Definition: NeighborhoodFinderMethod.cpp:85
 
NeighborhoodFinderMethod(const Type _type=Type::OTHER)
Definition: NeighborhoodFinderMethod.cpp:10
 
bool m_unconnected
Require neighbors with no direct edge.
Definition: NeighborhoodFinderMethod.h:153
 
virtual double & GetRadius() noexcept
Definition: NeighborhoodFinderMethod.cpp:77
 
MPBaseObject::GroupCfgType GroupCfgType
Definition: NeighborhoodFinderMethod.h:43