30template<
class E,
class V>
40 for (
const auto& viaPair :
myOriginal->getViaSuccessors()) {
42 const E* via = viaPair.second;
44 while (via !=
nullptr && via->isInternal()) {
45 via->getReversedRoutingEdge()->
myViaSuccessors.push_back(std::make_pair(
this, preVia));
46 preVia = via->getReversedRoutingEdge();
69 const std::string&
getID()
const {
88 inline bool prohibits(
const V*
const vehicle)
const {
92 inline bool restricts(
const V*
const vehicle)
const {
97 return edge->
myOriginal->getTravelTime(veh, time);
106 FXMutexLock lock(mySuccessorMutex);
117 if (viaPair.first->myOriginal->isTazConnector() || viaPair.first->myOriginal->isConnectedTo(*
myOriginal, vClass)) {
118 result.push_back(viaPair);
133 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
const E * getOriginalEdge() const
Returns the original edge.
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)