Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GNEEdge.h
Go to the documentation of this file.
1/****************************************************************************/
2// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.
4// This program and the accompanying materials are made available under the
5// terms of the Eclipse Public License 2.0 which is available at
6// https://www.eclipse.org/legal/epl-2.0/
7// This Source Code may also be made available under the following Secondary
8// Licenses when the conditions for such availability set forth in the Eclipse
9// Public License 2.0 are satisfied: GNU General Public License, version 2
10// or later which is available at
11// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13/****************************************************************************/
18// A road/street connecting two junctions (netedit-version, adapted from GUIEdge)
19// Basically a container for an NBEdge with drawing and editing capabilities
20/****************************************************************************/
21#pragma once
22#include <config.h>
23
24#include <netbuild/NBEdge.h>
28
29#include "GNENetworkElement.h"
30
31
32// ===========================================================================
33// class declarations
34// ===========================================================================
35class GNENet;
36class GNEJunction;
37class GNELane;
38class GNEConnection;
39class GNERouteProbe;
40class GNECrossing;
41class GNEEdgeType;
42class GNEEdgeTemplate;
43
44// ===========================================================================
45// class definitions
46// ===========================================================================
54
56 friend class GNEChange_Lane;
58
59public:
61 typedef std::vector<GNEConnection*> ConnectionVector;
62
68 GNEEdge(GNENet* net, NBEdge* nbe, bool wasSplit = false, bool loaded = false);
69
71 ~GNEEdge();
72
74 inline GNEJunction* getFromJunction() const {
75 return getParentJunctions().front();
76 }
77
79 inline GNEJunction* getToJunction() const {
80 return getParentJunctions().back();
81 }
82
84 bool isNetworkElementValid() const;
85
87 std::string getNetworkElementProblem() const;
88
91
93 void updateGeometry();
94
97
99
102
104 bool checkDrawFromContour() const;
105
107 bool checkDrawToContour() const;
108
110 bool checkDrawRelatedContour() const;
111
113 bool checkDrawOverContour() const;
114
116 bool checkDrawDeleteContour() const;
117
119 bool checkDrawDeleteContourSmall() const;
120
122 bool checkDrawSelectContour() const;
123
125 bool checkDrawMoveContour() const;
126
128
133
135 void removeGeometryPoint(const Position clickedPosition, GNEUndoList* undoList);
137
141 bool hasCustomEndPoints() const;
142
144 bool clickedOverShapeStart(const Position& pos) const;
145
147 bool clickedOverShapeEnd(const Position& pos) const;
148
150 bool clickedOverGeometryPoint(const Position& pos) const;
152
154 void updateJunctionPosition(GNEJunction* junction, const Position& origPos);
155
158
166
168 double getExaggeration(const GUIVisualizationSettings& s) const;
169
172
174 void updateCenteringBoundary(const bool updateGrid);
175
177 const std::string getOptionalName() const;
178
183 void drawGL(const GUIVisualizationSettings& s) const;
184
186 void deleteGLObject();
187
189 void updateGLObject();
190
192
194 NBEdge* getNBEdge() const;
195
197 std::vector<GNEEdge*> getOppositeEdges() const;
198
200 void editEndpoint(Position pos, GNEUndoList* undoList);
201
203 void resetEndpoint(const Position& pos, GNEUndoList* undoList);
204
206 void resetBothEndpoint(GNEUndoList* undoList);
207
210 /* @brief method for getting the Attribute of an XML key
211 * @param[in] key The attribute key
212 * @return string with the value associated to key
213 */
214 std::string getAttribute(SumoXMLAttr key) const;
215 std::string getAttributeForSelection(SumoXMLAttr key) const;
216
217 /* @brief method for getting the Attribute of an XML key in Position format
218 * @param[in] key The attribute key
219 * @return position with the value associated to key
220 */
222
223 /* @brief method for setting the attribute and letting the object perform additional changes
224 * @param[in] key The attribute key
225 * @param[in] value The new value
226 * @param[in] undoList The undoList on which to register changes
227 */
228 void setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList);
229
230 /* @brief method for setting the attribute and letting the object perform additional changes
231 * @param[in] key The attribute key
232 * @param[in] value The new value
233 * @param[in] undoList The undoList on which to register changes
234 */
235 bool isValid(SumoXMLAttr key, const std::string& value);
236
237 /* @brief method for check if the value for certain attribute is set
238 * @param[in] key The attribute key
239 */
240 bool isAttributeEnabled(SumoXMLAttr key) const;
241
242 /* @brief method for check if the value for certain attribute is computed (for example, due a network recomputing)
243 * @param[in] key The attribute key
244 */
245 bool isAttributeComputed(SumoXMLAttr key) const;
246
248
251
253 void setResponsible(bool newVal);
254
259 void setGeometry(PositionVector geom, bool inner);
260
262 const Position getFrontUpShapePosition() const;
263
266
268 const Position getBackUpShapePosition() const;
269
272
274 void remakeGNEConnections(bool junctionsReady = false);
275
277 void copyTemplate(const GNEEdgeTemplate* edgeTemplate, GNEUndoList* undoList);
278
280 void copyEdgeType(const GNEEdgeType* edgeType, GNEUndoList* undoList);
281
283 std::set<GUIGlID> getLaneGlIDs() const;
284
286 const std::vector<GNEConnection*>& getGNEConnections() const;
287
289 GNEConnection* retrieveGNEConnection(int fromLane, NBEdge* to, int toLane, bool createIfNoExist = true);
290
292 bool wasSplit();
293
294 /* @brief compute a splitting position which keeps the resulting edges
295 * straight unless the user clicked near a geometry point */
296 Position getSplitPos(const Position& clickPos);
297
299 void setEdgeID(const std::string& newID);
300
302 bool hasRestrictedLane(SUMOVehicleClass vclass) const;
303
304 // @brief the radius in which to register clicks for geometry nodes
305 static const double SNAP_RADIUS;
306
307 // @brief the radius in which to register clicks for geometry nodes (Squared)
308 static const double SNAP_RADIUS_SQUARED;
309
311 void clearGNEConnections();
312
314 int getRouteProbeRelativePosition(GNERouteProbe* routeProbe) const;
315
317 std::vector<GNECrossing*> getGNECrossings();
318
320 void smooth(GNEUndoList* undoList);
321
323 void straightenElevation(GNEUndoList* undoList);
324
326 void smoothElevation(GNEUndoList* undoList);
327
329 PositionVector smoothShape(const PositionVector& shape, bool forElevation);
330
333
336
337 // @brief update vehicle spread geometries
339
340 // @brief update vehicle geometries
342
343 // @brief update person geometries
345
346 // @brief update vehicle geometries
348
350 bool isConvexAngle() const;
351
353 bool hasPredecessors() const;
354
356 bool hasSuccessors() const;
357
359 GNEEdge* getReverseEdge() const;
360
361protected:
364
367
370
373
376
379
380private:
382 class StackPosition : public std::pair<double, double> {
383
384 public:
386 StackPosition(const double departPos, const double length);
387
389 double beginPosition() const;
390
392 double endPosition() const;
393 };
394
396 class StackDemandElements : public std::pair<StackPosition, std::vector<GNEDemandElement*> > {
397
398 public:
400 StackDemandElements(const StackPosition stackedPosition, GNEDemandElement* demandElement);
401
403 void addDemandElements(GNEDemandElement* demandElement);
404
406 const StackPosition& getStackPosition() const;
407
409 const std::vector<GNEDemandElement*>& getDemandElements() const;
410 };
411
414
417
419 void setAttribute(SumoXMLAttr key, const std::string& value);
420
422 void setMoveShape(const GNEMoveResult& moveResult);
423
425 void commitMoveShape(const GNEMoveResult& moveResult, GNEUndoList* undoList);
426
433 void setNumLanes(int numLanes, GNEUndoList* undoList);
434
436 void updateFirstParentJunction(const std::string& value);
437
439 void updateSecondParentJunction(const std::string& value);
440
442 void addLane(GNELane* lane, const NBEdge::Lane& laneAttrs, bool recomputeConnections);
443
445 void removeLane(GNELane* lane, bool recomputeConnections);
446
448 void addConnection(NBEdge::Connection nbCon, bool selectAfterCreation = false);
449
452
454 void removeEdgeFromCrossings(GNEJunction* junction, GNEUndoList* undoList);
455
457 void setShapeStartPos(const Position& pos);
458
460 void setShapeEndPos(const Position& pos);
461
463 const std::map<const GNELane*, std::vector<GNEDemandElement*> > getVehiclesOverEdgeMap() const;
464
466 const std::map<const GNELane*, std::vector<GNEDemandElement*> > getPersonsOverEdgeMap() const;
467
469 const std::map<const GNELane*, std::vector<GNEDemandElement*> > getContainersOverEdgeMap() const;
470
473 const double layer) const;
474
477 const double geometryPointRadius, const double layer, const double exaggeration) const;
478
481 const double geometryPointRadius, const double layer, const double exaggeration) const;
482
484 void drawEdgeName(const GUIVisualizationSettings& s) const;
485
488 const double layer) const;
489
492 const double layer) const;
493
495 void drawChildrens(const GUIVisualizationSettings& s) const;
496
499 const double layer) const;
500
502 void drawTAZElements(const GUIVisualizationSettings& s) const;
503
505 bool drawBigGeometryPoints() const;
506
508 bool areStackPositionOverlapped(const GNEEdge::StackPosition& vehicleA, const GNEEdge::StackPosition& vehicleB) const;
509
511 GNEMoveOperation* processMoveFromJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius);
512
514 GNEMoveOperation* processMoveToJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius);
515
518
520 GNEMoveOperation* processNoneJunctionSelected(const double snapRadius);
521
523 double getGeometryPointRadius() const;
524
526 GNEEdge(const GNEEdge& s) = delete;
527
529 GNEEdge& operator=(const GNEEdge& s) = delete;
530};
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
A class that stores a 2D geometrical boundary.
Definition Boundary.h:39
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
Definition GNECrossing.h:44
Stack demand elements.
Definition GNEEdge.h:396
const StackPosition & getStackPosition() const
get stack position
Definition GNEEdge.cpp:1876
const std::vector< GNEDemandElement * > & getDemandElements() const
get demand elements
Definition GNEEdge.cpp:1882
void addDemandElements(GNEDemandElement *demandElement)
add demand elment to current StackDemandElements
Definition GNEEdge.cpp:1870
Stack position (used to stack demand elements over edges)
Definition GNEEdge.h:382
double beginPosition() const
get begin position
Definition GNEEdge.cpp:1851
double endPosition() const
get end position
Definition GNEEdge.cpp:1857
A road/street connecting two junctions (netedit-version)
Definition GNEEdge.h:53
void drawEdgeGeometryPoints(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const double layer) const
draw edge geometry points (note: This function is called by GNELane::drawGL(...)
Definition GNEEdge.cpp:2632
const Position getFrontDownShapePosition() const
get front down shape position
Definition GNEEdge.cpp:970
Boundary myEdgeBoundary
edge boundary
Definition GNEEdge.h:413
void updateCenteringBoundary(const bool updateGrid)
update centering boundary (implies change in RTREE)
Definition GNEEdge.cpp:708
void drawEdgeName(const GUIVisualizationSettings &s) const
draw edge name
Definition GNEEdge.cpp:2810
bool isConvexAngle() const
check if edge makes a convex angle [0 - 180) degrees
Definition GNEEdge.cpp:1795
bool checkDrawRelatedContour() const
check if draw related contour (cyan)
Definition GNEEdge.cpp:321
void setNumLanes(int numLanes, GNEUndoList *undoList)
changes the number of lanes. When reducing the number of lanes, higher-numbered lanes are removed fir...
Definition GNEEdge.cpp:2099
std::string getNetworkElementProblem() const
return a string with the current network element problem
Definition GNEEdge.cpp:145
const std::map< const GNELane *, std::vector< GNEDemandElement * > > getPersonsOverEdgeMap() const
get persons a that start over this edge
Definition GNEEdge.cpp:2567
const std::map< const GNELane *, std::vector< GNEDemandElement * > > getContainersOverEdgeMap() const
get containers a that start over this edge
Definition GNEEdge.cpp:2600
void commitMoveShape(const GNEMoveResult &moveResult, GNEUndoList *undoList)
commit move shape
Definition GNEEdge.cpp:2072
bool hasPredecessors() const
check if this edge has predecessors (note: only for vehicles, this function ignore walking areas!...
Definition GNEEdge.cpp:1810
void setMoveShape(const GNEMoveResult &moveResult)
set move shape
Definition GNEEdge.cpp:2050
bool checkDrawMoveContour() const
check if draw move contour (red)
Definition GNEEdge.cpp:490
bool checkDrawOverContour() const
check if draw over contour (orange)
Definition GNEEdge.cpp:341
~GNEEdge()
Destructor.
Definition GNEEdge.cpp:105
GNEEdge & operator=(const GNEEdge &s)=delete
invalidated assignment operator
void smooth(GNEUndoList *undoList)
make geometry smooth
Definition GNEEdge.cpp:2461
void updateGeometry()
update pre-computed geometry information
Definition GNEEdge.cpp:153
double getGeometryPointRadius() const
get geometry point radius
Definition GNEEdge.cpp:3201
GNEMoveOperation * getMoveOperation()
get move operation
Definition GNEEdge.cpp:532
std::string getAttributeForSelection(SumoXMLAttr key) const
method for getting the attribute in the context of object selection
Definition GNEEdge.cpp:1280
void setResponsible(bool newVal)
set responsibility for deleting internal structures
Definition GNEEdge.cpp:1566
void copyEdgeType(const GNEEdgeType *edgeType, GNEUndoList *undoList)
copy edge attributes from edgeType
Definition GNEEdge.cpp:1121
NBEdge * getNBEdge() const
returns the internal NBEdge
Definition GNEEdge.cpp:829
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
Definition GNEEdge.cpp:755
const std::map< const GNELane *, std::vector< GNEDemandElement * > > getVehiclesOverEdgeMap() const
get vehicles a that start over this edge
Definition GNEEdge.cpp:2525
std::set< GUIGlID > getLaneGlIDs() const
returns GLIDs of all lanes
Definition GNEEdge.cpp:1153
GNEEdge * getReverseEdge() const
get reverse edge (if exist)
Definition GNEEdge.cpp:1832
const Position getFrontUpShapePosition() const
get front up shape position
Definition GNEEdge.cpp:962
std::vector< GNEConnection * > ConnectionVector
Definition of the connection's vector.
Definition GNEEdge.h:61
void setGeometry(PositionVector geom, bool inner)
update edge geometry and inform the lanes
Definition GNEEdge.cpp:927
void smoothElevation(GNEUndoList *undoList)
smooth elevation with regard to adjoining edges
Definition GNEEdge.cpp:2473
bool clickedOverGeometryPoint(const Position &pos) const
return true if user clicked over a Geometry Point
Definition GNEEdge.cpp:661
bool clickedOverShapeEnd(const Position &pos) const
return true if user clicked over ShapeEnd
Definition GNEEdge.cpp:649
void updateVehicleStackLabels()
Definition GNEEdge.cpp:1633
bool isValid(SumoXMLAttr key, const std::string &value)
Definition GNEEdge.cpp:1427
void remakeGNEConnections(bool junctionsReady=false)
remake connections
Definition GNEEdge.cpp:993
GNEMoveOperation * processMoveBothJunctionSelected()
process moving edge when both junctions are selected
Definition GNEEdge.cpp:3153
void calculateEdgeContour(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const double layer) const
calculate contours
Definition GNEEdge.cpp:2920
void removeGeometryPoint(const Position clickedPosition, GNEUndoList *undoList)
remove geometry point in the clicked position
Definition GNEEdge.cpp:564
static const double SNAP_RADIUS
Definition GNEEdge.h:305
GNELane * getLaneByAllowedVClass(const SUMOVehicleClass vClass) const
return the first lane that allow a vehicle of type vClass (or the first lane, if none was found)
Definition GNEEdge.cpp:1572
bool hasCustomEndPoints() const
Definition GNEEdge.cpp:625
void updatePersonStackLabels()
Definition GNEEdge.cpp:1691
void setEdgeID(const std::string &newID)
set edge ID
Definition GNEEdge.cpp:2347
void removeConnection(NBEdge::Connection nbCon)
removes a connection
Definition GNEEdge.cpp:2292
void drawChildrens(const GUIVisualizationSettings &s) const
draw children
Definition GNEEdge.cpp:2892
bool hasSuccessors() const
check if this edge has successors (note: only for vehicles, this function ignore walking areas!...
Definition GNEEdge.cpp:1826
void drawStartGeometryPoint(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const double geometryPointRadius, const double layer, const double exaggeration) const
draw start extreme geometry point
Definition GNEEdge.cpp:2682
bool isAttributeComputed(SumoXMLAttr key) const
Definition GNEEdge.cpp:1543
bool drawBigGeometryPoints() const
check if draw big geometry points
Definition GNEEdge.cpp:3031
bool myWasSplit
whether this edge was created from a split
Definition GNEEdge.h:375
void removeLane(GNELane *lane, bool recomputeConnections)
@briefdecrease the number of lanes by one. argument is only used to increase robustness (assertions)
Definition GNEEdge.cpp:2216
bool checkDrawSelectContour() const
check if draw select contour (blue)
Definition GNEEdge.cpp:459
double getExaggeration(const GUIVisualizationSettings &s) const
return exaggeration associated with this GLObject
Definition GNEEdge.cpp:696
bool hasRestrictedLane(SUMOVehicleClass vclass) const
check if edge has a restricted lane
Definition GNEEdge.cpp:2356
static const double SNAP_RADIUS_SQUARED
Definition GNEEdge.h:308
void updateSecondParentJunction(const std::string &value)
update last parent junction
Definition GNEEdge.cpp:2149
Position myPositionBeforeMoving
position used for move Lanes
Definition GNEEdge.h:369
std::vector< GNEEdge * > getOppositeEdges() const
get opposite edges
Definition GNEEdge.cpp:763
PositionVector smoothShape(const PositionVector &shape, bool forElevation)
return smoothed shape
Definition GNEEdge.cpp:2388
GNEJunction * getFromJunction() const
get from Junction (only used to increase readability)
Definition GNEEdge.h:74
bool wasSplit()
whether this edge was created from a split
Definition GNEEdge.cpp:1169
NBEdge * myNBEdge
the underlying NBEdge
Definition GNEEdge.h:363
void copyTemplate(const GNEEdgeTemplate *edgeTemplate, GNEUndoList *undoList)
copy edge attributes from edgetemplate
Definition GNEEdge.cpp:1098
void removeEdgeFromCrossings(GNEJunction *junction, GNEUndoList *undoList)
remove crossing of junction
Definition GNEEdge.cpp:2367
Position getPositionInView() const
Returns position of hierarchical element in view.
Definition GNEEdge.cpp:199
void addLane(GNELane *lane, const NBEdge::Lane &laneAttrs, bool recomputeConnections)
increase number of lanes by one use the given attributes and restore the GNELane
Definition GNEEdge.cpp:2156
GNEConnection * retrieveGNEConnection(int fromLane, NBEdge *to, int toLane, bool createIfNoExist=true)
get GNEConnection if exist, and if not create it if create is enabled
Definition GNEEdge.cpp:2326
ConnectionVector myGNEConnections
vector with the connections of this edge
Definition GNEEdge.h:366
void editEndpoint(Position pos, GNEUndoList *undoList)
makes pos the new geometry endpoint at the appropriate end, or remove current existent endpoint
Definition GNEEdge.cpp:851
void resetBothEndpoint(GNEUndoList *undoList)
restores both endpoint to the junction position at the appropriate end
Definition GNEEdge.cpp:917
Position getSplitPos(const Position &clickPos)
Definition GNEEdge.cpp:835
const std::vector< GNEConnection * > & getGNEConnections() const
returns a reference to the GNEConnection vector
Definition GNEEdge.cpp:1163
std::string getAttribute(SumoXMLAttr key) const
Definition GNEEdge.cpp:1175
int getRouteProbeRelativePosition(GNERouteProbe *routeProbe) const
obtain relative positions of RouteProbes
Definition GNEEdge.cpp:1063
bool checkDrawFromContour() const
check if draw from contour (green)
Definition GNEEdge.cpp:205
std::string myConnectionStatus
modification status of the connections
Definition GNEEdge.h:378
void drawEndGeometryPoint(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const double geometryPointRadius, const double layer, const double exaggeration) const
draw end extreme geometry point
Definition GNEEdge.cpp:2746
bool checkDrawDeleteContour() const
check if draw delete contour (pink/white)
Definition GNEEdge.cpp:413
void deleteGLObject()
delete element
Definition GNEEdge.cpp:814
const std::string getOptionalName() const
Returns the street name.
Definition GNEEdge.cpp:749
void clearGNEConnections()
clear current connections
Definition GNEEdge.cpp:1038
bool myUpdateGeometry
flag to enable/disable update geometry of lanes (used mainly by setNumLanes)
Definition GNEEdge.h:416
const Position getBackDownShapePosition() const
get back down shape position
Definition GNEEdge.cpp:986
GNEEdge(const GNEEdge &s)=delete
invalidated copy constructor
bool areStackPositionOverlapped(const GNEEdge::StackPosition &vehicleA, const GNEEdge::StackPosition &vehicleB) const
check if given stacked positions are overlapped
Definition GNEEdge.cpp:3049
void updateFirstParentJunction(const std::string &value)
update front parent junction
Definition GNEEdge.cpp:2142
bool checkDrawDeleteContourSmall() const
check if draw delete contour small (pink/white)
Definition GNEEdge.cpp:444
void straightenElevation(GNEUndoList *undoList)
interpolate z values linear between junctions
Definition GNEEdge.cpp:2378
void updateContainerStackLabels()
Definition GNEEdge.cpp:1743
bool checkDrawToContour() const
check if draw from contour (magenta)
Definition GNEEdge.cpp:263
bool clickedOverShapeStart(const Position &pos) const
return true if user clicked over ShapeStart
Definition GNEEdge.cpp:637
bool isNetworkElementValid() const
check if current network element is valid to be written into XML
Definition GNEEdge.cpp:135
void setShapeStartPos(const Position &pos)
change Shape StartPos
Definition GNEEdge.cpp:2503
GNEJunction * getToJunction() const
get from Junction (only used to increase readability)
Definition GNEEdge.h:79
void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)
Definition GNEEdge.cpp:1290
const Position getBackUpShapePosition() const
get back up shape position
Definition GNEEdge.cpp:978
void resetEndpoint(const Position &pos, GNEUndoList *undoList)
restores the endpoint to the junction position at the appropriate end
Definition GNEEdge.cpp:903
bool isAttributeEnabled(SumoXMLAttr key) const
Definition GNEEdge.cpp:1528
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
Definition GNEEdge.cpp:769
void addConnection(NBEdge::Connection nbCon, bool selectAfterCreation=false)
adds a connection
Definition GNEEdge.cpp:2268
GNEMoveOperation * processMoveFromJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius)
process moving edge when only from junction is selected
Definition GNEEdge.cpp:3065
GNEMoveOperation * processNoneJunctionSelected(const double snapRadius)
process moving edge when none junction are selected
Definition GNEEdge.cpp:3164
PositionVector getAttributePositionVector(SumoXMLAttr key) const
Definition GNEEdge.cpp:1269
void drawLaneStopOffset(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const double layer) const
draw edgeStopOffset
Definition GNEEdge.cpp:2873
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
Definition GNEEdge.cpp:702
const Parameterised::Map & getACParametersMap() const
get parameters map
Definition GNEEdge.cpp:1560
void drawTAZElements(const GUIVisualizationSettings &s) const
draw TAZElements
Definition GNEEdge.cpp:2943
void drawEdgeShape(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const double layer) const
draw edge shape (only one line)
Definition GNEEdge.cpp:2996
std::vector< GNECrossing * > getGNECrossings()
get GNECrossings vinculated with this Edge
Definition GNEEdge.cpp:1081
GNELane * getLaneByDisallowedVClass(const SUMOVehicleClass vClass) const
return the first lane that disallow a vehicle of type vClass (or the first lane, if none was found)
Definition GNEEdge.cpp:1587
void updateVehicleSpreadGeometries()
Definition GNEEdge.cpp:1602
GNEMoveOperation * processMoveToJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius)
process moving edge when only to junction is selected
Definition GNEEdge.cpp:3109
void updateGLObject()
update GLObject (geometry, ID, etc.)
Definition GNEEdge.cpp:823
void updateJunctionPosition(GNEJunction *junction, const Position &origPos)
update edge geometry after junction move
Definition GNEEdge.cpp:682
bool myAmResponsible
whether we are responsible for deleting myNBNode
Definition GNEEdge.h:372
void setShapeEndPos(const Position &pos)
change Shape EndPos
Definition GNEEdge.cpp:2514
const GNEHierarchicalContainerParents< GNEJunction * > & getParentJunctions() const
get parent junctions
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
Definition GNELane.h:46
move operation
move result
A NBNetBuilder extended by visualisation and editing capabilities.
Definition GNENet.h:42
The popup menu of a globject.
Stores the information about how to visualize structures.
The representation of a single edge during network building.
Definition NBEdge.h:92
std::map< std::string, std::string > Map
parameters map
A point in 2D or 3D with translation and scaling methods.
Definition Position.h:37
A list of positions.
A structure which describes a connection between edges or lanes.
Definition NBEdge.h:201
An (internal) definition of a single lane of an edge.
Definition NBEdge.h:143