SUMO - Simulation of Urban MObility
|
Representation of a lane in the micro simulation. More...
#include <MSLane.h>
Data Structures | |
class | by_connections_to_sorter |
class | edge_finder |
struct | IncomingLaneInfo |
class | vehicle_position_sorter |
Sorts vehicles by their position (descending) More... | |
struct | VehPosition |
Public Types | |
typedef std::vector< MSVehicle * > | VehCont |
Container for vehicles. More... | |
Public Member Functions | |
void | addApproachingLane (MSLane *lane) |
void | addIncomingLane (MSLane *lane, MSLink *viaLink) |
void | addParameter (const std::string &key, const std::string &value) |
Adds a parameter. More... | |
void | addParameter (const std::map< std::string, std::string > &mapArg) |
Adds all given parameter. More... | |
void | addParameter (const Parameterised &p) |
Adds all given parameter. More... | |
void | addTo (const StoringVisitor &cont) const |
Adds this object to the given container. More... | |
bool | allowsVehicleClass (SUMOVehicleClass vclass) const |
virtual bool | appropriate (const MSVehicle *veh) |
void | clearParameter () |
Clears the parameter map. More... | |
virtual void | detectCollisions (SUMOTime timestep, const std::string &stage) |
Check if vehicles are too close. More... | |
bool | empty () const |
Returns true if there is not a single vehicle on the lane. More... | |
void | enteredByLaneChange (MSVehicle *v) |
std::pair< MSVehicle *const, SUMOReal > | getCriticalLeader (SUMOReal dist, SUMOReal seen, SUMOReal speed, const MSVehicle &veh) const |
Returns the most dangerous leader and the distance to him. More... | |
int | getCrossingIndex () const |
return the index of the link to the next crossing if this is walkingArea, else -1 More... | |
MSEdge & | getEdge () const |
Returns the lane's edge. More... | |
MSVehicle * | getFirstVehicle () const |
std::pair< MSVehicle *const, SUMOReal > | getFollowerOnConsecutive (SUMOReal backOffset, SUMOReal leaderSpeed, SUMOReal leaderMaxDecel) const |
return the follower with the largest missing rear gap among all predecessor lanes (within dist) More... | |
const std::string & | getID () const |
Returns the id. More... | |
const std::vector < IncomingLaneInfo > & | getIncomingLanes () const |
LinkState | getIncomingLinkState () const |
get the state of the link from the logical predecessor to this lane More... | |
const MSEdge * | getInternalFollower () const |
Returns the lane's follower if it is an internal lane, the edge of the lane otherwise. More... | |
MSVehicle * | getLastVehicle () const |
returns the last vehicle More... | |
std::pair< MSVehicle *const, SUMOReal > | getLeaderOnConsecutive (SUMOReal dist, SUMOReal seen, SUMOReal speed, const MSVehicle &veh, const std::vector< MSLane * > &bestLaneConts) const |
Returns the immediate leader and the distance to him. More... | |
const MSLinkCont & | getLinkCont () const |
returns the container with all links !!! More... | |
MSLane * | getLogicalPredecessorLane () const |
const std::map< std::string, std::string > & | getMap () const |
Returns the inner key/value map. More... | |
SUMOReal | getMissingRearGap (SUMOReal backOffset, SUMOReal leaderSpeed, SUMOReal leaderMaxDecel) const |
return by how much further the leader must be inserted to avoid rear end collisions More... | |
std::vector< const MSLane * > | getOutgoingLanes () const |
get the list of outgoing lanes More... | |
MSLane * | getParallelLane (int offset) const |
Returns the lane with the given offset parallel to this one or 0 if it does not exist. More... | |
const std::string & | getParameter (const std::string &key, const std::string &defaultValue) const |
Returns the value for a given key. More... | |
bool | isApproachedFrom (MSEdge *const edge) |
bool | isApproachedFrom (MSEdge *const edge, MSLane *const lane) |
bool | isEmpty () const |
bool | isLinkEnd (MSLinkCont::const_iterator &i) const |
bool | isLinkEnd (MSLinkCont::iterator &i) |
bool | knowsParameter (const std::string &key) const |
Returns whether the parameter is known. More... | |
void | leftByLaneChange (MSVehicle *v) |
MSLane (const std::string &id, SUMOReal maxSpeed, SUMOReal length, MSEdge *const edge, unsigned int numericalID, const PositionVector &shape, SUMOReal width, SVCPermissions permissions) | |
Constructor. More... | |
virtual MSVehicle * | removeVehicle (MSVehicle *remVehicle, MSMoveReminder::Notification notification, bool notify=true) |
void | setID (const std::string &newID) |
resets the id More... | |
void | setLength (SUMOReal val) |
Sets a new length for the lane (used by TraCI only) More... | |
void | setMaxSpeed (SUMOReal val) |
Sets a new maximum speed for the lane (used by TraCI and MSCalibrator) More... | |
void | setPermissions (SVCPermissions permissions) |
void | visit (const TraCIServerAPI_Lane::StoringVisitor &cont) const |
Callback for visiting the lane when traversing an RTree. More... | |
virtual | ~MSLane () |
Destructor. More... | |
Additional initialisation | |
void | addLink (MSLink *link) |
Delayed initialization. More... | |
interaction with MSMoveReminder | |
virtual void | addMoveReminder (MSMoveReminder *rem) |
Add a move-reminder to move-reminder container. More... | |
const std::vector < MSMoveReminder * > & | getMoveReminders () const |
Return the list of this lane's move reminders. More... | |
Vehicle insertion | |
bool | insertVehicle (MSVehicle &v) |
Tries to insert the given vehicle. More... | |
bool | isInsertionSuccess (MSVehicle *vehicle, SUMOReal speed, SUMOReal pos, bool recheckNextLanes, MSMoveReminder::Notification notification) |
Tries to insert the given vehicle with the given state (speed and pos) More... | |
bool | checkFailure (MSVehicle *aVehicle, SUMOReal &speed, SUMOReal &dist, const SUMOReal nspeed, const bool patchSpeed, const std::string errorMsg) const |
bool | pWagGenericInsertion (MSVehicle &veh, SUMOReal speed, SUMOReal maxPos, SUMOReal minPos) |
bool | pWagSimpleInsertion (MSVehicle &veh, SUMOReal speed, SUMOReal maxPos, SUMOReal minPos) |
bool | maxSpeedGapInsertion (MSVehicle &veh, SUMOReal mspeed) |
bool | freeInsertion (MSVehicle &veh, SUMOReal speed, MSMoveReminder::Notification notification=MSMoveReminder::NOTIFICATION_DEPARTED) |
Tries to insert the given vehicle on any place. More... | |
void | forceVehicleInsertion (MSVehicle *veh, SUMOReal pos) |
Inserts the given vehicle at the given position. More... | |
Handling vehicles lapping into lanes | |
SUMOReal | setPartialOccupation (MSVehicle *v, SUMOReal leftVehicleLength) |
Sets the information about a vehicle lapping into this lane. More... | |
void | resetPartialOccupation (MSVehicle *v) |
Removes the information about a vehicle lapping into this lane. More... | |
MSVehicle * | getPartialOccupator () const |
Returns the vehicle which laps into this lane. More... | |
SUMOReal | getPartialOccupatorEnd () const |
Returns the position of the in-lapping vehicle's end. More... | |
std::pair< MSVehicle *, SUMOReal > | getLastVehicleInformation () const |
Returns the last vehicle which is still on the lane. More... | |
Access to vehicles | |
unsigned int | getVehicleNumber () const |
Returns the number of vehicles on this lane. More... | |
virtual const VehCont & | getVehiclesSecure () const |
Returns the vehicles container; locks it for microsimulation. More... | |
virtual void | releaseVehicles () const |
Allows to use the container for microsimulation again. More... | |
Atomar value getter | |
size_t | getNumericalID () const |
Returns this lane's numerical id. More... | |
const PositionVector & | getShape () const |
Returns this lane's shape. More... | |
SUMOReal | getLengthGeometryFactor () const |
return shape.length() / myLength More... | |
SUMOReal | interpolateLanePosToGeometryPos (SUMOReal lanePos) const |
const Position | geometryPositionAtOffset (SUMOReal offset) const |
SUMOReal | interpolateGeometryPosToLanePos (SUMOReal geometryPos) const |
SUMOReal | getVehicleMaxSpeed (const SUMOVehicle *const veh) const |
Returns the lane's maximum speed, given a vehicle's speed limit adaptation. More... | |
SUMOReal | getSpeedLimit () const |
Returns the lane's maximum allowed speed. More... | |
SUMOReal | getLength () const |
Returns the lane's length. More... | |
SVCPermissions | getPermissions () const |
Returns the vehicle class permissions for this lane. More... | |
SUMOReal | getWidth () const |
Returns the lane's width. More... | |
Vehicle movement (longitudinal) | |
virtual void | planMovements (const SUMOTime t) |
Compute safe velocities for all vehicles based on positions and speeds from the last time step. Also registers ApproachingVehicleInformation for all links. More... | |
virtual bool | executeMovements (SUMOTime t, std::vector< MSLane * > &into) |
Executes planned vehicle movements with regards to right-of-way. More... | |
virtual bool | integrateNewVehicle (SUMOTime t) |
Insert buffered vehicle into the real lane. More... | |
Current state retrieval | |
SUMOReal | getMeanSpeed () const |
Returns the mean speed on this lane. More... | |
SUMOReal | getWaitingSeconds () const |
Returns the overall waiting time on this lane. More... | |
SUMOReal | getBruttoOccupancy () const |
Returns the brutto (including minGaps) occupancy of this lane during the last step. More... | |
SUMOReal | getNettoOccupancy () const |
Returns the netto (excluding minGaps) occupancy of this lane during the last step (including minGaps) More... | |
SUMOReal | getBruttoVehLenSum () const |
Returns the sum of lengths of vehicles, including their minGaps, which were on the lane during the last step. More... | |
SUMOReal | getCO2Emissions () const |
Returns the sum of last step CO2 emissions. More... | |
SUMOReal | getCOEmissions () const |
Returns the sum of last step CO emissions. More... | |
SUMOReal | getPMxEmissions () const |
Returns the sum of last step PMx emissions. More... | |
SUMOReal | getNOxEmissions () const |
Returns the sum of last step NOx emissions. More... | |
SUMOReal | getHCEmissions () const |
Returns the sum of last step HC emissions. More... | |
SUMOReal | getFuelConsumption () const |
Returns the sum of last step fuel consumption. More... | |
SUMOReal | getHarmonoise_NoiseEmissions () const |
Returns the sum of last step noise emissions. More... | |
State saving/loading | |
void | saveState (OutputDevice &out) |
Saves the state of this lane into the given stream. More... | |
void | loadState (std::vector< std::string > &vehIDs, MSVehicleControl &vc) |
Loads the state of this segment with the given parameters. More... | |
Static Public Member Functions | |
static void | clear () |
Clears the dictionary. More... | |
static bool | dictionary (const std::string &id, MSLane *lane) |
Static (sic!) container methods {. More... | |
static MSLane * | dictionary (const std::string &id) |
Returns the MSLane associated to the key id. More... | |
static size_t | dictSize () |
Returns the number of stored lanes. More... | |
template<class RTREE > | |
static void | fill (RTREE &into) |
Fills the given RTree with lane instances. More... | |
static void | insertIDs (std::vector< std::string > &into) |
Adds the ids of all stored lanes into the given vector. More... | |
static MSLinkCont::const_iterator | succLinkSec (const SUMOVehicle &veh, unsigned int nRouteSuccs, const MSLane &succLinkSource, const std::vector< MSLane * > &conts) |
Data Fields | |
PositionVector | myShape |
The shape of the lane. More... | |
Protected Types | |
typedef std::map< std::string, MSLane * > | DictType |
definition of the static dictionary type More... | |
Protected Member Functions | |
SUMOReal | getMaximumBrakeDist () const |
compute maximum braking distance on this lane More... | |
void | handleCollision (SUMOTime timestep, const std::string &stage, MSVehicle *collider, MSVehicle *victim, const SUMOReal gap) |
issue warning and add the vehicle to MSVehicleTransfer More... | |
virtual void | incorporateVehicle (MSVehicle *veh, SUMOReal pos, SUMOReal speed, const MSLane::VehCont::iterator &at, MSMoveReminder::Notification notification=MSMoveReminder::NOTIFICATION_DEPARTED) |
Inserts the vehicle into this lane, and informs it about entering the network. More... | |
virtual void | swapAfterLaneChange (SUMOTime t) |
moves myTmpVehicles int myVehicles after a lane change procedure More... | |
Protected Attributes | |
std::map< MSEdge *, std::vector< MSLane * > > | myApproachingLanes |
SUMOReal | myBruttoVehicleLengthSum |
The current length of all vehicles on this lane, including their minGaps. More... | |
MSEdge *const | myEdge |
The lane's edge, for routing only. More... | |
std::string | myID |
The name of the object. More... | |
std::vector< IncomingLaneInfo > | myIncomingLanes |
MSVehicle * | myInlappingVehicle |
The vehicle which laps into this lane. More... | |
SUMOReal | myInlappingVehicleEnd |
End position of a vehicle which laps into this lane. More... | |
SUMOReal | myLength |
Lane length [m]. More... | |
const SUMOReal | myLengthGeometryFactor |
MSLinkCont | myLinks |
MSLane * | myLogicalPredecessorLane |
SUMOReal | myMaxSpeed |
Lane-wide speedlimit [m/s]. More... | |
SUMOReal | myNettoVehicleLengthSum |
The current length of all vehicles on this lane, excluding their minGaps. More... | |
size_t | myNumericalID |
Unique numerical ID (set on reading by netload) More... | |
SVCPermissions | myPermissions |
The vClass permissions for this lane. More... | |
VehCont | myTmpVehicles |
std::vector< MSVehicle * > | myVehBuffer |
VehCont | myVehicles |
The lane's vehicles. The entering vehicles are inserted at the front of this container and the leaving ones leave from the back, e.g. the vehicle in front of the junction (often called first) is myVehicles.back() (if it exists). And if it is an iterator at a vehicle, ++it points to the vehicle in front. This is the interaction vehicle. More... | |
const SUMOReal | myWidth |
Lane width [m]. More... | |
Static Protected Attributes | |
static DictType | myDict |
Static dictionary to associate string-ids with objects. More... | |
Private Member Functions | |
MSLane (const MSLane &) | |
invalidated copy constructor More... | |
MSLane & | operator= (const MSLane &) |
invalidated assignment operator More... | |
Private Attributes | |
std::vector< MSMoveReminder * > | myMoveReminders |
This lane's move reminder. More... | |
Friends | |
class | MSLaneChanger |
needs access to myTmpVehicles (this maybe should be done via double-buffering!!!) More... | |
class | MSQueueExport |
class | MSXMLRawOut |
Representation of a lane in the micro simulation.
Class which represents a single lane. Somekind of the main class of the simulation. Allows moving vehicles.
|
protected |
typedef std::vector< MSVehicle* > MSLane::VehCont |
MSLane::MSLane | ( | const std::string & | id, |
SUMOReal | maxSpeed, | ||
SUMOReal | length, | ||
MSEdge *const | edge, | ||
unsigned int | numericalID, | ||
const PositionVector & | shape, | ||
SUMOReal | width, | ||
SVCPermissions | permissions | ||
) |
Constructor.
[in] | id | The lane's id |
[in] | maxSpeed | The speed allowed on this lane |
[in] | length | The lane's length |
[in] | edge | The edge this lane belongs to |
[in] | numericalID | The numerical id of the lane |
[in] | shape | The shape of the lane |
[in] | width | The width of the lane |
[in] | permissions | Encoding of the Vehicle classes that may drive on this lane |
Definition at line 87 of file MSLane.cpp.
|
virtual |
|
private |
invalidated copy constructor
void MSLane::addApproachingLane | ( | MSLane * | lane | ) |
Definition at line 1086 of file MSLane.cpp.
References MSEdge::EDGEFUNCTION_INTERNAL, getEdge(), Named::getID(), MSEdge::getPurpose(), myApproachingLanes, and WRITE_WARNING.
Referenced by NLHandler::addConnection().
Definition at line 1076 of file MSLane.cpp.
References getLength(), MSLane::IncomingLaneInfo::lane, MSLane::IncomingLaneInfo::length, myIncomingLanes, and MSLane::IncomingLaneInfo::viaLink.
Referenced by NLHandler::addConnection().
void MSLane::addLink | ( | MSLink * | link | ) |
Delayed initialization.
Not all lane-members are known at the time the lane is born, above all the pointers to other lanes, so we have to add them later.
[in] | link | An outgoing link |
Definition at line 107 of file MSLane.cpp.
References myLinks.
Referenced by NLHandler::addConnection().
|
virtual |
Add a move-reminder to move-reminder container.
The move reminder will not be deleted by the lane.
[in] | rem | The move reminder to add |
Definition at line 114 of file MSLane.cpp.
References myMoveReminders, and myVehicles.
Referenced by MSMoveReminder::MSMoveReminder().
|
inherited |
Adds a parameter.
[in] | key | The parameter's name |
[in] | value | The parameter's value |
Definition at line 53 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by SUMORouteHandler::addParam(), NLHandler::addParam(), PCLoaderOSM::addPOI(), PCLoaderOSM::addPolygon(), NBTrafficLightDefinition::compute(), NIImporter_OpenDrive::loadNetwork(), NIImporter_MATSim::EdgesHandler::myStartElement(), TraCIServerAPI_Edge::processSet(), TraCIServerAPI_POI::processSet(), TraCIServerAPI_TLS::processSet(), TraCIServerAPI_Polygon::processSet(), and TraCIServerAPI_Lane::processSet().
|
inherited |
Adds all given parameter.
[in] | mapArg | The keys/values to insert |
Definition at line 59 of file Parameterised.cpp.
References Parameterised::myMap.
|
inherited |
Adds all given parameter.
[in] | p | The keys/values to insert |
Definition at line 67 of file Parameterised.cpp.
References Parameterised::myMap.
|
inlineinherited |
Adds this object to the given container.
in,filled] | cont The container to add this item to |
Definition at line 121 of file Named.h.
References Named::StoringVisitor::add().
|
inline |
Definition at line 571 of file MSLane.h.
References myPermissions.
Referenced by MSVehicle::addStop(), MSPModel_NonInteracting::PState::getPosition(), and MSVehicle::updateBestLanes().
Returns the information whether this lane may be used to continue the current route
Definition at line 910 of file MSLane.cpp.
References MSEdge::EDGEFUNCTION_INTERNAL, MSVehicle::getBestLanes(), MSVehicle::getBestLanesContinuation(), MSVehicle::getLaneIndex(), MSEdge::getPurpose(), myEdge, myLinks, MSBaseVehicle::succEdge(), and succLinkSec().
Referenced by executeMovements().
bool MSLane::checkFailure | ( | MSVehicle * | aVehicle, |
SUMOReal & | speed, | ||
SUMOReal & | dist, | ||
const SUMOReal | nspeed, | ||
const bool | patchSpeed, | ||
const std::string | errorMsg | ||
) | const |
Definition at line 428 of file MSLane.cpp.
References MSCFModel::brakeGap(), MSInsertionControl::descheduleDeparture(), MSVehicle::getCarFollowModel(), MSBaseVehicle::getID(), MSNet::getInsertionControl(), MSNet::getInstance(), MSVehicleType::getMinGap(), MSBaseVehicle::getVehicleType(), MIN2(), and WRITE_ERROR.
Referenced by isInsertionSuccess().
|
static |
Clears the dictionary.
Definition at line 875 of file MSLane.cpp.
References myDict.
Referenced by MSNet::clearAll().
|
inherited |
Clears the parameter map.
Definition at line 91 of file Parameterised.cpp.
References Parameterised::myMap.
|
virtual |
Check if vehicles are too close.
Reimplemented in GUILane.
Definition at line 683 of file MSLane.cpp.
References getPartialOccupator(), getPartialOccupatorEnd(), handleCollision(), myVehicles, NUMERICAL_EPS, and SUMOReal.
Referenced by GUILane::detectCollisions().
Static (sic!) container methods {.
Inserts a MSLane into the static dictionary
Returns true if the key id isn't already in the dictionary. Otherwise returns false.
[in] | id | The id of the lane |
[in] | lane | The lane itself |
make non-static
why is the id given? The lane is named
Definition at line 852 of file MSLane.cpp.
References myDict.
Referenced by NLHandler::addConnection(), NLHandler::addLane(), MSRouteHandler::addStop(), MSVehicle::addStop(), NLTriggerBuilder::getLane(), NLDetectorBuilder::getLaneChecking(), NLShapeHandler::getLanePos(), TraCIServerAPI_Lane::getShape(), NLTriggerBuilder::parseAndBuildLaneSpeedTrigger(), NLHandler::parseLanes(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_Vehicle::processSet(), and TraCIServerAPI_Lane::processSet().
|
static |
Returns the MSLane associated to the key id.
The lane is returned if exists, otherwise 0 is returned.
[in] | id | The id of the lane |
Definition at line 864 of file MSLane.cpp.
References myDict.
|
inlinestatic |
|
inline |
Returns true if there is not a single vehicle on the lane.
Definition at line 437 of file MSLane.h.
References myVehBuffer, and myVehicles.
Referenced by MSQueueExport::writeLane().
void MSLane::enteredByLaneChange | ( | MSVehicle * | v | ) |
Definition at line 1414 of file MSLane.cpp.
References MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), myBruttoVehicleLengthSum, and myNettoVehicleLengthSum.
Referenced by MSAbstractLaneChangeModel::startLaneChangeManeuver().
Executes planned vehicle movements with regards to right-of-way.
This method goes through all vehicles calling their executeMove method which causes vehicles to update their positions and speeds. Vehicles wich move to the next lane are stored in the targets lane buffer
Reimplemented in GUILane.
Definition at line 742 of file MSLane.cpp.
References MSVehicleTransfer::add(), MSAbstractLaneChangeModel::alreadyMoved(), appropriate(), MSVehicle::executeMove(), MSVehicle::getBestLanesContinuation(), getEdge(), Named::getID(), MSBaseVehicle::getID(), MSVehicle::getInfluencer(), MSVehicleTransfer::getInstance(), MSNet::getInstance(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSVehicleType::getLength(), getLength(), MSVehicleType::getLengthWithGap(), MSVehicle::getPositionOnLane(), MSAbstractLaneChangeModel::getShadowLane(), MSVehicle::getSpeed(), getSpeedLimit(), MSNet::getVehicleControl(), MSBaseVehicle::getVehicleType(), MSVehicle::getWaitingTime(), MSGlobals::gTimeToGridlock, MSGlobals::gTimeToGridlockHighways, MSVehicle::hasArrived(), MSVehicle::hasInfluencer(), MSAbstractLaneChangeModel::isChangingLanes(), MSVehicle::isParking(), MSVehicle::isStopped(), MSEdge::isVaporizing(), MSVehicle::Influencer::isVTDControlled(), myBruttoVehicleLengthSum, myLinks, myNettoVehicleLengthSum, myVehBuffer, myVehicles, MSMoveReminder::NOTIFICATION_ARRIVED, MSMoveReminder::NOTIFICATION_VAPORIZED, MSVehicle::onRemovalFromNet(), MSVehicleControl::registerCollision(), MSVehicleControl::registerTeleportJam(), MSVehicleControl::registerTeleportWrongLane(), MSVehicleControl::registerTeleportYield(), MSVehicleControl::scheduleVehicleRemoval(), SPEED2DIST, succLinkSec(), SUMOReal, time2string(), MSVehicle::workOnMoveReminders(), and WRITE_WARNING.
Referenced by GUILane::executeMovements().
|
static |
Fills the given RTree with lane instances.
in,filled] | into The RTree to fill |
Definition at line 892 of file MSLane.cpp.
References PositionVector::getBoxBoundary(), getShape(), Boundary::grow(), myDict, Boundary::xmax(), Boundary::xmin(), Boundary::ymax(), and Boundary::ymin().
Referenced by TraCIServer::collectObjectsInRange(), and MSNet::getLanesRTree().
Inserts the given vehicle at the given position.
No checks are done, vehicle insertion using this method may generate collisions (possibly delayed).
[in] | veh | The vehicle to insert |
[in] | pos | The position at which the vehicle shall be inserted |
Definition at line 626 of file MSLane.cpp.
References MSVehicle::getSpeed(), incorporateVehicle(), myVehicles, and MSVehicle::updateBestLanes().
Referenced by TraCIServerAPI_Vehicle::processSet().
bool MSLane::freeInsertion | ( | MSVehicle & | veh, |
SUMOReal | speed, | ||
MSMoveReminder::Notification | notification = MSMoveReminder::NOTIFICATION_DEPARTED |
||
) |
Tries to insert the given vehicle on any place.
[in] | veh | The vehicle to insert |
[in] | speed | The maximum insertion speed |
[in] | notification | The cause of insertion (i.e. departure, teleport, parking) defaults to departure |
Definition at line 275 of file MSLane.cpp.
References MSVehicle::getCarFollowModel(), MSVehicleType::getLength(), getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), getMissingRearGap(), getPartialOccupator(), getPartialOccupatorEnd(), MSVehicle::getPositionOnLane(), MSCFModel::getSecureGap(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), MSCFModel::insertionFollowSpeed(), isInsertionSuccess(), MIN2(), myLength, myVehicles, MSMoveReminder::NOTIFICATION_TELEPORT, POSITION_EPS, and SUMOReal.
Referenced by MSVehicleTransfer::checkInsertions(), and insertVehicle().
Definition at line 340 of file MSLane.h.
References interpolateLanePosToGeometryPos(), myShape, and PositionVector::positionAtOffset().
Referenced by GUIE3Collector::MyWrapper::buildDefinition(), GUIVehicle::drawGL(), MSVehicle::getAngle(), NLShapeHandler::getLanePos(), MSVehicle::getPosition(), GUIInstantInductLoop::MyWrapper::MyWrapper(), and GUIInductLoop::MyWrapper::MyWrapper().
SUMOReal MSLane::getBruttoOccupancy | ( | ) | const |
Returns the brutto (including minGaps) occupancy of this lane during the last step.
Definition at line 1432 of file MSLane.cpp.
References MSVehicleType::getLength(), MSVehicle::getPositionOnLane(), getVehiclesSecure(), MSBaseVehicle::getVehicleType(), myBruttoVehicleLengthSum, myInlappingVehicle, myInlappingVehicleEnd, myLength, myVehicles, releaseVehicles(), and SUMOReal.
Referenced by GUILane::getColorValue(), GUILane::getParameterWindow(), GUILane::getScaleValue(), and MSEdge::insertVehicle().
SUMOReal MSLane::getBruttoVehLenSum | ( | ) | const |
Returns the sum of lengths of vehicles, including their minGaps, which were on the lane during the last step.
Definition at line 1462 of file MSLane.cpp.
References myBruttoVehicleLengthSum.
Referenced by MSVehicle::checkRewindLinkLanes().
SUMOReal MSLane::getCO2Emissions | ( | ) | const |
Returns the sum of last step CO2 emissions.
Definition at line 1497 of file MSLane.cpp.
References getVehiclesSecure(), releaseVehicles(), and SUMOReal.
Referenced by GUILane::getColorValue(), GUILane::getScaleValue(), TraCIServerAPI_Lane::processGet(), and MSFullExport::writeLane().
SUMOReal MSLane::getCOEmissions | ( | ) | const |
Returns the sum of last step CO emissions.
Definition at line 1509 of file MSLane.cpp.
References getVehiclesSecure(), releaseVehicles(), and SUMOReal.
Referenced by GUILane::getColorValue(), GUILane::getScaleValue(), TraCIServerAPI_Lane::processGet(), and MSFullExport::writeLane().
std::pair< MSVehicle *const, SUMOReal > MSLane::getCriticalLeader | ( | SUMOReal | dist, |
SUMOReal | seen, | ||
SUMOReal | speed, | ||
const MSVehicle & | veh | ||
) | const |
Returns the most dangerous leader and the distance to him.
Goes along the vehicle's estimated used lanes (bestLaneConts). For each link, it is determined whether the ego vehicle will pass it. If so, the subsequent lane is investigated. Check all lanes up to the stopping distance of ego. Return the leader vehicle (and the gap) which puts the biggest speed constraint on ego.
If no leading vehicle was found, <0, -1> is returned.
Pretty slow, as it has to go along lanes.
[in] | dist | The distance to investigate |
[in] | seen | The already seen place (normally the place in front on own lane) |
[in] | speed | The speed of the vehicle used for determining whether a subsequent link will be opened at arrival time |
[in] | veh | The (ego) vehicle for which the information shall be computed |
Definition at line 1278 of file MSLane.cpp.
References MSCFModel::brakeGap(), MSVehicle::getBestLanesContinuation(), MSVehicle::getCarFollowModel(), MSNet::getCurrentTimeStep(), MSBaseVehicle::getImpatience(), MSNet::getInstance(), getLastVehicle(), MSVehicleType::getLength(), getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), getPartialOccupator(), getPartialOccupatorEnd(), MSVehicle::getPositionOnLane(), MSVehicle::getSafeFollowSpeed(), MSVehicle::getSpeed(), getVehicleMaxSpeed(), MSBaseVehicle::getVehicleType(), MSCFModel::insertionFollowSpeed(), isLinkEnd(), max, MAX2(), NUMERICAL_EPS, succLinkSec(), SUMOReal, and TIME2STEPS.
Referenced by MSLaneChanger::checkChange().
int MSLane::getCrossingIndex | ( | ) | const |
return the index of the link to the next crossing if this is walkingArea, else -1
Definition at line 1421 of file MSLane.cpp.
References myLinks.
|
inline |
Returns the lane's edge.
Definition at line 455 of file MSLane.h.
References myEdge.
Referenced by MSLCM_JE2013::_patchSpeed(), MSLCM_LC2013::_patchSpeed(), MSLCM_JE2013::_wantsChange(), MSLCM_LC2013::_wantsChange(), TraCIServerAPI_Lane::StoringVisitor::add(), addApproachingLane(), MSRouteHandler::addStop(), MSVehicle::addStop(), NLDetectorBuilder::buildInductLoop(), MSVehicle::checkRewindLinkLanes(), MSEdge::closeBuilding(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), MSVehicle::enterLaneAtMove(), MSVehicle::executeMove(), executeMovements(), MS_E2_ZS_CollectorOverLanes::extendTo(), MSDevice_Tripinfo::generateOutput(), MSVehicle::getBestLanesContinuation(), MSVehicle::getDistanceToPosition(), MSVehicle::getLaneIndex(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), getLogicalPredecessorLane(), MSPModel_Striping::getNextLane(), MSPModel_Striping::getNextLaneObstacles(), MSVehicle::getPosition(), MSVehicle::influenceChangeDecision(), MSRailSignal::init(), isInsertionSuccess(), MSLink::lastWasContMajor(), MSPModel_Striping::moveInDirection(), MSLane::edge_finder::operator()(), NLTriggerBuilder::parseAndBuildCalibrator(), MSLCM_DK2008::patchSpeed(), MSVehicle::planMoveInternal(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Lane::processGet(), MSVehicle::processNextStop(), TraCIServerAPI_Vehicle::processSet(), TraCIServerAPI_Lane::processSet(), MSPModel_Striping::PState::PState(), MSVehicle::resumeFromStopping(), MSLink::setRequestInformation(), succLinkSec(), MSVehicle::updateBestLanes(), TraCIServerAPI_Vehicle::vtdMap(), MSLCM_DK2008::wantsChangeToLeft(), and MSLCM_DK2008::wantsChangeToRight().
MSVehicle * MSLane::getFirstVehicle | ( | ) | const |
Definition at line 969 of file MSLane.cpp.
References myVehicles.
Referenced by getFollowerOnConsecutive().
std::pair< MSVehicle *const, SUMOReal > MSLane::getFollowerOnConsecutive | ( | SUMOReal | backOffset, |
SUMOReal | leaderSpeed, | ||
SUMOReal | leaderMaxDecel | ||
) | const |
return the follower with the largest missing rear gap among all predecessor lanes (within dist)
Definition at line 1149 of file MSLane.cpp.
References getFirstVehicle(), getIncomingLanes(), getLength(), getMaximumBrakeDist(), MSVehicleType::getMinGap(), getPartialOccupator(), MSVehicle::getPositionOnLane(), MSBaseVehicle::getVehicleType(), MSLane::IncomingLaneInfo::lane, MSLane::IncomingLaneInfo::length, max, MAX2(), myIncomingLanes, SUMOReal, and MSLane::IncomingLaneInfo::viaLink.
Referenced by getMissingRearGap().
SUMOReal MSLane::getFuelConsumption | ( | ) | const |
Returns the sum of last step fuel consumption.
Definition at line 1557 of file MSLane.cpp.
References getVehiclesSecure(), releaseVehicles(), and SUMOReal.
Referenced by GUILane::getColorValue(), GUILane::getScaleValue(), TraCIServerAPI_Lane::processGet(), and MSFullExport::writeLane().
SUMOReal MSLane::getHarmonoise_NoiseEmissions | ( | ) | const |
Returns the sum of last step noise emissions.
Definition at line 1569 of file MSLane.cpp.
References getVehiclesSecure(), releaseVehicles(), HelpersHarmonoise::sum(), and SUMOReal.
Referenced by GUILane::getColorValue(), GUILane::getScaleValue(), TraCIServerAPI_Lane::processGet(), and MSFullExport::writeLane().
SUMOReal MSLane::getHCEmissions | ( | ) | const |
Returns the sum of last step HC emissions.
Definition at line 1545 of file MSLane.cpp.
References getVehiclesSecure(), releaseVehicles(), and SUMOReal.
Referenced by GUILane::getColorValue(), GUILane::getScaleValue(), TraCIServerAPI_Lane::processGet(), and MSFullExport::writeLane().
|
inlineinherited |
Returns the id.
Definition at line 60 of file Named.h.
References Named::myID.
Referenced by NIImporter_SUMO::_loadNetwork(), MSVehicleTransfer::add(), TraCIServerAPI_Lane::StoringVisitor::add(), Named::StoringVisitor::add(), MSDetectorControl::add(), RORouteDef::addAlternative(), addApproachingLane(), MSNet::addBusStop(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), MSNet::addContainerStop(), NIXMLConnectionsHandler::addCrossing(), RODFDetectorCon::addDetector(), RONet::addEdge(), ROJTREdge::addFollowerProbability(), MSTLLogicControl::TLSLogicVariants::addLogic(), RONet::addNode(), NIImporter_SUMO::addPhase(), RONet::addRouteDef(), NBEdge::addSidewalk(), NBDistrict::addSink(), NBDistrict::addSource(), NBTrafficLightLogic::addStep(), MSRouteHandler::addStop(), MSVehicle::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), AGActivityTripWriter::addTrip(), GUITrafficLightLogicWrapper::begin2TrackPhases(), MSContainer::MSContainerStage_Driving::beginEventOutput(), MSContainer::MSContainerStage_Waiting::beginEventOutput(), MSPerson::MSPersonStage_Driving::beginEventOutput(), MSPerson::MSPersonStage_Waiting::beginEventOutput(), NLEdgeControlBuilder::build(), NIVisumTL::build(), RODFNet::buildApproachList(), MS_E2_ZS_CollectorOverLanes::buildCollector(), NBNode::buildCrossings(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), RODFNet::buildEdgeFlowMap(), NBNode::buildInnerEdges(), NBEdge::buildInnerEdges(), NGEdge::buildNBEdge(), NIVissimEdge::buildNBEdge(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), NBNode::buildWalkingAreas(), MSSimpleTrafficLightLogic::changeStepAndDuration(), NBEdge::checkGeometry(), MSVehicleTransfer::checkInsertions(), ODDistrictHandler::closeDistrict(), NLHandler::closeEdge(), RORouteHandler::closeRouteDistribution(), RORouteHandler::closeVehicle(), NBTrafficLightDefinition::collectAllLinks(), NBLoadedSUMOTLDef::collectEdges(), NBTrafficLightDefinition::collectEdges(), ROJTRRouter::compute(), NBTrafficLightDefinition::compute(), NBNode::computeInternalLaneShape(), NBEdge::computeLaneShapes(), NBNode::computeLogic(), NBOwnTLDef::computeLogicAndConts(), NBNode::computeNodeShape(), RODFNet::computeRoutesFor(), NBTrafficLightLogicCont::computeSingleLogic(), NBNode::computeSmoothShape(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NGNet::connect(), MSAbstractLaneChangeModel::continueLaneChangeManeuver(), NLDetectorBuilder::convUncontE2PosLength(), GUINet::createTLWrapper(), NIVissimDistrictConnection::dict_BuildDistricts(), MSContainer::MSContainerStage_Driving::endEventOutput(), MSContainer::MSContainerStage_Waiting::endEventOutput(), MSPerson::MSPersonStage_Driving::endEventOutput(), MSPerson::MSPersonStage_Waiting::endEventOutput(), MSE3Collector::enter(), MSCalibrator::execute(), Command_SaveTLSState::execute(), Command_SaveTLSSwitchStates::execute(), Command_SaveTLSSwitches::execute(), MSVTypeProbe::execute(), MSPModel_Striping::MovePedestrians::execute(), MSVehicle::executeMove(), executeMovements(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), NBEdgeCont::extract(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSNet::getBusStopID(), MSNet::getContainerStopID(), NBEdge::getCrossingAngle(), RODFNet::getDetectorEdge(), MSMeanData::getEdgeID(), PedestrianEdge< E, L, N >::getEffort(), NBEdge::getFirstNonPedestrianLane(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), NIImporter_VISUM::getNamedEdgeContinuating(), MSPModel_Striping::getNextLane(), GUIVehicle::getParameterWindow(), GUITrafficLightLogicWrapper::getPopUpMenu(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), NBNode::getPossiblySplittedIncoming(), NBNode::getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), MSVehicleControl::getWaitingVehicle(), NBNode::guessCrossings(), RODFDetectorCon::guessEmptyFlows(), NBNodeCont::guessTLs(), GUITLLogicPhasesTrackerWindow::GUITLLogicPhasesTrackerWindow(), handleCollision(), NBEdgeCont::ignoreFilterMatch(), MSRailSignal::init(), MSActuatedTrafficLightLogic::init(), MSTrafficLightLogic::init(), PedestrianEdge< E, L, N >::initPedestrianNetwork(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBNodeCont::insert(), NBTrafficLightLogicCont::insert(), NBEdgeCont::insert(), MSEdge::insertVehicle(), NBNode::invalidateTLS(), MSTLLogicControl::isActive(), RODFNet::isDestination(), RODFNet::isFalseSource(), RODFNet::isSource(), NBNodeCont::joinJunctions(), NBEdgeCont::joinSameNodeConnectingEdges(), MSE3Collector::leave(), MSDevice_BTreceiver::BTreceiverUpdate::leaveRange(), NIImporter_OpenDrive::loadNetwork(), ODDistrictCont::makeDistricts(), MSPModel_Striping::moveInDirection(), NBRampsComputer::moveRampRight(), MSPModel_Striping::PState::moveToNextLane(), MSCalibrator::MSCalibrator(), MSContainer::MSContainerStage_Waiting::MSContainerStage_Waiting(), MSPerson::MSPersonStage_Waiting::MSPersonStage_Waiting(), NBLoadedTLDef::myCompute(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSDevice_BTsender::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSDevice_BTreceiver::notifyEnter(), MSDevice_Example::notifyEnter(), MSCalibrator::VehicleRemover::notifyEnter(), MSDevice_Container::notifyLeave(), MSDevice_Person::notifyLeave(), MSDevice_Tripinfo::notifyLeave(), MSDevice_Example::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_Example::notifyMove(), MSDevice_BTsender::notifyMove(), MSDevice_BTreceiver::notifyMove(), GUIViewTraffic::onGamingClick(), RORouteHandler::openRoute(), Named::ComparatorIdLess::operator()(), NBTurningDirectionsComputer::combination_by_angle_sorter::operator()(), RODFNet::idComp::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), NBContHelper::same_connection_edge_sorter::operator()(), MSEdge::by_id_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIImporter_VISUM::parse_Turns(), NIImporter_VISUM::parse_TurnsToSignalGroups(), NIXMLConnectionsHandler::parseDeprecatedLaneDefinition(), NIXMLConnectionsHandler::parseLaneBound(), NBLoadedSUMOTLDef::patchIfCrossingsAdded(), MSLCM_JE2013::patchSpeed(), NBLoadedTLDef::SignalGroup::patchTYellow(), MSRightOfWayJunction::postloadInit(), AGStreet::print(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Person::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_Vehicle::processSet(), NWWriter_SUMO::prohibitionConnection(), MSPModel_Striping::PState::PState(), NBEdgeCont::recheckPostProcessConnections(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), NBLoadedSUMOTLDef::removeConnection(), MSCalibrator::removePending(), NBNode::removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBNodeCont::rename(), NBEdgeCont::rename(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), RODFNet::revalidateFlows(), PCPolyContainer::save(), RONet::saveAndRemoveRoutesUntil(), MSBaseVehicle::saveState(), NBNodeCont::setAsTLControlled(), NBEdge::setControllingTLInformation(), NIXMLEdgesHandler::setNodes(), MSLink::setRequestInformation(), NBOwnTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBTrafficLightLogicCont::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), succLinkSec(), GUITrafficLightLogicWrapper::switchTLSLogic(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), TraCIServerAPI_Vehicle::vtdMap(), MSLCM_JE2013::wantsChange(), MSEmissionExport::write(), MSFCDExport::write(), MSInstantInductLoop::write(), NBSign::writeAsPOI(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), RODFDetector::writeEmitterDefinition(), RODFDetectorCon::writeEmitterPOIs(), RODFDetectorCon::writeEmitters(), RODFDetectorCon::writeEndRerouterDetectors(), NWWriter_SUMO::writeInternalConnections(), NWWriter_SUMO::writeJunction(), MSQueueExport::writeLane(), MSFullExport::writeLane(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), NWWriter_DlrNavteq::writeNodesUnsplitted(), NWWriter_SUMO::writeRoundabout(), RODFDetectorCon::writeSpeedTrigger(), NWWriter_DlrNavteq::writeTrafficSignals(), MSInductLoop::writeTypedXMLOutput(), RODFDetectorCon::writeValidationDetectors(), MSFullExport::writeVehicles(), SUMO::Polygon::writeXML(), MSRouteProbe::writeXMLOutput(), and MSE2Collector::writeXMLOutput().
|
inline |
Definition at line 584 of file MSLane.h.
References myIncomingLanes.
Referenced by MSLink::getApproachingLane(), getFollowerOnConsecutive(), MSPModel_Striping::getNextWalkingArea(), MSRailSignal::init(), and MSLink::setRequestInformation().
LinkState MSLane::getIncomingLinkState | ( | ) | const |
get the state of the link from the logical predecessor to this lane
Definition at line 1385 of file MSLane.cpp.
References MSLinkContHelper::getConnectingLink(), getLogicalPredecessorLane(), MSLink::getState(), and LINKSTATE_DEADEND.
const MSEdge * MSLane::getInternalFollower | ( | ) | const |
Returns the lane's follower if it is an internal lane, the edge of the lane otherwise.
Definition at line 841 of file MSLane.cpp.
References MSEdge::EDGEFUNCTION_INTERNAL, MSEdge::getPurpose(), MSEdge::getSuccessors(), and myEdge.
Referenced by MSVehicle::getRerouteOrigin(), and MSVehicle::updateBestLanes().
MSVehicle * MSLane::getLastVehicle | ( | ) | const |
returns the last vehicle
Definition at line 960 of file MSLane.cpp.
References myVehicles.
Referenced by MSVehicle::checkRewindLinkLanes(), getCriticalLeader(), getLeaderOnConsecutive(), MSLaneChanger::getRealThisLeader(), isInsertionSuccess(), and MSLink::maybeOccupied().
Returns the last vehicle which is still on the lane.
The information about the last vehicle in this lane's que is returned. If there is no such vehicle, the information about the vehicle which laps into this lane is returned. If there is no such vehicle, the first returned member is 0.
Definition at line 651 of file MSLane.cpp.
References MSVehicleType::getLength(), MSVehicle::getPositionOnLane(), MSBaseVehicle::getVehicleType(), myInlappingVehicle, myInlappingVehicleEnd, myVehicles, and SUMOReal.
Referenced by MSVehicle::planMoveInternal().
std::pair< MSVehicle *const, SUMOReal > MSLane::getLeaderOnConsecutive | ( | SUMOReal | dist, |
SUMOReal | seen, | ||
SUMOReal | speed, | ||
const MSVehicle & | veh, | ||
const std::vector< MSLane * > & | bestLaneConts | ||
) | const |
Returns the immediate leader and the distance to him.
Goes along the vehicle's estimated used lanes (bestLaneConts). For each link, it is determined whether the vehicle will pass it. If so, the subsequent lane is investigated. If a vehicle (leader) is found, it is returned, together with the length of the investigated lanes until this vehicle's end, including the already seen place (seen).
If no leading vehicle was found, <0, -1> is returned.
Pretty slow, as it has to go along lanes.
[in] | dist | The distance to investigate |
[in] | seen | The already seen place (normally the place in front on own lane) |
[in] | speed | The speed of the vehicle used for determining whether a subsequent link will be opened at arrival time |
[in] | veh | The vehicle for which the information shall be computed |
[in] | bestLaneConts | The lanes the vehicle will use in future |
Definition at line 1215 of file MSLane.cpp.
References MSCFModel::brakeGap(), MSVehicle::getCarFollowModel(), MSNet::getCurrentTimeStep(), MSBaseVehicle::getImpatience(), MSNet::getInstance(), getLastVehicle(), MSVehicleType::getLength(), getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), getPartialOccupator(), getPartialOccupatorEnd(), MSVehicle::getPositionOnLane(), getVehicleMaxSpeed(), MSBaseVehicle::getVehicleType(), isLinkEnd(), MAX2(), NUMERICAL_EPS, succLinkSec(), and TIME2STEPS.
Referenced by MSVehicle::getLeader(), pWagGenericInsertion(), and pWagSimpleInsertion().
|
inline |
Returns the lane's length.
Definition at line 370 of file MSLane.h.
References myLength.
Referenced by MSVehicle::adaptLaneEntering2MoveReminder(), NLHandler::addConnection(), addIncomingLane(), MSVehicle::addStop(), GUI_E2_ZS_CollectorOverLanes::buildCollector(), MS_E2_ZS_CollectorOverLanes::buildCollector(), NLDetectorBuilder::buildInductLoop(), MSVehicle::checkRewindLinkLanes(), MSAbstractLaneChangeModel::continueLaneChangeManeuver(), NLDetectorBuilder::convUncontE2PosLength(), GUIVehicle::drawAction_drawRailCarriages(), MSVehicle::executeMove(), executeMovements(), MS_E2_ZS_CollectorOverLanes::extendTo(), MSVehicle::fixPosition(), freeInsertion(), GUILane::getColorValue(), getCriticalLeader(), MSVehicle::getDistanceToPosition(), getFollowerOnConsecutive(), TraCIServerAPI_Simulation::getLaneChecking(), NLShapeHandler::getLanePos(), MSVehicle::getLeader(), getLeaderOnConsecutive(), MSPModel_Striping::getNextLane(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), MSVehicle::getRerouteOrigin(), MSVehicle::getSafeFollowSpeed(), MSVehicle::getSpaceTillLastStanding(), MSActuatedTrafficLightLogic::init(), MS_E2_ZS_CollectorOverLanes::init(), insertVehicle(), isInsertionSuccess(), maxSpeedGapInsertion(), MSLink::maybeOccupied(), MSPModel_Striping::moveInDirectionOnLane(), NLTriggerBuilder::parseAndBuildBusStop(), NLTriggerBuilder::parseAndBuildContainerStop(), MSVehicle::planMoveInternal(), TraCIServerAPI_Lane::processGet(), pWagGenericInsertion(), pWagSimpleInsertion(), GUIVehicle::selectBlockingFoes(), MSVehicle::setBlinkerInformation(), MSLink::setRequestInformation(), MSVehicle::updateBestLanes(), TraCIServerAPI_Vehicle::vtdMap(), MSLCM_DK2008::wantsChangeToLeft(), MSLCM_DK2008::wantsChangeToRight(), MSMeanData::writeEdge(), and MSQueueExport::writeLane().
|
inline |
return shape.length() / myLength
Definition at line 328 of file MSLane.h.
References myLengthGeometryFactor.
const MSLinkCont & MSLane::getLinkCont | ( | ) | const |
returns the container with all links !!!
Definition at line 1026 of file MSLane.cpp.
References myLinks.
Referenced by MSLCM_JE2013::_wantsChange(), MSLCM_LC2013::_wantsChange(), MSLink::getApproachingLane(), MSVehicle::getBestLanesContinuation(), MSLinkContHelper::getConnectingLink(), MSPModel_Striping::getNextLane(), MSPModel_Striping::getNextWalkingArea(), MSRailSignal::init(), MSRightOfWayJunction::postloadInit(), TraCIServerAPI_Lane::processGet(), MSVehicle::setBlinkerInformation(), MSLink::setRequestInformation(), MSVehicle::updateBestLanes(), TraCIServerAPI_Vehicle::vtdMap(), MSLCM_DK2008::wantsChangeToLeft(), and MSLCM_DK2008::wantsChangeToRight().
MSLane * MSLane::getLogicalPredecessorLane | ( | ) | const |
Definition at line 1357 of file MSLane.cpp.
References getEdge(), MSEdge::getIncomingEdges(), myEdge, myIncomingLanes, and myLogicalPredecessorLane.
Referenced by MSEdge::changeLanes(), GUILane::drawGL(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), MSVehicle::enterLaneAtInsertion(), MSVehicle::enterLaneAtLaneChange(), getIncomingLinkState(), MSPModel_Striping::getNextLane(), MSLink::lastWasContMajor(), MSVehicle::planMoveInternal(), MSLink::setRequestInformation(), MSVehicle::updateBestLanes(), and TraCIServerAPI_Vehicle::vtdMap().
|
inlineinherited |
Returns the inner key/value map.
Definition at line 107 of file Parameterised.h.
References Parameterised::myMap.
Referenced by NBTrafficLightDefinition::compute(), GUIVehicle::getParameterWindow(), TraCIServerAPI_TLS::processGet(), PCPolyContainer::save(), ROVehicle::saveAllAsXML(), SUMOVTypeParameter::write(), and SUMO::Polygon::writeXML().
|
protected |
compute maximum braking distance on this lane
Definition at line 1140 of file MSLane.cpp.
References MSNet::getInstance(), MSVehicleControl::getMaxSpeedFactor(), MSVehicleControl::getMinDeceleration(), getSpeedLimit(), MSNet::getVehicleControl(), and SUMOReal.
Referenced by getFollowerOnConsecutive().
SUMOReal MSLane::getMeanSpeed | ( | ) | const |
Returns the mean speed on this lane.
Definition at line 1481 of file MSLane.cpp.
References getVehiclesSecure(), myMaxSpeed, myVehicles, releaseVehicles(), and SUMOReal.
Referenced by GUILane::getColorValue(), GUILane::getScaleValue(), TraCIServerAPI_Lane::processGet(), and MSFullExport::writeLane().
SUMOReal MSLane::getMissingRearGap | ( | SUMOReal | backOffset, |
SUMOReal | leaderSpeed, | ||
SUMOReal | leaderMaxDecel | ||
) | const |
return by how much further the leader must be inserted to avoid rear end collisions
Definition at line 1124 of file MSLane.cpp.
References MSVehicle::getCarFollowModel(), getFollowerOnConsecutive(), MSCFModel::getSecureGap(), MSVehicle::getSpeed(), and SUMOReal.
Referenced by freeInsertion(), and isInsertionSuccess().
|
inline |
Return the list of this lane's move reminders.
Definition at line 150 of file MSLane.h.
References myMoveReminders.
Referenced by MSVehicle::adaptLaneEntering2MoveReminder(), MSVehicle::enterLaneAtInsertion(), and MSVehicle::enterLaneAtLaneChange().
SUMOReal MSLane::getNettoOccupancy | ( | ) | const |
Returns the netto (excluding minGaps) occupancy of this lane during the last step (including minGaps)
Definition at line 1447 of file MSLane.cpp.
References MSVehicleType::getLength(), MSVehicle::getPositionOnLane(), getVehiclesSecure(), MSBaseVehicle::getVehicleType(), myInlappingVehicle, myInlappingVehicleEnd, myLength, myNettoVehicleLengthSum, myVehicles, releaseVehicles(), and SUMOReal.
Referenced by GUILane::getColorValue(), GUILane::getScaleValue(), TraCIServerAPI_Lane::processGet(), and MSFullExport::writeLane().
SUMOReal MSLane::getNOxEmissions | ( | ) | const |
Returns the sum of last step NOx emissions.
Definition at line 1533 of file MSLane.cpp.
References getVehiclesSecure(), releaseVehicles(), and SUMOReal.
Referenced by GUILane::getColorValue(), GUILane::getScaleValue(), TraCIServerAPI_Lane::processGet(), and MSFullExport::writeLane().
|
inline |
Returns this lane's numerical id.
Definition at line 315 of file MSLane.h.
References myNumericalID.
Referenced by MSPModel_Striping::lane_by_numid_sorter::operator()(), and MSPModel_Striping::walkingarea_path_sorter::operator()().
std::vector< const MSLane * > MSLane::getOutgoingLanes | ( | ) | const |
get the list of outgoing lanes
Definition at line 1396 of file MSLane.cpp.
References myLinks.
Referenced by MSRailSignal::init().
MSLane * MSLane::getParallelLane | ( | int | offset | ) | const |
Returns the lane with the given offset parallel to this one or 0 if it does not exist.
[in] | offset | The offset of the result lane |
Definition at line 1070 of file MSLane.cpp.
References myEdge, and MSEdge::parallelLane().
Referenced by MSAbstractLaneChangeModel::continueLaneChangeManeuver().
|
inherited |
Returns the value for a given key.
[in] | key | The key to ask for |
[in] | defaultValue | The default value to return if no value is stored under the key |
Definition at line 81 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by MSDevice_Example::buildVehicleDevices(), MSDevice::equippedByDefaultAssignmentOptions(), MSTLLogicControl::WAUTSwitchProcedure::getGSPValue(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::getStretchAreaNo(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::getStretchBereichDef(), MSActuatedTrafficLightLogic::MSActuatedTrafficLightLogic(), TraCIServerAPI_Edge::processGet(), TraCIServerAPI_VehicleType::processGet(), TraCIServerAPI_POI::processGet(), TraCIServerAPI_Polygon::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Route::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Person::processGet(), TraCIServerAPI_Lane::processGet(), and TraCIServerAPI_Vehicle::vtdMap().
|
inline |
Returns the vehicle which laps into this lane.
Definition at line 253 of file MSLane.h.
References myInlappingVehicle.
Referenced by MSVehicle::checkRewindLinkLanes(), detectCollisions(), MSE2Collector::detectorUpdate(), freeInsertion(), getCriticalLeader(), getFollowerOnConsecutive(), getLeaderOnConsecutive(), MSLaneChanger::getRealLeader(), MSLaneChanger::getRealThisLeader(), isInsertionSuccess(), maxSpeedGapInsertion(), MSLink::maybeOccupied(), MSE2Collector::by_vehicle_position_sorter::operator()(), MSVehicle::planMoveInternal(), and planMovements().
|
inline |
Returns the position of the in-lapping vehicle's end.
Definition at line 261 of file MSLane.h.
References myInlappingVehicleEnd.
Referenced by MSVehicle::checkRewindLinkLanes(), detectCollisions(), MSE2Collector::detectorUpdate(), freeInsertion(), getCriticalLeader(), getLeaderOnConsecutive(), MSLaneChanger::getRealLeader(), MSLaneChanger::getRealThisLeader(), isInsertionSuccess(), maxSpeedGapInsertion(), MSLink::maybeOccupied(), and MSVehicle::planMoveInternal().
|
inline |
Returns the vehicle class permissions for this lane.
Definition at line 378 of file MSLane.h.
References myPermissions.
Referenced by GUIApplicationWindow::onCmdEditChosen(), and TraCIServerAPI_Lane::processGet().
SUMOReal MSLane::getPMxEmissions | ( | ) | const |
Returns the sum of last step PMx emissions.
Definition at line 1521 of file MSLane.cpp.
References getVehiclesSecure(), releaseVehicles(), and SUMOReal.
Referenced by GUILane::getColorValue(), GUILane::getScaleValue(), TraCIServerAPI_Lane::processGet(), and MSFullExport::writeLane().
|
inline |
Returns this lane's shape.
Definition at line 323 of file MSLane.h.
References myShape.
Referenced by TraCIServerAPI_Lane::StoringVisitor::add(), NLHandler::addConnection(), GUIE3Collector::MyWrapper::buildDefinition(), TraCIServerAPI_Simulation::commandPositionConversion(), GUIVehicle::drawAction_drawRailCarriages(), GUIVehicle::drawGLAdditional(), GUILane::drawLane2LaneConnections(), fill(), MSVehicle::getAngle(), MSPerson::MSPersonStage::getLanePosition(), MSContainer::MSContainerStage::getLanePosition(), MSPModel_Striping::getNextLaneObstacles(), TraCIServerAPI_InductionLoop::getPosition(), GUIContainer::getPosition(), TraCIServerAPI_Lane::getShape(), MSVehicle::getSlope(), MSVTKExport::getSpeed(), TraCIServerAPI_InductionLoop::getTree(), GUIBusStop::GUIBusStop(), GUIContainerStop::GUIContainerStop(), MSPModel_Striping::initWalkingAreaPaths(), MSCFModel_KraussAccelBound::maxNextSpeed(), GUIInstantInductLoop::MyWrapper::MyWrapper(), GUI_E2_ZS_Collector::MyWrapper::MyWrapper(), GUIInductLoop::MyWrapper::MyWrapper(), MSLane::by_connections_to_sorter::operator()(), TraCIServerAPI_Lane::processGet(), MSLink::setRequestInformation(), and TraCIServerAPI_Vehicle::vtdMap().
|
inline |
Returns the lane's maximum allowed speed.
Definition at line 362 of file MSLane.h.
References myMaxSpeed.
Referenced by MSLCM_JE2013::_wantsChange(), MSLCM_LC2013::_wantsChange(), MSVehicleTransfer::checkInsertions(), MSAbstractLaneChangeModel::congested(), executeMovements(), GUILane::getColorValue(), getMaximumBrakeDist(), GUILane::getParameterWindow(), GUILane::getScaleValue(), MSActuatedTrafficLightLogic::init(), TraCIServerAPI_Lane::processGet(), MSLCM_DK2008::wantsChangeToRight(), MSMeanData::writeEdge(), and MSFullExport::writeLane().
|
inline |
Returns the lane's maximum speed, given a vehicle's speed limit adaptation.
[in] | The | vehicle to return the adapted speed limit for |
Definition at line 354 of file MSLane.h.
References SUMOVehicle::getChosenSpeedFactor(), and myMaxSpeed.
Referenced by MSLCM_JE2013::_wantsChange(), MSLCM_LC2013::_wantsChange(), MSCFModel_IDM::desiredSpeed(), MSVehicle::estimateLeaveSpeed(), getCriticalLeader(), getLeaderOnConsecutive(), insertVehicle(), MSCFModel::interactionGap(), isInsertionSuccess(), MSCFModel_Daniel1::moveHelper(), MSCFModel_KraussOrig1::moveHelper(), MSCFModel_SmartSK::moveHelper(), MSCFModel::moveHelper(), MSVehicle::planMoveInternal(), TraCIServerAPI_Vehicle::processGet(), MSVehicle::setBlinkerInformation(), MSLCM_DK2008::wantsChangeToLeft(), and MSLCM_DK2008::wantsChangeToRight().
|
inline |
Returns the number of vehicles on this lane.
Definition at line 285 of file MSLane.h.
References myVehicles.
Referenced by MSVehicle::checkRewindLinkLanes(), TraCIServerAPI_Lane::processGet(), MSFullExport::writeLane(), and MSXMLRawOut::writeLane().
|
inlinevirtual |
Returns the vehicles container; locks it for microsimulation.
Please note that it is necessary to release the vehicles container afterwards using "releaseVehicles".
Reimplemented in GUILane.
Definition at line 296 of file MSLane.h.
References myVehicles.
Referenced by TraCIServerAPI_Lane::StoringVisitor::add(), getBruttoOccupancy(), getCO2Emissions(), getCOEmissions(), getFuelConsumption(), getHarmonoise_NoiseEmissions(), getHCEmissions(), MSVehicle::getLeader(), getMeanSpeed(), getNettoOccupancy(), getNOxEmissions(), getPMxEmissions(), MSVehicle::getSpaceTillLastStanding(), and TraCIServerAPI_Lane::processGet().
SUMOReal MSLane::getWaitingSeconds | ( | ) | const |
Returns the overall waiting time on this lane.
Definition at line 1468 of file MSLane.cpp.
References myVehicles, and SUMOReal.
Referenced by TraCIServerAPI_Lane::processGet().
|
inline |
Returns the lane's width.
Definition at line 386 of file MSLane.h.
References myWidth.
Referenced by MSAbstractLaneChangeModel::continueLaneChangeManeuver(), GUILane::drawGL(), MSPModel_Striping::getNextLaneObstacles(), MSPModel_Striping::initWalkingAreaPaths(), MSPModel_Striping::moveInDirection(), MSPModel_Striping::numStripes(), TraCIServerAPI_Lane::processGet(), and MSLink::setRequestInformation().
|
protected |
issue warning and add the vehicle to MSVehicleTransfer
Definition at line 723 of file MSLane.cpp.
References MSVehicleTransfer::add(), MSAbstractLaneChangeModel::endLaneChangeManeuver(), Named::getID(), MSBaseVehicle::getID(), MSVehicleTransfer::getInstance(), MSNet::getInstance(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSNet::getVehicleControl(), MSBaseVehicle::getVehicleType(), myBruttoVehicleLengthSum, myNettoVehicleLengthSum, MSVehicleControl::registerCollision(), time2string(), toString(), and WRITE_WARNING.
Referenced by detectCollisions().
|
protectedvirtual |
Inserts the vehicle into this lane, and informs it about entering the network.
Calls the vehicles enterLaneAtInsertion function, updates statistics and modifies the active state as needed
[in] | veh | The vehicle to be incorporated |
[in] | pos | The position of the vehicle |
[in] | speed | The speed of the vehicle |
[in] | at | |
[in] | notification | The cause of insertion (i.e. departure, teleport, parking) defaults to departure |
Reimplemented in GUILane.
Definition at line 125 of file MSLane.cpp.
References MSVehicle::enterLaneAtInsertion(), MSNet::getEdgeControl(), MSNet::getInstance(), MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), MSEdgeControl::gotActive(), MSEdge::markDelayed(), myBruttoVehicleLengthSum, myEdge, myLength, myNettoVehicleLengthSum, and myVehicles.
Referenced by forceVehicleInsertion(), GUILane::incorporateVehicle(), isInsertionSuccess(), loadState(), maxSpeedGapInsertion(), pWagGenericInsertion(), and pWagSimpleInsertion().
|
static |
Adds the ids of all stored lanes into the given vector.
in,filled] | into The vector to add the IDs into |
Definition at line 884 of file MSLane.cpp.
References myDict.
Referenced by TraCIServerAPI_Lane::processGet().
Tries to insert the given vehicle.
The insertion position and speed are determined in dependence to the vehicle's departure definition, first.
Then, the vehicle is tried to be inserted into the lane using these values by a call to "isInsertionSuccess". The result of "isInsertionSuccess" is returned.
[in] | v | The vehicle to insert |
Definition at line 358 of file MSLane.cpp.
References DEPART_POS_BASE, DEPART_POS_DEFAULT, DEPART_POS_FREE, DEPART_POS_GIVEN, DEPART_POS_MAX_SPEED_GAP, DEPART_POS_PWAG_GENERIC, DEPART_POS_PWAG_SIMPLE, DEPART_POS_RANDOM, DEPART_POS_RANDOM_FREE, DEPART_SPEED_DEFAULT, DEPART_SPEED_GIVEN, DEPART_SPEED_MAX, DEPART_SPEED_RANDOM, SUMOVehicleParameter::departPos, SUMOVehicleParameter::departPosProcedure, SUMOVehicleParameter::departSpeed, SUMOVehicleParameter::departSpeedProcedure, freeInsertion(), MSVehicleType::getLength(), getLength(), MSBaseVehicle::getMaxSpeed(), MSBaseVehicle::getParameter(), getVehicleMaxSpeed(), MSBaseVehicle::getVehicleType(), isInsertionSuccess(), maxSpeedGapInsertion(), MIN2(), myLength, MSMoveReminder::NOTIFICATION_DEPARTED, POSITION_EPS, pWagGenericInsertion(), pWagSimpleInsertion(), RandHelper::rand(), and SUMOReal.
Referenced by MSEdge::insertVehicle().
Insert buffered vehicle into the real lane.
Reimplemented in GUILane.
Definition at line 928 of file MSLane.cpp.
References MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), MSEdge::markDelayed(), myBruttoVehicleLengthSum, myEdge, myNettoVehicleLengthSum, myVehBuffer, and myVehicles.
Referenced by GUILane::integrateNewVehicle().
Definition at line 346 of file MSLane.h.
References myLengthGeometryFactor.
Referenced by GUILane::getPopUpMenu(), and MSLink::setRequestInformation().
Definition at line 334 of file MSLane.h.
References myLengthGeometryFactor.
Referenced by geometryPositionAtOffset(), MSVehicle::getAngle(), MSPerson::MSPersonStage::getLanePosition(), MSContainer::MSContainerStage::getLanePosition(), MSVehicle::getPosition(), MSVehicle::getSlope(), and MSCFModel_KraussAccelBound::maxNextSpeed().
Definition at line 1100 of file MSLane.cpp.
References myApproachingLanes.
Definition at line 1106 of file MSLane.cpp.
References myApproachingLanes.
bool MSLane::isEmpty | ( | ) | const |
Returns the information whether the lane is has no vehicle and no partial occupation
Definition at line 955 of file MSLane.cpp.
References myInlappingVehicle, and myVehicles.
bool MSLane::isInsertionSuccess | ( | MSVehicle * | vehicle, |
SUMOReal | speed, | ||
SUMOReal | pos, | ||
bool | recheckNextLanes, | ||
MSMoveReminder::Notification | notification | ||
) |
Tries to insert the given vehicle with the given state (speed and pos)
Checks whether the vehicle can be inserted at the given position with the given speed so that no collisions with leader/follower occur and the speed does not cause unexpected behaviour on consecutive lanes. Returns false if the vehicle can not be inserted.
If the insertion can take place, incorporateVehicleis called and true is returned.
[in] | vehicle | The vehicle to insert |
[in] | speed | The speed with which it shall be inserted |
[in] | pos | The position at which it shall be inserted |
[in] | recheckNextLanes | Forces patching the speed for not being too fast on next lanes |
[in] | notification | The cause of insertion (i.e. departure, teleport, parking) defaults to departure |
Definition at line 446 of file MSLane.cpp.
References ARRIVAL_SPEED_GIVEN, SUMOVehicleParameter::arrivalSpeed, SUMOVehicleParameter::arrivalSpeedProcedure, MSRoute::begin(), MSCFModel::brakeGap(), checkFailure(), MSInsertionControl::descheduleDeparture(), MSCFModel::freeSpeed(), MSVehicle::gap(), MSVehicle::getBestLanesContinuation(), MSVehicle::getCarFollowModel(), MSNet::getCurrentTimeStep(), getEdge(), MSBaseVehicle::getID(), MSBaseVehicle::getImpatience(), MSNet::getInsertionControl(), MSNet::getInstance(), MSRoute::getLastEdge(), getLastVehicle(), MSVehicleType::getLength(), getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), getMissingRearGap(), MSBaseVehicle::getParameter(), getPartialOccupator(), getPartialOccupatorEnd(), MSVehicle::getPositionOnLane(), MSBaseVehicle::getRoute(), MSCFModel::getSecureGap(), MSVehicle::getSpeed(), getVehicleMaxSpeed(), MSBaseVehicle::getVehicleType(), incorporateVehicle(), MSCFModel::insertionFollowSpeed(), isLinkEnd(), LINKSTATE_ALLWAY_STOP, LINKSTATE_EQUAL, LINKSTATE_MINOR, LINKSTATE_STOP, MAX2(), myLength, myVehicles, NUMERICAL_EPS, MSVehicle::setTentativeLaneAndPosition(), MSCFModel::stopSpeed(), succLinkSec(), SUMO_const_haltingSpeed, SUMOReal, TIME2STEPS, toString(), MSVehicle::updateBestLanes(), WRITE_ERROR, and WRITE_WARNING.
Referenced by MSVehicleTransfer::checkInsertions(), freeInsertion(), insertVehicle(), and maxSpeedGapInsertion().
bool MSLane::isLinkEnd | ( | MSLinkCont::const_iterator & | i | ) | const |
Returns the information whether the given link shows at the end of the list of links (is not valid)
Definition at line 944 of file MSLane.cpp.
References myLinks.
Referenced by getCriticalLeader(), getLeaderOnConsecutive(), MSLaneChanger::getRealThisLeader(), isInsertionSuccess(), and MSVehicle::planMoveInternal().
bool MSLane::isLinkEnd | ( | MSLinkCont::iterator & | i | ) |
Returns the information whether the given link shows at the end of the list of links (is not valid)
Definition at line 950 of file MSLane.cpp.
References myLinks.
|
inherited |
Returns whether the parameter is known.
[in] | key | The key to ask for |
Definition at line 75 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by MSDevice_Example::buildVehicleDevices(), and MSDevice::equippedByDefaultAssignmentOptions().
void MSLane::leftByLaneChange | ( | MSVehicle * | v | ) |
Definition at line 1407 of file MSLane.cpp.
References MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), myBruttoVehicleLengthSum, and myNettoVehicleLengthSum.
Referenced by MSAbstractLaneChangeModel::startLaneChangeManeuver().
void MSLane::loadState | ( | std::vector< std::string > & | vehIDs, |
MSVehicleControl & | vc | ||
) |
Loads the state of this segment with the given parameters.
This method is called for every internal que the segment has. Every vehicle is retrieved from the given MSVehicleControl and added to this lane.
[in] | vehIDs | The vehicle ids for the current que |
[in] | vc | The vehicle control to retrieve references vehicles from |
What about throwing an IOError?
What about throwing an error if something else fails (a vehicle can not be referenced)?
Definition at line 1629 of file MSLane.cpp.
References MSVehicle::getPositionOnLane(), MSVehicle::getSpeed(), MSVehicleControl::getVehicle(), incorporateVehicle(), myVehicles, MSMoveReminder::NOTIFICATION_JUNCTION, and MSVehicle::updateBestLanes().
Definition at line 226 of file MSLane.cpp.
References MSVehicle::getCarFollowModel(), MSCFModel::getHeadwayTime(), MSVehicleType::getLength(), getLength(), MSVehicleType::getLengthWithGap(), MSCFModel::getMaxDecel(), getPartialOccupator(), getPartialOccupatorEnd(), MSVehicle::getPositionOnLane(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), incorporateVehicle(), isInsertionSuccess(), MIN2(), myLength, myVehicles, MSMoveReminder::NOTIFICATION_DEPARTED, and SUMOReal.
Referenced by insertVehicle().
|
virtual |
Compute safe velocities for all vehicles based on positions and speeds from the last time step. Also registers ApproachingVehicleInformation for all links.
This method goes through all vehicles calling their "planMove" method.
Reimplemented in GUILane.
Definition at line 668 of file MSLane.cpp.
References MSVehicleType::getLengthWithGap(), getPartialOccupator(), MSBaseVehicle::getVehicleType(), myVehicles, and SUMOReal.
Referenced by GUILane::planMovements().
bool MSLane::pWagGenericInsertion | ( | MSVehicle & | veh, |
SUMOReal | speed, | ||
SUMOReal | maxPos, | ||
SUMOReal | minPos | ||
) |
Definition at line 145 of file MSLane.cpp.
References MSCFModel::brakeGap(), MSVehicle::getBestLanesContinuation(), MSVehicle::getCarFollowModel(), getLeaderOnConsecutive(), MSVehicleType::getLength(), getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), MSVehicle::getPositionOnLane(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), incorporateVehicle(), MSCFModel::insertionFollowSpeed(), myVehicles, MSVehicle::setTentativeLaneAndPosition(), SUMOReal, and MSVehicle::updateBestLanes().
Referenced by insertVehicle().
bool MSLane::pWagSimpleInsertion | ( | MSVehicle & | veh, |
SUMOReal | speed, | ||
SUMOReal | maxPos, | ||
SUMOReal | minPos | ||
) |
Definition at line 193 of file MSLane.cpp.
References MSCFModel::brakeGap(), MSVehicle::getBestLanesContinuation(), MSVehicle::getCarFollowModel(), MSCFModel::getHeadwayTime(), getLeaderOnConsecutive(), MSVehicleType::getLength(), getLength(), MSVehicleType::getMinGap(), MSVehicle::getPositionOnLane(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), incorporateVehicle(), myVehicles, MSVehicle::setTentativeLaneAndPosition(), SUMOReal, and MSVehicle::updateBestLanes().
Referenced by insertVehicle().
|
inlinevirtual |
Allows to use the container for microsimulation again.
Reimplemented in GUILane.
Definition at line 303 of file MSLane.h.
Referenced by TraCIServerAPI_Lane::StoringVisitor::add(), getBruttoOccupancy(), getCO2Emissions(), getCOEmissions(), getFuelConsumption(), getHarmonoise_NoiseEmissions(), getHCEmissions(), MSVehicle::getLeader(), getMeanSpeed(), getNettoOccupancy(), getNOxEmissions(), getPMxEmissions(), MSVehicle::getSpaceTillLastStanding(), and TraCIServerAPI_Lane::processGet().
|
virtual |
Reimplemented in GUILane.
Definition at line 1053 of file MSLane.cpp.
References MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), MSVehicle::leaveLane(), myBruttoVehicleLengthSum, myNettoVehicleLengthSum, and myVehicles.
Referenced by MSVehicle::Influencer::postProcessVTD(), TraCIServerAPI_Vehicle::processSet(), MSAbstractLaneChangeModel::removeLaneChangeShadow(), MSCalibrator::removePending(), GUILane::removeVehicle(), and MSAbstractLaneChangeModel::~MSAbstractLaneChangeModel().
void MSLane::resetPartialOccupation | ( | MSVehicle * | v | ) |
Removes the information about a vehicle lapping into this lane.
[in] | v | The vehicle which laps into this lane |
Definition at line 642 of file MSLane.cpp.
References myInlappingVehicle, and myInlappingVehicleEnd.
void MSLane::saveState | ( | OutputDevice & | out | ) |
Saves the state of this lane into the given stream.
Basically, a list of vehicle ids
in,filled] | out The (possibly binary) device to write the state into |
Definition at line 1619 of file MSLane.cpp.
References OutputDevice::closeTag(), myVehicles, OutputDevice::openTag(), SUMO_ATTR_VALUE, SUMO_TAG_LANE, SUMO_TAG_VIEWSETTINGS_VEHICLES, and OutputDevice::writeAttr().
|
inlineinherited |
resets the id
[in] | newID | The new id of this object |
Definition at line 68 of file Named.h.
References Named::myID.
Referenced by NBNodeCont::rename(), and NBEdgeCont::rename().
void MSLane::setLength | ( | SUMOReal | val | ) |
Sets a new length for the lane (used by TraCI only)
[in] | val | the new length in m |
Definition at line 1039 of file MSLane.cpp.
References myEdge, and MSEdge::recalcCache().
Referenced by TraCIServerAPI_Lane::processSet().
void MSLane::setMaxSpeed | ( | SUMOReal | val | ) |
Sets a new maximum speed for the lane (used by TraCI and MSCalibrator)
[in] | val | the new speed in m/s |
Definition at line 1032 of file MSLane.cpp.
References myEdge, myMaxSpeed, and MSEdge::recalcCache().
Referenced by TraCIServerAPI_Lane::processSet().
Sets the information about a vehicle lapping into this lane.
The given left length of vehicle which laps into this lane is used to determine the vehicle's end position in regard to this lane's length. This information is set into myInlappingVehicleState; additionally, the vehicle pointer is stored in myInlappingVehicle; Returns this lane's length for subtracting it from the left vehicle length.
[in] | v | The vehicle which laps into this lane |
[in] | leftVehicleLength | The distance the vehicle laps into this lane |
Definition at line 634 of file MSLane.cpp.
References myInlappingVehicle, myInlappingVehicleEnd, and myLength.
|
inline |
Definition at line 566 of file MSLane.h.
References myPermissions.
Referenced by TraCIServerAPI_Lane::processSet().
|
static |
Same as succLink, but does not throw any assertions when the succeeding link could not be found; Returns the myLinks.end() instead; Further, the number of edges to look forward may be given
Definition at line 978 of file MSLane.cpp.
References MSEdge::EDGEFUNCTION_INTERNAL, getEdge(), Named::getID(), SUMOVehicle::getID(), MSNet::getInstance(), MSEdge::getPurpose(), MSVehicleType::getVehicleClass(), SUMOVehicle::getVehicleType(), myLinks, SUMOVehicle::succEdge(), time2string(), and WRITE_WARNING.
Referenced by appropriate(), executeMovements(), getCriticalLeader(), getLeaderOnConsecutive(), MSLaneChanger::getRealThisLeader(), isInsertionSuccess(), MSVehicle::planMoveInternal(), and MSVehicle::setBlinkerInformation().
|
protectedvirtual |
moves myTmpVehicles int myVehicles after a lane change procedure
Reimplemented in GUILane.
Definition at line 1046 of file MSLane.cpp.
References myTmpVehicles, and myVehicles.
Referenced by GUILane::swapAfterLaneChange().
|
inline |
Callback for visiting the lane when traversing an RTree.
This is used in the TraCIServerAPI_Lane for context subscriptions.
[in] | cont | The context doing all the work |
Definition at line 768 of file MSLane.h.
References TraCIServerAPI_Lane::StoringVisitor::add().
Referenced by TraCIServer::collectObjectsInRange().
|
friend |
|
friend |
|
friend |
Definition at line 855 of file MSLane.h.
Referenced by addApproachingLane(), and isApproachedFrom().
|
protected |
The current length of all vehicles on this lane, including their minGaps.
Definition at line 839 of file MSLane.h.
Referenced by enteredByLaneChange(), executeMovements(), getBruttoOccupancy(), getBruttoVehLenSum(), handleCollision(), incorporateVehicle(), integrateNewVehicle(), leftByLaneChange(), and removeVehicle().
|
staticprotected |
Static dictionary to associate string-ids with objects.
Definition at line 864 of file MSLane.h.
Referenced by clear(), dictionary(), dictSize(), fill(), and insertIDs().
|
protected |
The lane's edge, for routing only.
Definition at line 818 of file MSLane.h.
Referenced by appropriate(), GUILane::drawGL(), GUILane::drawMarkings(), GUILane::getColorValue(), getEdge(), GUILane::getEdgeLaneNumber(), getInternalFollower(), GUILane::getLoadedEdgeWeight(), getLogicalPredecessorLane(), getParallelLane(), GUILane::getParameterWindow(), GUILane::getScaleValue(), GUILane::getStoredEdgeTravelTime(), incorporateVehicle(), integrateNewVehicle(), MSLane::by_connections_to_sorter::operator()(), setLength(), and setMaxSpeed().
|
protectedinherited |
The name of the object.
Definition at line 128 of file Named.h.
Referenced by GUI_E2_ZS_CollectorOverLanes::buildCollector(), RODFDetector::buildDestinationDistribution(), NGEdge::buildNBEdge(), NGNode::buildNBNode(), NBNode::computeNodeShape(), MSCalibrator::execute(), Named::getID(), NBEdge::getLaneID(), NBEdge::getLaneIDInsecure(), ROEdge::getStoredEffort(), ROEdge::getTravelTime(), MSActuatedTrafficLightLogic::init(), MSCalibrator::init(), NBEdge::init(), MSCalibrator::myStartElement(), MSCalibrator::VehicleRemover::notifyEnter(), MSMeanData::openInterval(), RORouteDef::preComputeCurrentRoute(), NBEdge::reinitNodes(), MSRoute::release(), RORouteDef::repairCurrentRoute(), Named::setID(), NBEdge::splitGeometry(), RODFDetector::writeEmitterDefinition(), MSXMLRawOut::writeLane(), NBNode::writeLogic(), RODFDetector::writeSingleSpeedTrigger(), MSCalibrator::writeXMLOutput(), and MSE3Collector::writeXMLOutput().
|
protected |
Definition at line 834 of file MSLane.h.
Referenced by addIncomingLane(), getFollowerOnConsecutive(), getIncomingLanes(), and getLogicalPredecessorLane().
|
protected |
The vehicle which laps into this lane.
Definition at line 848 of file MSLane.h.
Referenced by getBruttoOccupancy(), getLastVehicleInformation(), getNettoOccupancy(), getPartialOccupator(), isEmpty(), resetPartialOccupation(), and setPartialOccupation().
|
protected |
End position of a vehicle which laps into this lane.
Definition at line 845 of file MSLane.h.
Referenced by getBruttoOccupancy(), getLastVehicleInformation(), getNettoOccupancy(), getPartialOccupatorEnd(), resetPartialOccupation(), and setPartialOccupation().
|
protected |
Lane length [m].
Definition at line 812 of file MSLane.h.
Referenced by freeInsertion(), getBruttoOccupancy(), GUILane::getColorValue(), getLength(), getNettoOccupancy(), GUILane::getParameterWindow(), GUILane::getScaleValue(), incorporateVehicle(), insertVehicle(), isInsertionSuccess(), maxSpeedGapInsertion(), and setPartialOccupation().
|
protected |
Definition at line 858 of file MSLane.h.
Referenced by GUILane::getColorValue(), getLengthGeometryFactor(), GUILane::getScaleValue(), interpolateGeometryPosToLanePos(), and interpolateLanePosToGeometryPos().
|
protected |
The lane's Links to it's succeeding lanes and the default right-of-way rule, i.e. blocked or not blocked.
Definition at line 853 of file MSLane.h.
Referenced by addLink(), appropriate(), GUILane::drawArrows(), GUILane::drawLane2LaneConnections(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), executeMovements(), getCrossingIndex(), getLinkCont(), getOutgoingLanes(), isLinkEnd(), succLinkSec(), and ~MSLane().
|
mutableprotected |
Definition at line 835 of file MSLane.h.
Referenced by getLogicalPredecessorLane().
|
protected |
Lane-wide speedlimit [m/s].
Definition at line 821 of file MSLane.h.
Referenced by GUILane::getColorValue(), getMeanSpeed(), GUILane::getScaleValue(), getSpeedLimit(), getVehicleMaxSpeed(), and setMaxSpeed().
|
private |
This lane's move reminder.
Definition at line 868 of file MSLane.h.
Referenced by addMoveReminder(), and getMoveReminders().
|
protected |
The current length of all vehicles on this lane, excluding their minGaps.
Definition at line 842 of file MSLane.h.
Referenced by enteredByLaneChange(), executeMovements(), getNettoOccupancy(), handleCollision(), incorporateVehicle(), integrateNewVehicle(), leftByLaneChange(), and removeVehicle().
|
protected |
Unique numerical ID (set on reading by netload)
Definition at line 800 of file MSLane.h.
Referenced by getNumericalID().
|
protected |
The vClass permissions for this lane.
Definition at line 832 of file MSLane.h.
Referenced by allowsVehicleClass(), GUILane::drawAsRailway(), GUILane::drawAsWaterway(), GUILane::drawGL(), GUILane::drawMarkings(), GUILane::getColorValue(), GUILane::getParameterWindow(), getPermissions(), and setPermissions().
PositionVector MSLane::myShape |
The shape of the lane.
Definition at line 552 of file MSLane.h.
Referenced by GUILane::drawGL(), geometryPositionAtOffset(), GUILane::getCenteringBoundary(), GUILane::getPopUpMenu(), GUILane::getShape(), getShape(), GUILane::GUILane(), GUILane::setFunctionalColor(), and GUILane::setMultiColor().
|
protected |
Container for lane-changing vehicles. After completion of lane-change- process, the two containers will be swapped.
Definition at line 825 of file MSLane.h.
Referenced by swapAfterLaneChange().
|
protected |
buffer for vehicles that moved from their previous lane onto this one
Definition at line 829 of file MSLane.h.
Referenced by empty(), executeMovements(), integrateNewVehicle(), and MSXMLRawOut::writeLane().
|
protected |
The lane's vehicles. The entering vehicles are inserted at the front of this container and the leaving ones leave from the back, e.g. the vehicle in front of the junction (often called first) is myVehicles.back() (if it exists). And if it is an iterator at a vehicle, ++it points to the vehicle in front. This is the interaction vehicle.
Definition at line 809 of file MSLane.h.
Referenced by addMoveReminder(), detectCollisions(), empty(), executeMovements(), GUILane::firstWaitingTime(), forceVehicleInsertion(), freeInsertion(), getBruttoOccupancy(), getFirstVehicle(), getLastVehicle(), getLastVehicleInformation(), getMeanSpeed(), getNettoOccupancy(), getVehicleNumber(), GUILane::getVehiclesSecure(), getVehiclesSecure(), getWaitingSeconds(), incorporateVehicle(), integrateNewVehicle(), isEmpty(), isInsertionSuccess(), loadState(), maxSpeedGapInsertion(), planMovements(), pWagGenericInsertion(), pWagSimpleInsertion(), removeVehicle(), saveState(), swapAfterLaneChange(), MSQueueExport::writeLane(), and MSXMLRawOut::writeLane().
|
protected |
Lane width [m].
Definition at line 815 of file MSLane.h.
Referenced by GUILane::drawArrows(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), GUILane::getParameterWindow(), getWidth(), and GUILane::GUILane().