31 #define TIMEOVERLAP (1)
86 if (leavePotential >= 0)
88 avoidGoal(_current, _next, _collision, leavePotential);
89 trackBack(_current, _next, _collision, leavePotential);
103 if (_freePotential < 0)
113 int32_t collision = -1;
131 if (_collision != collision)
136 avoidStart(_current, _next, collision, leavePotential);
143 int32_t collision = -1;
146 if (vertexFree || collision != -1)
167 else if (collision != -1)
169 if (collision != -1 && collision != _collision)
173 trackBack(current_n, next_n, collision, leavePotential);
174 avoid(current_n, next_n, collision, leavePotential);
188 if (_freePotential < 0)
192 bool crossingFound =
false;
193 std::vector<std::reference_wrapper<Vertex>> crossing;
199 for (
const Vertex &v : crossing)
203 crossingFound =
true;
213 for (
const Vertex &v : crossing)
217 crossingFound =
true;
225 for (
const Vertex &waitSeg : crossing)
229 int32_t collision = -1;
232 if (vertexFree || collision != -1)
258 else if (collision != -1)
260 if (collision != _collision)
264 moveSegment(current_n, wait_seg_n, collision, leavePotential);
275 if (_freePotential < 0)
278 std::queue<queueElement> empty;
282 newEle.
next = &_next;
296 std::vector<std::reference_wrapper<Vertex>> crossing;
297 crossing =
q.next->getPlanningPredecessors();
299 for (
const Vertex &v : crossing)
301 if (v.getSegment().getSegmentId() ==
q.current->getSegment().getSegmentId())
303 crossing =
q.next->getPlanningSuccessors();
308 int32_t collision = -1;
313 for (
const Vertex &waitSeg : crossing)
319 else if (collision != -1)
321 if (collision !=
q.collision)
330 if (_freePotential < 0)
338 if (vertexIsFree || collision != -1)
378 else if (collision != -1)
380 if (collision != _collision)
407 if (_freePotential < 0)
411 bool foundPredecessorVertex =
false;
414 for (
const Vertex &v : crossing)
419 foundPredecessorVertex =
true;
427 if (!foundPredecessorVertex)
432 for (
const Vertex &waitSeg : crossing)
434 int32_t collision = -1;
438 if (vertexIsFree || collision != -1)
477 else if (collision != -1)
479 if (collision != _collision)
496 if (_freePotential < 0)
506 for (
const Vertex &v : crossing)
516 int32_t collision = -1;
520 for (
const Vertex &waitSeg : crossing)
522 int32_t collision = -1;
526 if (vertexIsFree || collision != -1)
565 else if (collision != -1)
567 if (collision != _collision)
576 else if (collision != -1)
578 if (collision != _collision)