79 ROEdge(
const std::string&
id,
RONode* from,
RONode* to,
int index,
const int priority);
189 void buildTimeLines(
const std::string& measure,
const bool boundariesOverride);
248 std::map<SUMOVehicleClass, double>::const_iterator r =
myRestrictions->find(vclass);
294 for (
int i = 0; i < (int)vTypeRestrictions.size(); i++) {
321 void addEffort(
double value,
double timeBegin,
double timeEnd);
330 void addTravelTime(
double value,
double timeBegin,
double timeEnd);
458 }
else if (veh != 0) {
466 template<PollutantsInterface::EmissionType ET>
664 mutable FXMutex myLock;
std::vector< ROEdge * > ROEdgeVector
std::vector< std::pair< const ROEdge *, const ROEdge * > > ROConstEdgePairVector
std::vector< const ROEdge * > ConstROEdgeVector
std::vector< ROEdge * > ROEdgeVector
long long int SVCPermissions
bitset where each bit declares whether a certain SVC may use this edge/lane
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
@ SVC_IGNORING
vehicles ignoring classes
SumoXMLEdgeFunc
Numbers representing special SUMO-XML-attribute values for representing edge functions used in netbui...
double gWeightsRandomFactor
A class that stores a 2D geometrical boundary.
Base class for objects which have an id.
An upper class for objects with additional parameters.
static double computeDefault(const SUMOEmissionClass c, const EmissionType e, const double v, const double a, const double slope, const double tt, const EnergyParams *param)
Returns the amount of emitted pollutant given the vehicle type and default values for the state (in m...
A point in 2D or 3D with translation and scaling methods.
A basic edge for routing applications.
bool allFollowersProhibit(const ROVehicle *const vehicle) const
Returns whether this edge succeeding edges prohibit the given vehicle to pass them.
static double myPriorityFactor
Coefficient for factoring edge priority into routing weight.
RailEdge< ROEdge, ROVehicle > * getRailwayRoutingEdge() const
double getVClassMaxSpeed(SUMOVehicleClass vclass) const
Returns the lane's maximum speed, given a vehicle's speed limit adaptation.
bool hasStoredEffort() const
whether effort data was loaded for this edge
const ROEdge * getBidiEdge() const
return opposite superposable/congruent edge, if it exist and 0 else
int getNumericalID() const
Returns the index (numeric id) of the edge.
const ROEdge * getNormalBefore() const
if this edge is an internal edge, return its first normal predecessor, otherwise the edge itself
double getDistanceTo(const ROEdge *other, const bool doBoundaryEstimate=false) const
optimistic distance heuristic for use in routing
void setFunction(SumoXMLEdgeFunc func)
Sets the function of the edge.
const ROEdge * getNormalAfter() const
if this edge is an internal edge, return its first normal successor, otherwise the edge itself
void addEffort(double value, double timeBegin, double timeEnd)
Adds a weight value.
bool hasLoadedTravelTime(double time) const
Returns whether a travel time for this edge was loaded.
static double getStoredEffort(const ROEdge *const edge, const ROVehicle *const, double time)
ReversedEdge< ROEdge, ROVehicle > * myReversedRoutingEdge
a reversed version for backward routing
bool restricts(const ROVehicle *const vehicle) const
Returns whether this edge has restriction parameters forbidding the given vehicle to pass it.
void buildTimeLines(const std::string &measure, const bool boundariesOverride)
Builds the internal representation of the travel time/effort.
int getNumLanes() const
Returns the number of lanes this edge has.
std::vector< ROLane * > myLanes
This edge's lanes.
void setRestrictions(const std::map< SUMOVehicleClass, double > *restrictions)
Sets the vehicle class specific speed limits of the edge.
static bool initPriorityFactor(double priorityFactor)
initialize priority factor range
int getPriority() const
get edge priority (road class)
static ROEdgeVector myEdges
RailEdge< ROEdge, ROVehicle > * myRailwayRoutingEdge
static double getTravelTimeStaticPriorityFactor(const ROEdge *const edge, const ROVehicle *const veh, double time)
Return traveltime weighted by edge priority (scaled penalty for low-priority edges)
const RONode * getToJunction() const
const int myIndex
The index (numeric id) of the edge.
SumoXMLEdgeFunc myFunction
The function of the edge.
bool myUsingTTTimeLine
Information whether the time line shall be used instead of the length value.
void setSource(const bool isSource=true)
Sets whether the edge is a source.
std::map< SUMOVehicleClass, ROEdgeVector > myClassesSuccessorMap
The successors available for a given vClass.
bool isNormal() const
return whether this edge is a normal edge
bool isTazConnector() const
std::map< SUMOVehicleClass, ROConstEdgePairVector > myClassesViaSuccessorMap
The successors with vias available for a given vClass.
void setBidiEdge(const ROEdge *bidiEdge)
set opposite superposable/congruent edge
std::vector< double > myParamRestrictions
cached value of parameters which may restrict access
const ROEdge * getOtherTazConnector() const
bool myUsingETimeLine
Information whether the time line shall be used instead of the length value.
bool prohibits(const ROVehicle *const vehicle) const
Returns whether this edge prohibits the given vehicle to pass it.
const RONode * getFromJunction() const
double getSpeedLimit() const
Returns the speed allowed on this edge.
const ROEdge * myOtherTazConnector
the other taz-connector if this edge isTazConnector, otherwise nullptr
bool isSink() const
Returns whether the edge acts as a sink.
virtual void addLane(ROLane *lane)
Adds a lane to the edge while loading.
ValueTimeLine< double > myEfforts
Container storing passing time varying over time for the edge.
bool isInternal() const
return whether this edge is an internal edge
virtual ~ROEdge()
Destructor.
void setSink(const bool isSink=true)
Sets whether the edge is a sink.
static double getTravelTimeAggregated(const ROEdge *const edge, const ROVehicle *const veh, double time)
Alias for getTravelTimeStatic (there is no routing device to provide aggregated travel times)
ROEdge(const ROEdge &src)
Invalidated copy constructor.
static double getEmissionEffort(const ROEdge *const edge, const ROVehicle *const veh, double time)
int getNumSuccessors() const
Returns the number of edges this edge is connected to.
double getTimePenalty() const
const ROEdge * myBidiEdge
the bidirectional rail edge or nullpr
Boundary myBoundary
The bounding rectangle of end nodes incoming or outgoing edges for taz connectors or of my own start ...
static double getNoiseEffort(const ROEdge *const edge, const ROVehicle *const veh, double time)
RONode * myFromJunction
the junctions for this edge
static bool myInterpolate
Information whether to interpolate at interval boundaries.
const ROConstEdgePairVector & getViaSuccessors(SUMOVehicleClass vClass=SVC_IGNORING, bool ignoreTransientPermissions=false) const
Returns the following edges including vias, restricted by vClass.
ROEdge & operator=(const ROEdge &src)
Invalidated assignment operator.
const ROEdgeVector & getPredecessors() const
Returns the edge at the given position from the list of incoming edges.
static void disableTimelineWarning()
SumoXMLEdgeFunc getFunction() const
Returns the function of the edge.
double getTravelTime(const ROVehicle *const veh, double time) const
Returns the travel time for this edge.
double getMinimumTravelTime(const ROVehicle *const veh) const
Returns a lower bound for the travel time on this edge without using any stored timeLine.
double myLength
The length of the edge.
bool myAmSink
whether the edge is a source or a sink
SVCPermissions getPermissions() const
void setOtherTazConnector(const ROEdge *edge)
const ROEdgeVector & getSuccessors(SUMOVehicleClass vClass=SVC_IGNORING) const
Returns the following edges, restricted by vClass.
void addTravelTime(double value, double timeBegin, double timeEnd)
Adds a travel time value.
void cacheParamRestrictions(const std::vector< std::string > &restrictionKeys)
int getNumPredecessors() const
Returns the number of edges connected to this edge.
static double getTravelTimeStaticRandomized(const ROEdge *const edge, const ROVehicle *const veh, double time)
static double myEdgePriorityRange
the difference between maximum and minimum priority for all edges
double myTimePenalty
flat penalty when computing traveltime
const std::map< SUMOVehicleClass, double > * myRestrictions
The vClass speed restrictions for this edge.
SVCPermissions myCombinedPermissions
The list of allowed vehicle classes combined across lanes.
static const Position getStopPosition(const SUMOVehicleParameter::Stop &stop)
return the coordinates of the center of the given stop
static bool myHaveTTWarned
Information whether the edge has reported missing weights.
double getEffort(const ROVehicle *const veh, double time) const
Returns the effort for this edge.
const std::vector< ROLane * > & getLanes() const
Returns this edge's lanes.
static double getEffortStatic(const ROEdge *const edge, const ROVehicle *const veh, double time)
Returns the effort for the given edge.
bool isWalkingArea() const
return whether this edge is walking area
double getLengthGeometryFactor() const
return a lower bound on shape.length() / myLength that is
double getLength() const
Returns the length of the edge.
ROEdgeVector myFollowingEdges
List of edges that may be approached from this edge.
ROConstEdgePairVector myFollowingViaEdges
ValueTimeLine< double > myTravelTimes
Container storing passing time varying over time for the edge.
static void setGlobalOptions(const bool interpolate)
bool isCrossing() const
return whether this edge is a pedestrian crossing
static double getTravelTimeStatic(const ROEdge *const edge, const ROVehicle *const veh, double time)
Returns the travel time for the given edge.
virtual void addSuccessor(ROEdge *s, ROEdge *via=nullptr, std::string dir="")
Adds information about a connected edge.
const int myPriority
The edge priority (road class)
static double myMinEdgePriority
Minimum priority for all edges.
bool isConnectedTo(const ROEdge &e, const SUMOVehicleClass vClass) const
returns the information whether this edge is directly connected to the given
static bool myHaveEWarned
Information whether the edge has reported missing weights.
ReversedEdge< ROEdge, ROVehicle > * getReversedRoutingEdge() const
static const ROEdgeVector & getAllEdges()
Returns all ROEdges.
ROEdgeVector myApproachingEdges
List of edges that approached this edge.
double mySpeed
The maximum speed allowed on this edge.
void setTimePenalty(double value)
A single lane the router may use.
Base class for nodes used by the router.
SUMOVehicleClass getVClass() const
const SUMOVTypeParameter * getType() const
Returns the type of the routable.
A vehicle as used by router.
double getChosenSpeedFactor() const
Returns an upper bound for the speed factor of this vehicle.
the edge type representing backward edges
static double rand(SumoRNG *rng=nullptr)
Returns a random real number in [0, 1)
the edge type representing backward edges
Structure representing possible vehicle parameter.
SUMOEmissionClass emissionClass
The emission class of this vehicle.
std::vector< double > paramRestrictions
cached value of parameters which may restrict access to certain edges
double maxSpeed
The vehicle type's (technical) maximum speed [m/s].
double getCFParam(const SumoXMLAttr attr, const double defaultValue) const
Returns the named value from the map, or the default if it is not contained there.
SUMOVehicleClass vehicleClass
The vehicle's class.
static double getDefaultImperfection(const SUMOVehicleClass vc=SVC_IGNORING)
Returns the default driver's imperfection (sigma or epsilon in Krauss' model) for the given vehicle c...
static double getDefaultAccel(const SUMOVehicleClass vc=SVC_IGNORING)
Returns the default acceleration for the given vehicle class This needs to be a function because the ...
Definition of vehicle stop (position and duration)