 |
Eclipse SUMO - Simulation of Urban MObility
|
Go to the documentation of this file.
18 #ifndef IntermodalEdge_h
19 #define IntermodalEdge_h
38 template<
class E,
class L,
class N,
class V>
41 IntermodalEdge(
const std::string
id,
int numericalID,
const E* edge,
const std::string& line,
const double length = 0.) :
55 inline const std::string&
getLine()
const {
82 if (it->first == edge) {
120 return edge ==
nullptr ? 0. : edge->
getTravelTime(trip, time);
161 return myEdge !=
nullptr ?
myEdge->getSpeedLimit() : 200. / 3.6;
166 return myEdge !=
nullptr ?
myEdge->getLengthGeometryFactor() : 1;
#define UNUSED_PARAMETER(x)
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
double myLength
adaptable length (for splitted edges)
IntermodalEdge(const std::string id, int numericalID, const E *edge, const std::string &line, const double length=0.)
Base class for objects which have an id.
void removeSuccessor(const IntermodalEdge *const edge)
double getLengthGeometryFactor() const
static double getTravelTimeStaticRandomized(const IntermodalEdge *const edge, const IntermodalTrip< E, N, V > *const trip, double time)
virtual double getStartPos() const
virtual ~IntermodalEdge()
virtual double getTravelTime(const IntermodalTrip< E, N, V > *const, double) const
void setLength(const double length)
the base edge type that is given to the internal router (SUMOAbstractRouter)
virtual bool hasEffort() const
static double getEffortStatic(const IntermodalEdge *const edge, const IntermodalTrip< E, N, V > *const trip, double time)
double gWeightsRandomFactor
double getMinimumTravelTime(const IntermodalTrip< E, N, V > *const trip) const
static double rand(std::mt19937 *rng=0)
Returns a random real number in [0, 1)
virtual bool includeInRoute(bool) const
double getMaxSpeed() const
const E *const myEdge
the original edge
static double getTravelTimeStatic(const IntermodalEdge *const edge, const IntermodalTrip< E, N, V > *const trip, double time)
std::vector< std::pair< const IntermodalEdge *, const IntermodalEdge * > > myFollowingViaEdges
List of edges that may be approached from this edge with optional internal vias.
IntermodalEdge & operator=(const IntermodalEdge &src)
Invalidated assignment operator.
int getNumericalID() const
virtual double getIntended(const double, std::string &) const
get intended vehicle id and departure time of next public transport ride
ValueTimeLine< double > * myEfforts
Container for passing effort varying over time for the edge.
void addSuccessor(IntermodalEdge *const s, IntermodalEdge *const via=nullptr)
const E * getEdge() const
const int myNumericalID
the index in myEdges
virtual const std::vector< IntermodalEdge * > & getSuccessors(SUMOVehicleClass vClass=SVC_IGNORING) const
virtual double getEndPos() const
void transferSuccessors(IntermodalEdge *to)
const std::string myLine
public transport line or ped vs car
virtual const std::vector< std::pair< const IntermodalEdge *, const IntermodalEdge * > > & getViaSuccessors(SUMOVehicleClass vClass=SVC_IGNORING) const
virtual bool prohibits(const IntermodalTrip< E, N, V > *const) const
double getDistanceTo(const IntermodalEdge *other) const
const std::string & getLine() const
virtual bool restricts(const IntermodalTrip< E, N, V > *const) const
@ SVC_IGNORING
vehicles ignoring classes
the "vehicle" type that is given to the internal router (SUMOAbstractRouter)
virtual double getEffort(const IntermodalTrip< E, N, V > *const, double) const
double getSpeedLimit() const
std::vector< IntermodalEdge * > myFollowingEdges
List of edges that may be approached from this edge.