 |
Eclipse SUMO - Simulation of Urban MObility
|
Go to the documentation of this file.
21 #ifndef MSEdgeControl_h
22 #define MSEdgeControl_h
224 if (myRouter ==
nullptr) {
233 virtual ~WorkerThread() {
std::set< MSLane *, ComparatorNumericalIdLess > myInactiveCheckCollisions
Additional lanes for which collision checking must be performed.
std::vector< LaneUsage > LaneUsageVector
Definition of a container about a lane's number of vehicles and neighbors.
void gotActive(MSLane *l)
Informs the control that the given lane got active.
bool haveNeighbors
Information whether this lane belongs to a multi-lane edge.
double myMinLengthGeometryFactor
void setAdditionalRestrictions()
apply additional restrictions
MSLane * lane
The described lane.
Representation of a lane in the micro simulation.
Static storage of an output device and its base (abstract) implementation.
void needsVehicleIntegration(MSLane *const l)
void changeLanes(const SUMOTime t)
Moves (precomputes) critical vehicles.
std::set< MSLane *, ComparatorNumericalIdLess > myChangedStateLanes
Lanes which changed the state without informing the control.
LaneUsageVector myLanes
Information about lanes' number of vehicles and neighbors.
std::vector< SUMOTime > myLastLaneChange
The list of active (not empty) lanes.
void checkCollisionForInactive(MSLane *l)
trigger collision checking for inactive lane
std::vector< MSEdge * > MSEdgeVector
FXSynchQue< MSLane *, std::vector< MSLane * > > myWithVehicles2Integrate
A storage for lanes which shall be integrated because vehicles have moved onto them.
MSEdgeControl(const MSEdgeControl &)
Copy constructor.
A road/street connecting two junctions.
void detectCollisions(SUMOTime timestep, const std::string &stage)
Detect collisions.
void setJunctionApproaches(SUMOTime t)
Register junction approaches for all vehicles after velocities have been planned. This is a prerequis...
MSEdgeControl(const std::vector< MSEdge * > &edges)
Constructor.
std::priority_queue< std::pair< int, int > > myRNGLoad
A pool of worker threads which distributes the tasks and collects the results.
std::vector< MSEdge * > MSEdgeVector
std::list< MSLane * > myActiveLanes
The list of active (not empty) lanes.
bool amActive
Information whether this lane is active.
MSEdgeVector myEdges
Loaded edges.
~MSEdgeControl()
Destructor.
Stores edges and lanes, performs moving of vehicle.
void executeMovements(SUMOTime t)
Executes planned vehicle movements with regards to right-of-way.
void planMovements(SUMOTime t)
Compute safe velocities for all vehicles based on positions and speeds from the last time step....
void patchActiveLanes()
Resets information whether a lane is active for all lanes.
MSEdgeControl & operator=(const MSEdgeControl &)
Assignment operator.
const MSEdgeVector & getEdges() const
Returns loaded edges.
A thread repeatingly calculating incoming tasks.
A structure holding some basic information about a simulated lane.