36 template<
class E,
class L,
class N,
class V>
42 CarEdge(
int numericalID,
const E* edge,
const double pos = -1.) :
55 FXMutexLock locker(myLock);
57 typename std::map<SUMOVehicleClass, std::vector<_IntermodalEdge*> >::const_iterator i =
myClassesSuccessorMap.find(vClass);
65 if (!e->includeInRoute(
false) || e->getEdge() == this->
getEdge() || classedCarFollowers.count(e->getEdge()) > 0) {
78 FXMutexLock locker(myLock);
80 typename std::map<SUMOVehicleClass, std::vector<std::pair<const _IntermodalEdge*, const _IntermodalEdge*> > >::const_iterator i =
myClassesViaSuccessorMap.find(vClass);
86 const std::set<std::pair<const E*, const E*> > classedCarFollowers = std::set<std::pair<const E*, const E*> >(this->
getEdge()->getViaSuccessors(vClass).begin(), this->
getEdge()->getViaSuccessors(vClass).end());
87 for (
const std::pair<const _IntermodalEdge*, const _IntermodalEdge*>& e : this->
myFollowingViaEdges) {
88 const auto viaPair = std::make_pair(e.first->getEdge(), e.second ==
nullptr ? nullptr : e.second->getEdge());
89 if (!e.first->includeInRoute(
false) || e.first->getEdge() == this->
getEdge() || classedCarFollowers.count(viaPair) > 0) {
102 const double travelTime = E::getTravelTimeStatic(this->
getEdge(), trip->
vehicle, time);
103 double distTravelled = this->
getLength();
111 return travelTime * distTravelled / this->
getEdge()->getLength();
130 mutable std::map<SUMOVehicleClass, std::vector<std::pair<const _IntermodalEdge*, const _IntermodalEdge*> > >
myClassesViaSuccessorMap;
133 mutable FXMutex myLock;