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