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-2026 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>
29
30#include "GNENetworkElement.h"
31
32// ===========================================================================
33// class declarations
34// ===========================================================================
35
36class GNEConnection;
37class GNECrossing;
38class GNEEdgeTemplate;
39class GNEEdgeType;
40class GNEJunction;
41class GNELane;
44class GNENet;
45class GNERouteProbe;
46
47// ===========================================================================
48// class definitions
49// ===========================================================================
50
52
54 friend class GNEChange_Lane;
56 friend class GNEMoveElementEdge;
57
58public:
60 typedef std::vector<GNEConnection*> ConnectionVector;
61
67 GNEEdge(GNENet* net, NBEdge* nbe, bool wasSplit = false, bool loaded = false);
68
70 ~GNEEdge();
71
74
76 GNEMoveElement* getMoveElement() const override;
77
79 Parameterised* getParameters() override;
80
82 const Parameterised* getParameters() const override;
83
85
87 inline GNEJunction* getFromJunction() const {
88 return getParentJunctions().front();
89 }
90
92 inline GNEJunction* getToJunction() const {
93 return getParentJunctions().back();
94 }
95
97 bool isNetworkElementValid() const override;
98
100 std::string getNetworkElementProblem() const override;
101
104
106 void updateGeometry() override;
107
110
112
115
117 bool checkDrawFromContour() const override;
118
120 bool checkDrawToContour() const override;
121
123 bool checkDrawRelatedContour() const override;
124
126 bool checkDrawOverContour() const override;
127
129 bool checkDrawDeleteContour() const override;
130
132 bool checkDrawDeleteContourSmall() const override;
133
135 bool checkDrawSelectContour() const override;
136
138 bool checkDrawMoveContour() const override;
139
141
145 bool hasCustomEndPoints() const;
146
148 bool clickedOverShapeStart(const Position& pos) const;
149
151 bool clickedOverShapeEnd(const Position& pos) const;
152
154 bool clickedOverGeometryPoint(const Position& pos) const;
156
158 void updateJunctionPosition(GNEJunction* junction, const Position& origPos);
159
163 bool isVisible(const GUIVisualizationSettings& s) const override;
164
173
175 double getExaggeration(const GUIVisualizationSettings& s) const override;
176
178 Boundary getCenteringBoundary() const override;
179
181 void updateCenteringBoundary(const bool updateGrid);
182
184 const std::string getOptionalName() const override;
185
190 void drawGL(const GUIVisualizationSettings& s) const override;
191
193 void deleteGLObject() override;
194
196 void updateGLObject() override;
197
199
201 NBEdge* getNBEdge() const;
202
204 std::vector<GNEEdge*> getOppositeEdges() const;
205
207 void editEndpoint(Position pos, GNEUndoList* undoList);
208
210 void resetEndpoint(const Position& pos, GNEUndoList* undoList);
211
213 void resetBothEndpoint(GNEUndoList* undoList);
214
217 /* @brief method for getting the Attribute of an XML key
218 * @param[in] key The attribute key
219 * @return string with the value associated to key
220 */
221 std::string getAttribute(SumoXMLAttr key) const override;
222 std::string getAttributeForSelection(SumoXMLAttr key) const override;
223
224 /* @brief method for getting the Attribute of an XML key in double format
225 * @param[in] key The attribute key
226 * @return double with the value associated to key
227 */
228 double getAttributeDouble(SumoXMLAttr key) const override;
229
230 /* @brief method for getting the Attribute of an XML key in position format
231 * @param[in] key The attribute key
232 * @return position with the value associated to key
233 */
234 Position getAttributePosition(SumoXMLAttr key) const override;
235
236 /* @brief method for getting the Attribute of an XML key in Position format
237 * @param[in] key The attribute key
238 * @return position with the value associated to key
239 */
241
242 /* @brief method for setting the attribute and letting the object perform additional changes
243 * @param[in] key The attribute key
244 * @param[in] value The new value
245 * @param[in] undoList The undoList on which to register changes
246 */
247 void setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList) override;
248
249 /* @brief method for setting the attribute and letting the object perform additional changes
250 * @param[in] key The attribute key
251 * @param[in] value The new value
252 * @param[in] undoList The undoList on which to register changes
253 */
254 bool isValid(SumoXMLAttr key, const std::string& value) override;
255
256 /* @brief method for check if the value for certain attribute is set
257 * @param[in] key The attribute key
258 */
259 bool isAttributeEnabled(SumoXMLAttr key) const override;
260
261 /* @brief method for check if the value for certain attribute is computed (for example, due a network recomputing)
262 * @param[in] key The attribute key
263 */
264 bool isAttributeComputed(SumoXMLAttr key) const override;
265
267
269 void setResponsible(bool newVal);
270
275 void setGeometry(PositionVector geom, bool inner);
276
278 const Position getFrontUpShapePosition() const;
279
282
284 const Position getBackUpShapePosition() const;
285
288
290 void remakeGNEConnections(bool junctionsReady = false);
291
293 void copyTemplate(const GNEEdgeTemplate* edgeTemplate, GNEUndoList* undoList);
294
296 void copyEdgeType(const GNEEdgeType* edgeType, GNEUndoList* undoList);
297
299 std::set<GUIGlID> getLaneGlIDs() const;
300
302 const std::vector<GNEConnection*>& getGNEConnections() const;
303
305 GNEConnection* retrieveGNEConnection(int fromLane, NBEdge* to, int toLane, bool createIfNoExist = true);
306
308 bool wasSplit();
309
310 /* @brief compute a splitting position which keeps the resulting edges
311 * straight unless the user clicked near a geometry point */
312 Position getSplitPos(const Position& clickPos);
313
315 void setEdgeID(const std::string& newID);
316
318 bool hasRestrictedLane(SUMOVehicleClass vclass) const;
319
320 // @brief the radius in which to register clicks for geometry nodes
321 static const double SNAP_RADIUS;
322
323 // @brief the radius in which to register clicks for geometry nodes (Squared)
324 static const double SNAP_RADIUS_SQUARED;
325
327 void clearGNEConnections();
328
330 int getRouteProbeRelativePosition(GNERouteProbe* routeProbe) const;
331
333 std::vector<GNECrossing*> getGNECrossings();
334
336 void smooth(GNEUndoList* undoList);
337
339 void straightenElevation(GNEUndoList* undoList);
340
342 void smoothElevation(GNEUndoList* undoList);
343
345 PositionVector smoothShape(const PositionVector& shape, bool forElevation);
346
349
352
353 // @brief update vehicle spread geometries
355
356 // @brief update vehicle geometries
358
359 // @brief update person geometries
361
362 // @brief update vehicle geometries
364
366 bool isConvexAngle() const;
367
369 bool hasPredecessors() const;
370
372 bool hasSuccessors() const;
373
375 GNEEdge* getReverseEdge() const;
376
377protected:
380
383
386
389
392
395
396private:
398 class StackPosition : public std::pair<double, double> {
399
400 public:
402 StackPosition(const double departPos, const double length);
403
405 double beginPosition() const;
406
408 double endPosition() const;
409 };
410
412 class StackDemandElements : public std::pair<StackPosition, std::vector<GNEDemandElement*> > {
413
414 public:
416 StackDemandElements(const StackPosition stackedPosition, GNEDemandElement* demandElement);
417
419 void addDemandElements(GNEDemandElement* demandElement);
420
422 const StackPosition& getStackPosition() const;
423
425 const std::vector<GNEDemandElement*>& getDemandElements() const;
426 };
427
430
433
436
438 void setAttribute(SumoXMLAttr key, const std::string& value) override;
439
446 void setNumLanes(int numLanes, GNEUndoList* undoList);
447
449 void updateFirstParentJunction(const std::string& value);
450
452 void updateSecondParentJunction(const std::string& value);
453
455 void addLane(GNELane* lane, const NBEdge::Lane& laneAttrs, bool recomputeConnections);
456
458 void removeLane(GNELane* lane, bool recomputeConnections);
459
461 void addConnection(NBEdge::Connection nbCon, bool selectAfterCreation = false);
462
465
467 void removeEdgeFromCrossings(GNEJunction* junction, GNEUndoList* undoList);
468
470 void setShapeStartPos(const Position& pos);
471
473 void setShapeEndPos(const Position& pos);
474
476 const std::map<const GNELane*, std::vector<GNEDemandElement*> > getVehiclesOverEdgeMap() const;
477
479 const std::map<const GNELane*, std::vector<GNEDemandElement*> > getPersonsOverEdgeMap() const;
480
482 const std::map<const GNELane*, std::vector<GNEDemandElement*> > getContainersOverEdgeMap() const;
483
486 const double layer) const;
487
490 const double geometryPointRadius, const double layer, const double exaggeration) const;
491
494 const double geometryPointRadius, const double layer, const double exaggeration) const;
495
497 void drawEdgeName(const GUIVisualizationSettings& s) const;
498
501 const double layer) const;
502
505 const double layer) const;
506
508 void drawChildrens(const GUIVisualizationSettings& s) const;
509
512 const double layer) const;
513
515 void drawTAZElements(const GUIVisualizationSettings& s) const;
516
518 bool drawBigGeometryPoints() const;
519
521 bool areStackPositionOverlapped(const GNEEdge::StackPosition& vehicleA, const GNEEdge::StackPosition& vehicleB) const;
522
524 double getGeometryPointRadius() const;
525
527 GNEEdge(const GNEEdge& s) = delete;
528
530 GNEEdge& operator=(const GNEEdge& s) = delete;
531};
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
Stack demand elements.
Definition GNEEdge.h:412
const StackPosition & getStackPosition() const
get stack position
Definition GNEEdge.cpp:1823
const std::vector< GNEDemandElement * > & getDemandElements() const
get demand elements
Definition GNEEdge.cpp:1829
void addDemandElements(GNEDemandElement *demandElement)
add demand elment to current StackDemandElements
Definition GNEEdge.cpp:1817
Stack position (used to stack demand elements over edges)
Definition GNEEdge.h:398
double beginPosition() const
get begin position
Definition GNEEdge.cpp:1798
double endPosition() const
get end position
Definition GNEEdge.cpp:1804
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:2532
double getAttributeDouble(SumoXMLAttr key) const override
Definition GNEEdge.cpp:1208
const Position getFrontDownShapePosition() const
get front down shape position
Definition GNEEdge.cpp:907
Boundary myEdgeBoundary
edge boundary
Definition GNEEdge.h:432
void updateCenteringBoundary(const bool updateGrid)
update centering boundary (implies change in RTREE)
Definition GNEEdge.cpp:645
void drawEdgeName(const GUIVisualizationSettings &s) const
draw edge name
Definition GNEEdge.cpp:2710
bool isConvexAngle() const
check if edge makes a convex angle [0 - 180) degrees
Definition GNEEdge.cpp:1742
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:2000
bool isNetworkElementValid() const override
check if current network element is valid to be written into XML
Definition GNEEdge.cpp:152
std::string getAttributeForSelection(SumoXMLAttr key) const override
method for getting the attribute in the context of object selection
Definition GNEEdge.cpp:1231
const std::map< const GNELane *, std::vector< GNEDemandElement * > > getPersonsOverEdgeMap() const
get persons a that start over this edge
Definition GNEEdge.cpp:2467
PositionVector getAttributePositionVector(SumoXMLAttr key) const override
Definition GNEEdge.cpp:1220
const std::map< const GNELane *, std::vector< GNEDemandElement * > > getContainersOverEdgeMap() const
get containers a that start over this edge
Definition GNEEdge.cpp:2500
bool hasPredecessors() const
check if this edge has predecessors (note: only for vehicles, this function ignore walking areas!...
Definition GNEEdge.cpp:1757
void updateGLObject() override
update GLObject (geometry, ID, etc.)
Definition GNEEdge.cpp:760
~GNEEdge()
Destructor.
Definition GNEEdge.cpp:104
GNEEdge & operator=(const GNEEdge &s)=delete
invalidated assignment operator
void smooth(GNEUndoList *undoList)
make geometry smooth
Definition GNEEdge.cpp:2361
void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList) override
Definition GNEEdge.cpp:1241
double getGeometryPointRadius() const
get geometry point radius
Definition GNEEdge.cpp:2968
void setResponsible(bool newVal)
set responsibility for deleting internal structures
Definition GNEEdge.cpp:1513
void copyEdgeType(const GNEEdgeType *edgeType, GNEUndoList *undoList)
copy edge attributes from edgeType
Definition GNEEdge.cpp:1058
NBEdge * getNBEdge() const
returns the internal NBEdge
Definition GNEEdge.cpp:766
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent) override
Returns an own popup-menu.
Definition GNEEdge.cpp:692
const std::map< const GNELane *, std::vector< GNEDemandElement * > > getVehiclesOverEdgeMap() const
get vehicles a that start over this edge
Definition GNEEdge.cpp:2425
std::set< GUIGlID > getLaneGlIDs() const
returns GLIDs of all lanes
Definition GNEEdge.cpp:1090
GNEEdge * getReverseEdge() const
get reverse edge (if exist)
Definition GNEEdge.cpp:1779
const Position getFrontUpShapePosition() const
get front up shape position
Definition GNEEdge.cpp:899
std::vector< GNEConnection * > ConnectionVector
Definition of the connection's vector.
Definition GNEEdge.h:60
void setGeometry(PositionVector geom, bool inner)
update edge geometry and inform the lanes
Definition GNEEdge.cpp:864
void smoothElevation(GNEUndoList *undoList)
smooth elevation with regard to adjoining edges
Definition GNEEdge.cpp:2373
bool clickedOverGeometryPoint(const Position &pos) const
return true if user clicked over a Geometry Point
Definition GNEEdge.cpp:587
bool clickedOverShapeEnd(const Position &pos) const
return true if user clicked over ShapeEnd
Definition GNEEdge.cpp:575
void updateVehicleStackLabels()
Definition GNEEdge.cpp:1580
void remakeGNEConnections(bool junctionsReady=false)
remake connections
Definition GNEEdge.cpp:930
bool isAttributeComputed(SumoXMLAttr key) const override
Definition GNEEdge.cpp:1496
void calculateEdgeContour(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const double layer) const
calculate contours
Definition GNEEdge.cpp:2820
static const double SNAP_RADIUS
Definition GNEEdge.h:321
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:1519
bool hasCustomEndPoints() const
Definition GNEEdge.cpp:551
void updatePersonStackLabels()
Definition GNEEdge.cpp:1638
void setEdgeID(const std::string &newID)
set edge ID
Definition GNEEdge.cpp:2247
void removeConnection(NBEdge::Connection nbCon)
removes a connection
Definition GNEEdge.cpp:2192
void drawChildrens(const GUIVisualizationSettings &s) const
draw children
Definition GNEEdge.cpp:2792
bool hasSuccessors() const
check if this edge has successors (note: only for vehicles, this function ignore walking areas!...
Definition GNEEdge.cpp:1773
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:2582
GNEMoveElementEdge * myMoveElementEdge
move element edge
Definition GNEEdge.h:429
bool drawBigGeometryPoints() const
check if draw big geometry points
Definition GNEEdge.cpp:2934
bool myWasSplit
whether this edge was created from a split
Definition GNEEdge.h:391
void removeLane(GNELane *lane, bool recomputeConnections)
@briefdecrease the number of lanes by one. argument is only used to increase robustness (assertions)
Definition GNEEdge.cpp:2116
GNEMoveElement * getMoveElement() const override
methods to retrieve the elements linked to this edge
Definition GNEEdge.cpp:134
bool hasRestrictedLane(SUMOVehicleClass vclass) const
check if edge has a restricted lane
Definition GNEEdge.cpp:2256
static const double SNAP_RADIUS_SQUARED
Definition GNEEdge.h:324
void updateSecondParentJunction(const std::string &value)
update last parent junction
Definition GNEEdge.cpp:2049
bool isVisible(const GUIVisualizationSettings &s) const override
check if object is visible (Currently used only in netedit)
Definition GNEEdge.cpp:622
Position myPositionBeforeMoving
position used for move Lanes
Definition GNEEdge.h:385
const std::string getOptionalName() const override
Returns the street name.
Definition GNEEdge.cpp:686
std::vector< GNEEdge * > getOppositeEdges() const
get opposite edges
Definition GNEEdge.cpp:700
PositionVector smoothShape(const PositionVector &shape, bool forElevation)
return smoothed shape
Definition GNEEdge.cpp:2288
bool checkDrawSelectContour() const override
check if draw select contour (blue)
Definition GNEEdge.cpp:476
GNEJunction * getFromJunction() const
get from Junction (only used to increase readability)
Definition GNEEdge.h:87
bool wasSplit()
whether this edge was created from a split
Definition GNEEdge.cpp:1106
NBEdge * myNBEdge
the underlying NBEdge
Definition GNEEdge.h:379
void copyTemplate(const GNEEdgeTemplate *edgeTemplate, GNEUndoList *undoList)
copy edge attributes from edgetemplate
Definition GNEEdge.cpp:1035
void removeEdgeFromCrossings(GNEJunction *junction, GNEUndoList *undoList)
remove crossing of junction
Definition GNEEdge.cpp:2267
bool checkDrawMoveContour() const override
check if draw move contour (red)
Definition GNEEdge.cpp:507
Position getPositionInView() const
Returns position of hierarchical element in view.
Definition GNEEdge.cpp:216
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:2056
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:2226
Position getAttributePosition(SumoXMLAttr key) const override
Definition GNEEdge.cpp:1214
bool checkDrawToContour() const override
check if draw from contour (magenta)
Definition GNEEdge.cpp:280
ConnectionVector myGNEConnections
vector with the connections of this edge
Definition GNEEdge.h:382
void editEndpoint(Position pos, GNEUndoList *undoList)
makes pos the new geometry endpoint at the appropriate end, or remove current existent endpoint
Definition GNEEdge.cpp:788
void resetBothEndpoint(GNEUndoList *undoList)
restores both endpoint to the junction position at the appropriate end
Definition GNEEdge.cpp:854
Position getSplitPos(const Position &clickPos)
Definition GNEEdge.cpp:772
void drawGL(const GUIVisualizationSettings &s) const override
Draws the object.
Definition GNEEdge.cpp:706
const std::vector< GNEConnection * > & getGNEConnections() const
returns a reference to the GNEConnection vector
Definition GNEEdge.cpp:1100
bool isValid(SumoXMLAttr key, const std::string &value) override
Definition GNEEdge.cpp:1379
int getRouteProbeRelativePosition(GNERouteProbe *routeProbe) const
obtain relative positions of RouteProbes
Definition GNEEdge.cpp:1000
bool checkDrawRelatedContour() const override
check if draw related contour (cyan)
Definition GNEEdge.cpp:338
std::string myConnectionStatus
modification status of the connections
Definition GNEEdge.h:394
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:2646
double getExaggeration(const GUIVisualizationSettings &s) const override
return exaggeration associated with this GLObject
Definition GNEEdge.cpp:633
bool checkDrawDeleteContour() const override
check if draw delete contour (pink/white)
Definition GNEEdge.cpp:430
Boundary getCenteringBoundary() const override
Returns the boundary to which the view shall be centered in order to show the object.
Definition GNEEdge.cpp:639
void clearGNEConnections()
clear current connections
Definition GNEEdge.cpp:975
bool myUpdateGeometry
flag to enable/disable update geometry of lanes (used mainly by setNumLanes)
Definition GNEEdge.h:435
const Position getBackDownShapePosition() const
get back down shape position
Definition GNEEdge.cpp:923
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:2952
bool checkDrawDeleteContourSmall() const override
check if draw delete contour small (pink/white)
Definition GNEEdge.cpp:461
void updateFirstParentJunction(const std::string &value)
update front parent junction
Definition GNEEdge.cpp:2042
void updateGeometry() override
update pre-computed geometry information
Definition GNEEdge.cpp:170
void straightenElevation(GNEUndoList *undoList)
interpolate z values linear between junctions
Definition GNEEdge.cpp:2278
void updateContainerStackLabels()
Definition GNEEdge.cpp:1690
bool clickedOverShapeStart(const Position &pos) const
return true if user clicked over ShapeStart
Definition GNEEdge.cpp:563
void deleteGLObject() override
delete element
Definition GNEEdge.cpp:751
void setShapeStartPos(const Position &pos)
change Shape StartPos
Definition GNEEdge.cpp:2403
GNEJunction * getToJunction() const
get from Junction (only used to increase readability)
Definition GNEEdge.h:92
const Position getBackUpShapePosition() const
get back up shape position
Definition GNEEdge.cpp:915
void resetEndpoint(const Position &pos, GNEUndoList *undoList)
restores the endpoint to the junction position at the appropriate end
Definition GNEEdge.cpp:840
bool isAttributeEnabled(SumoXMLAttr key) const override
Definition GNEEdge.cpp:1481
void addConnection(NBEdge::Connection nbCon, bool selectAfterCreation=false)
adds a connection
Definition GNEEdge.cpp:2168
void drawLaneStopOffset(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const double layer) const
draw edgeStopOffset
Definition GNEEdge.cpp:2773
void drawTAZElements(const GUIVisualizationSettings &s) const
draw TAZElements
Definition GNEEdge.cpp:2843
void drawEdgeShape(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const double layer) const
draw edge shape (only one line)
Definition GNEEdge.cpp:2896
std::vector< GNECrossing * > getGNECrossings()
get GNECrossings vinculated with this Edge
Definition GNEEdge.cpp:1018
bool checkDrawFromContour() const override
check if draw from contour (green)
Definition GNEEdge.cpp:222
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:1534
Parameterised * getParameters() override
get parameters associated with this edge
Definition GNEEdge.cpp:140
void updateVehicleSpreadGeometries()
Definition GNEEdge.cpp:1549
bool checkDrawOverContour() const override
check if draw over contour (orange)
Definition GNEEdge.cpp:358
std::string getAttribute(SumoXMLAttr key) const override
Definition GNEEdge.cpp:1112
void updateJunctionPosition(GNEJunction *junction, const Position &origPos)
update edge geometry after junction move
Definition GNEEdge.cpp:608
bool myAmResponsible
whether we are responsible for deleting myNBNode
Definition GNEEdge.h:388
void setShapeEndPos(const Position &pos)
change Shape EndPos
Definition GNEEdge.cpp:2414
std::string getNetworkElementProblem() const override
return a string with the current network element problem
Definition GNEEdge.cpp:162
const GNEHierarchicalContainerParents< GNEJunction * > & getParentJunctions() const
get parent junctions
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
An upper class for objects with additional parameters.
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