29 #ifndef SEGMENT_EXPANDER_H 30 #define SEGMENT_EXPANDER_H 32 #define POT_HIGH 1.0e10 91 template <
class T,
class S,
class C>
92 void clearpq(std::priority_queue<T, S, C> &q)
94 q = std::priority_queue<T, S, C>();
114 bool containsVertex(
const Vertex &_v,
const std::vector<std::reference_wrapper<Vertex>> &_list)
const;
void addExpansoionCandidate(Vertex &_current, Vertex &_next, Vertex &_end)
std::vector< std::unique_ptr< Vertex > > startSegments_
CollisionResolution * collision_resolution_
Vertex * expandVoronoi(Vertex &_start, Vertex &_end, const uint32_t _cycles)
const std::vector< uint32_t > & getRobotCollisions() const
returns the found robotCollisions while planning
std::vector< uint32_t > collisions_robots_
std::priority_queue< Vertex *, std::vector< Vertex * >, greaterSegmentWrapper > seg_queue_
PotentialCalculator pCalc_
BacktrackingResolution btr_
CollisionResolverType crType_
void setCollisionResolver(const CollisionResolverType cRes)
sets the desired collision resolver
bool containsVertex(const Vertex &_v, const std::vector< std::reference_wrapper< Vertex >> &_list) const
CollisionResolverType getCollisionResolver() const
gets the currently used collision resolver
void resolveStartCollision(Vertex &_start, Vertex &_end)
void setSpeed(const float &_speed)
Sets the multiplier to reduce a robots speed (pCalc...)
void clearpq(std::priority_queue< T, S, C > &q)
void addStartExpansionCandidate(Vertex &_start, Vertex &_current, Vertex &_next, Vertex &_end)
SegmentExpander(const CollisionResolverType _cRes)
constructor
void reset()
resets the session
bool operator()(const Vertex *_a, const Vertex *_b) const
bool calculatePotentials(const RouteCoordinatorWrapper *_p, Vertex &_start, Vertex &_end, const uint32_t _maxIterations, const uint32_t _radius)
assigns all Vertices in the Search graph with a potential according to the distance to the start ...
const RouteCoordinatorWrapper * route_querry_