1 #ifndef PMPL_TOPOLOGICAL_MAP_H_
2 #define PMPL_TOPOLOGICAL_MAP_H_
11 #include "glutils/obj_file.h"
12 #include "glutils/triangulated_model.h"
53 typedef std::unordered_map<const WorkspaceRegion*, double>
DistanceMap;
64 this->m_gridSize = gridSize;
65 this->m_decompositionLabel = decomp_label;
87 const size_t _bodyIndex = 0)
const;
96 const size_t _bodyIndex = 0)
const;
104 const size_t _bodyIndex = 0)
const;
121 const size_t _bodyIndex = 0)
const;
130 const size_t _bodyIndex = 0)
const;
142 const size_t _bodyIndex = 0)
const;
156 const size_t _bodyIndex = 0)
const;
163 size_t LocateCell(
const Cfg& _c,
const size_t _bodyIndex = 0)
const;
211 const double _radius);
238 const size_t _bodyIndex)
const;
244 const VID _vid)
const;
250 std::string m_decompositionLabel;
252 std::string m_pqpLabel;
255 std::unique_ptr<const GridOverlay> m_grid;
257 double m_gridSize{.1};
263 std::unordered_map<RoadmapType*, std::vector<OccupancyMap>> m_regionToVIDs;
266 std::unordered_map<RoadmapType*, std::unordered_map<VID, NeighborhoodKey>>
270 std::unordered_set<size_t> m_boundaryCells;
273 std::unordered_map<const WorkspaceRegion*, DistanceMap> m_innerDistanceMap;
Definition: GenericStateGraph.h:67
STAPLGraph::vertex_descriptor VID
Definition: GenericStateGraph.h:83
STAPLGraph::vertex_iterator VI
Definition: GenericStateGraph.h:89
std::unordered_set< VID > VertexSet
Definition: GenericStateGraph.h:86
std::vector< std::vector< const WorkspaceRegion * > > DecompositionMap
A mapping from a grid cell index to a set of workspace regions.
Definition: GridOverlay.h:40
Definition: MPBaseObject.h:46
Definition: TopologicalMap.h:38
RoadmapType::VertexSet VertexSet
Definition: TopologicalMap.h:48
std::map< const WorkspaceRegion *, VertexSet > OccupancyMap
A map of the VIDs occupying a given region.
Definition: TopologicalMap.h:56
double ApproximateMinimumInnerDistance(const WorkspaceRegion *const _source, const WorkspaceRegion *const _target)
Definition: TopologicalMap.cpp:487
MPBaseObject::RoadmapType RoadmapType
Definition: TopologicalMap.h:45
virtual void Initialize() override
Definition: TopologicalMap.cpp:44
const VertexSet * GetMappedVIDs(RoadmapType *const _r, const WorkspaceRegion *const _region, const size_t _bodyIndex=0) const
Definition: TopologicalMap.cpp:129
TopologicalMap()
Definition: TopologicalMap.cpp:15
NeighborhoodKey LocateNeighborhood(RoadmapType *const _r, const VID _v) const
Definition: TopologicalMap.cpp:344
RoadmapType::VID VID
Definition: TopologicalMap.h:46
const WorkspaceRegion * LocateRegion(RoadmapType *const _r, const VID _vid, const size_t _bodyIndex=0) const
Definition: TopologicalMap.cpp:172
TopologicalMap(double gridSize, string decomp_label)
Definition: TopologicalMap.h:63
std::unordered_map< const WorkspaceRegion *, double > DistanceMap
A map describing the distance to a region from some starting point.
Definition: TopologicalMap.h:53
MPBaseObject::WeightType WeightType
Definition: TopologicalMap.h:44
bool IsPopulated(RoadmapType *const _r, const WorkspaceRegion *const _region, const size_t _bodyIndex=0) const
Definition: TopologicalMap.cpp:156
std::vector< const WorkspaceRegion * > NeighborhoodKey
Definition: TopologicalMap.h:50
const DistanceMap & ComputeApproximateMinimumInnerDistances(const WorkspaceRegion *const _source, const double _radius)
Definition: TopologicalMap.cpp:512
const WorkspaceRegion * LocateNearestRegion(const Cfg &_c, const size_t _bodyIndex=0) const
Definition: TopologicalMap.cpp:288
const WorkspaceDecomposition * GetDecomposition() const
Get the decomposition used by this map.
Definition: TopologicalMap.cpp:371
size_t LocateCell(RoadmapType *const _r, const VID _v, const size_t _bodyIndex=0) const
Definition: TopologicalMap.cpp:324
virtual ~TopologicalMap()
const WorkspaceRegion * GetMappedRegion(RoadmapType *const _r, const VID _vid, const size_t _bodyIndex=0) const
Definition: TopologicalMap.cpp:142
RoadmapType::VI VI
Definition: TopologicalMap.h:47
const WorkspaceRegion * GetRandomRegion() const
Let it be a light for you in dark places, when all other lights go out.
Definition: TopologicalMap.cpp:164
Definition: WorkspaceDecomposition.h:24
Definition: WorkspaceRegion.h:18