29template<
class E,
class V>
39 for (
const auto& viaPair :
myOriginal->getViaSuccessors()) {
41 const E* via = viaPair.second;
43 while (via !=
nullptr && via->isInternal()) {
44 via->getReversedRoutingEdge()->
myViaSuccessors.push_back(std::make_pair(
this, preVia));
45 preVia = via->getReversedRoutingEdge();
63 const std::string&
getID()
const {
82 inline bool prohibits(
const V*
const vehicle)
const {
86 inline bool restricts(
const V*
const vehicle)
const {
91 return edge->
myOriginal->getTravelTime(veh, time);
100 FXMutexLock lock(mySuccessorMutex);
111 if (viaPair.first->myOriginal->isTazConnector() || viaPair.first->myOriginal->isConnectedTo(*
myOriginal, vClass)) {
112 result.push_back(viaPair);
127 mutable FXMutex mySuccessorMutex;
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
@ SVC_IGNORING
vehicles ignoring classes
#define UNUSED_PARAMETER(x)
the edge type representing backward edges
const ConstEdgePairVector & getViaSuccessors(SUMOVehicleClass vClass=SVC_IGNORING, bool ignoreTransientPermissions=false) const
double getLength() const
Returns the length of the edge.
const std::string & getID() const
Returns the id of the edge.
std::vector< std::pair< const ReversedEdge< E, V > *, const ReversedEdge< E, V > * > > ConstEdgePairVector
ConstEdgePairVector myViaSuccessors
const E *const myOriginal
bool prohibits(const V *const vehicle) const
std::map< SUMOVehicleClass, ConstEdgePairVector > myClassesViaSuccessorMap
The successors available for a given vClass.
const ReversedEdge * getBidiEdge() const
bool restricts(const V *const vehicle) const
ReversedEdge(const E *orig)
int getNumericalID() const
Returns the index (numeric id) of the edge.
static double getTravelTimeStatic(const ReversedEdge< E, V > *const edge, const V *const veh, double time)