43 template<
class E,
class L,
class N,
class V>
50 _IntermodalEdge(edge->
getID() +
"_car" +
toString(pos), numericalID, edge,
"!car"),
62 FXMutexLock locker(myLock);
64 typename std::map<SUMOVehicleClass, std::vector<_IntermodalEdge*> >::const_iterator i =
myClassesSuccessorMap.find(vClass);
70 const std::set<const E*> classedCarFollowers = std::set<const E*>(this->
getEdge()->getSuccessors(vClass).begin(), this->
getEdge()->getSuccessors(vClass).end());
72 if (!(*e)->includeInRoute(
true) || (*e)->getEdge() == this->
getEdge() || classedCarFollowers.count((*e)->getEdge()) > 0) {
96 return travelTime * distTravelled / this->
getEdge()->getLength();
107 mutable FXMutex myLock;
114 template<
class E,
class L,
class N,
class V>
117 StopEdge(
const std::string
id,
int numericalID,
const E* edge) :
131 template<
class E,
class L,
class N,
class V>
164 for (
typename std::multimap<SUMOReal, Schedule>::const_iterator it =
mySchedules.begin(); it !=
mySchedules.end(); ++it) {
165 if (it->first > minArrivalSec) {
170 const SUMOTime nextDepart = it->second.begin + running * it->second.period;
171 minArrivalSec =
MIN2(
STEPS2TIME(nextDepart) + it->second.travelTimeSec, minArrivalSec);
174 return minArrivalSec - time;
185 template<
class E,
class L,
class N,
class V>
191 AccessEdge(
int numericalID,
const _IntermodalEdge* inEdge,
const _IntermodalEdge* outEdge,
193 _IntermodalEdge(inEdge->
getID() +
":" + outEdge->
getID(), numericalID, outEdge->
getEdge(),
"!access"),
SUMOReal getLength() const
CarEdge(int numericalID, const E *edge, const SUMOReal pos=-1.)
StopEdge(const std::string id, int numericalID, const E *edge)
bool prohibits(const IntermodalTrip< E, N, V > *const trip) const
void addSchedule(const SUMOTime begin, const SUMOTime end, const SUMOTime period, const SUMOReal travelTimeSec)
Schedule(const SUMOTime _begin, const SUMOTime _end, const SUMOTime _period, const SUMOReal _travelTimeSec)
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types...
SUMOReal getTravelTime(const IntermodalTrip< E, N, V > *const , SUMOReal time) const
IntermodalEdge< E, L, N, V > _IntermodalEdge
the car edge type that is given to the internal router (SUMOAbstractRouter)
std::vector< IntermodalEdge * > myFollowingEdges
List of edges that may be approached from this edge.
bool includeInRoute(bool) const
const IntermodalEdge< E, L, N, V > *const myEntryStop
bool prohibits(const IntermodalTrip< E, N, V > *const trip) const
std::multimap< SUMOReal, Schedule > mySchedules
const std::string & getID() const
Returns the id.
std::map< SUMOVehicleClass, std::vector< _IntermodalEdge * > > myClassesSuccessorMap
The successors available for a given vClass.
const SVCPermissions modeSet
IntermodalEdge< E, L, N, V > _IntermodalEdge
const std::vector< _IntermodalEdge * > & getSuccessors(SUMOVehicleClass vClass) const
the "vehicle" type that is given to the internal router (SUMOAbstractRouter)
bool includeInRoute(bool) const
const E * getEdge() const
std::string toString(const T &t, std::streamsize accuracy=OUTPUT_ACCURACY)
AccessEdge(int numericalID, const _IntermodalEdge *inEdge, const _IntermodalEdge *outEdge, const SUMOReal transferTime=NUMERICAL_EPS)
the base edge type that is given to the internal router (SUMOAbstractRouter)
Schedule & operator=(const Schedule &src)
Invalidated assignment operator.
const SUMOReal travelTimeSec
PublicTransportEdge(const std::string id, int numericalID, const IntermodalEdge< E, L, N, V > *entryStop, const E *endEdge, const std::string &line)
const SUMOReal arrivalPos
const SUMOReal myTransferTime
the public transport edge type connecting the stop edges
SUMOReal getTravelTime(const IntermodalTrip< E, N, V > *const trip, SUMOReal time) const
const SUMOReal myStartPos
the starting position for split edges
const IntermodalEdge< E, L, N, V > * getEntryStop() const
SUMOReal getTravelTime(const IntermodalTrip< E, N, V > *const , SUMOReal) const
bool includeInRoute(bool) const
the stop edge type representing bus and train stops
vehicles ignoring classes
the access edge connecting diferent modes that is given to the internal router (SUMOAbstractRouter) ...