76 GUILane(
const std::string&
id,
double maxSpeed,
double friction,
77 double length,
MSEdge*
const edge,
int numericalID,
81 int index,
bool isRampAccel,
82 const std::string& type,
255 void setGeometry(osg::Geometry* geom) {
310 const MSLane::VehCont::iterator& at,
332 std::vector<double>& rotations,
333 std::vector<double>& lengths,
334 std::vector<RGBColor>& colors);
383 osg::Geometry* myGeom;
long long int SVCPermissions
bitset where each bit declares whether a certain SVC may use this edge/lane
const double INVALID_DOUBLE
invalid double
A class that stores a 2D geometrical boundary.
Representation of a lane in the micro simulation (gui-version)
bool drawAsWaterway(const GUIVisualizationSettings &s) const
whether to draw this lane as a waterway
void debugDrawFoeIntersections() const
draw intersection positions of foe internal lanes with this one
std::vector< double > myShapeLengths
The lengths of the shape parts.
std::vector< MSParkingArea * > * myParkingAreas
list of parkingAreas on this lane
const VehCont & getVehiclesSecure() const override
Returns the vehicles container; locks it for microsimulation.
FXMutex myLock
The mutex used to avoid concurrent updates of the vehicle buffer.
bool isLaneOrEdgeSelected() const
whether this lane or its parent edge is selected in the GUI
void setReachability(double value)
double getLengthGeometryFactor(bool secondaryShape) const override
void initRotations(const PositionVector &shape, std::vector< double > &rotations, std::vector< double > &lengths, std::vector< RGBColor > &colors)
double myHalfLaneWidth
Half of lane width, for speed-up.
double getReachability() const
PositionVector splitAtSegments(const PositionVector &shape)
add intermediate points at segment borders
std::vector< int > myShapeSegments
the meso segment index for each geometry segment
double firstWaitingTime() const
double setPartialOccupation(MSVehicle *v) override
Sets the information about a vehicle lapping into this lane.
double myQuarterLaneWidth
Quarter of lane width, for speed-up.
void drawTLSLinkNo(const GUIVisualizationSettings &s, const GUINet &net) const
RGBColor setColor(const GUIVisualizationSettings &s) const
sets the color according to the currente settings
double getPendingEmits() const
get number of vehicles waiting for departure on this lane
void drawLinkNo(const GUIVisualizationSettings &s) const
helper methods
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent) override
Returns an own popup-menu.
static GUIVisualizationSettings * myCachedGUISettings
cached for tracking color value
void drawJunctionChangeProhibitions() const
bike lane markings on top of an intersection
static const RGBColor MESO_USE_LANE_COLOR
special color to signify alternative coloring scheme
std::vector< double > myShapeLengths2
MSVehicle * removeVehicle(MSVehicle *remVehicle, MSMoveReminder::Notification notification, bool notify) override
bool setMultiColor(const GUIVisualizationSettings &s, const GUIColorer &c, RGBColor &col) const
sets multiple colors according to the current scheme index and some lane function
std::string getParentName() const override
Returns the name of the parent object (if any)
void addSecondaryShape(const PositionVector &shape) override
double getScaleValue(const GUIVisualizationSettings &s, int activeScheme, bool s2) const
gets the scaling value according to the current scheme index
void resetPartialOccupation(MSVehicle *v) override
Removes the information about a vehicle lapping into this lane.
void integrateNewVehicles() override
void drawGL(const GUIVisualizationSettings &s) const override
Draws the object.
void drawArrows(bool secondaryShape) const
std::vector< int > mySegmentStartIndex
the shape indices where the meso segment changes (for segmentsIndex > 0)
void drawLinkRules(const GUIVisualizationSettings &s, const GUINet &net) const
std::vector< RGBColor > myShapeColors
The color of the shape parts (cached)
bool neighLaneNotBidi() const
whether any of the neighboring lanes is not a bidi-lane
double getColorValue(const GUIVisualizationSettings &s, int activeScheme) const override
gets the color value according to the current scheme index
void closeTraffic(bool rebuildAllowed=true)
close this lane for traffic
double getClickPriority() const override
Returns the priority of receiving mouse clicks.
bool isSelected() const override
whether this lane is selected in the GUI
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent) override
Returns an own parameter window.
const std::vector< double > & getShapeRotations(bool secondary) const
double getColorValueWithFunctional(const GUIVisualizationSettings &s, int activeScheme) const
gets the color value according to the current scheme index including values for things that set the c...
bool drawAsRailway(const GUIVisualizationSettings &s) const
whether to draw this lane as a railway
void removeParking(MSBaseVehicle *veh) override
remove parking vehicle
std::vector< double > myShapeRotations2
double myLengthGeometryFactor2
void planMovements(const SUMOTime t) override
double getColorValueForTracker() const
return color value based on cached settings
std::vector< RGBColor > myShapeColors2
double getEdgeLaneNumber() const
double myReachability
the time distance from a particular edge
double getLoadedEdgeWeight() const
Returns the loaded weight (effort) for the edge of this lane.
std::vector< double > myShapeRotations
The rotations of the shape parts.
TesselatedPolygon * myTesselation
An object that stores the tesselation.
void setJunctionApproaches(const SUMOTime t) const override
void incorporateVehicle(MSVehicle *veh, double pos, double speed, double posLat, const MSLane::VehCont::iterator &at, MSMoveReminder::Notification notification=MSMoveReminder::NOTIFICATION_DEPARTED) override
Inserts the vehicle into this lane, and informs it about entering the network.
void drawLinkRule(const GUIVisualizationSettings &s, const GUINet &net, const MSLink *link, const PositionVector &shape, double x1, double x2) const
Boundary getCenteringBoundary() const override
Returns the boundary to which the view shall be centered in order to show the object.
std::vector< RGBColor > & getShapeColors(bool secondary) const
bool setFunctionalColor(const GUIColorer &c, RGBColor &col, int activeScheme=-1) const
double getStoredEdgeTravelTime() const
Returns the stored traveltime for the edge of this lane.
const std::vector< double > & getShapeLengths(bool secondary) const
void drawMarkings(const GUIVisualizationSettings &s, double scale) const
draw lane borders and white markings
void drawBikeMarkings() const
bike lane markings on top of an intersection
void executeMovements(const SUMOTime t) override
PositionVector myShape2
secondary shape for visualization
bool myAmClosed
state for dynamic lane closings
void drawLane2LaneConnections(double exaggeration, bool s2) const
void releaseVehicles() const override
Allows to use the container for microsimulation again.
void drawDirectionIndicators(double exaggeration, bool spreadSuperposed, bool s2) const
direction indicators for lanes
void detectCollisions(SUMOTime timestep, const std::string &stage) override
void swapAfterLaneChange(SUMOTime t) override
moves myTmpVehicles int myVehicles after a lane change procedure
A MSNet extended by some values for usage within the gui.
A window containing a gl-object's parameter.
Stores the information about how to visualize structures.
The base class for microscopic and mesoscopic vehicles.
A road/street connecting two junctions.
Representation of a lane in the micro simulation.
std::vector< MSVehicle * > VehCont
Container for vehicles.
const PositionVector & getShape() const
Returns this lane's shape.
const double myLengthGeometryFactor
precomputed myShape.length / myLength
MSEdge & getEdge() const
Returns the lane's edge.
Notification
Definition of a vehicle state.
@ NOTIFICATION_DEPARTED
The vehicle has departed (was inserted into the network)
The simulated network and simulation perfomer.
Representation of a vehicle in the micro simulation.
const std::string & getID() const
Returns the id.