Eclipse SUMO - Simulation of Urban MObility
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-2024 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 // ===========================================================================
35 class GNENet;
36 class GNEJunction;
37 class GNELane;
38 class GNEConnection;
39 class GNERouteProbe;
40 class GNECrossing;
41 class GNEEdgeType;
42 class GNEEdgeTemplate;
43 
44 // ===========================================================================
45 // class definitions
46 // ===========================================================================
54 
56  friend class GNEChange_Lane;
57  friend class GNEChange_Connection;
58 
59 public:
61  typedef std::vector<GNELane*> LaneVector;
62 
64  typedef std::vector<GNEConnection*> ConnectionVector;
65 
71  GNEEdge(GNENet* net, NBEdge* nbe, bool wasSplit = false, bool loaded = false);
72 
74  ~GNEEdge();
75 
77  inline GNEJunction* getFromJunction() const {
78  return getParentJunctions().front();
79  }
80 
82  inline GNEJunction* getToJunction() const {
83  return getParentJunctions().back();
84  }
85 
87  bool isNetworkElementValid() const;
88 
90  std::string getNetworkElementProblem() const;
91 
94 
96  void updateGeometry();
97 
100 
102 
105 
107  bool checkDrawFromContour() const;
108 
110  bool checkDrawToContour() const;
111 
113  bool checkDrawRelatedContour() const;
114 
116  bool checkDrawOverContour() const;
117 
119  bool checkDrawDeleteContour() 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 
250  const Parameterised::Map& getACParametersMap() const;
251 
253  void setResponsible(bool newVal);
254 
259  void setGeometry(PositionVector geom, bool inner);
260 
262  const Position getFrontUpShapePosition() const;
263 
265  const Position getFrontDownShapePosition() const;
266 
268  const Position getBackUpShapePosition() const;
269 
271  const Position getBackDownShapePosition() const;
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<GNELane*>& getLanes() const;
287 
289  const std::vector<GNEConnection*>& getGNEConnections() const;
290 
292  GNEConnection* retrieveGNEConnection(int fromLane, NBEdge* to, int toLane, bool createIfNoExist = true);
293 
295  bool wasSplit();
296 
297  /* @brief compute a splitting position which keeps the resulting edges
298  * straight unless the user clicked near a geometry point */
299  Position getSplitPos(const Position& clickPos);
300 
302  void setEdgeID(const std::string& newID);
303 
305  bool hasRestrictedLane(SUMOVehicleClass vclass) const;
306 
307  // @brief the radius in which to register clicks for geometry nodes
308  static const double SNAP_RADIUS;
309 
310  // @brief the radius in which to register clicks for geometry nodes (Squared)
311  static const double SNAP_RADIUS_SQUARED;
312 
314  void clearGNEConnections();
315 
317  int getRouteProbeRelativePosition(GNERouteProbe* routeProbe) const;
318 
320  std::vector<GNECrossing*> getGNECrossings();
321 
323  void smooth(GNEUndoList* undoList);
324 
326  void straightenElevation(GNEUndoList* undoList);
327 
329  void smoothElevation(GNEUndoList* undoList);
330 
332  PositionVector smoothShape(const PositionVector& shape, bool forElevation);
333 
335  GNELane* getLaneByAllowedVClass(const SUMOVehicleClass vClass) const;
336 
339 
340  // @brief update vehicle spread geometries
342 
343  // @brief update vehicle geometries
345 
346  // @brief update person geometries
348 
349  // @brief update vehicle geometries
351 
353  bool isConvexAngle() const;
354 
356  bool hasPredecessors() const;
357 
359  bool hasSuccessors() const;
360 
362  GNEEdge* getReverseEdge() const;
363 
364 protected:
367 
370 
373 
376 
379 
382 
384  std::string myConnectionStatus;
385 
386 private:
388  class StackPosition : public std::pair<double, double> {
389 
390  public:
392  StackPosition(const double departPos, const double length);
393 
395  double beginPosition() const;
396 
398  double endPosition() const;
399  };
400 
402  class StackDemandElements : public std::pair<StackPosition, std::vector<GNEDemandElement*> > {
403 
404  public:
406  StackDemandElements(const StackPosition stackedPosition, GNEDemandElement* demandElement);
407 
409  void addDemandElements(GNEDemandElement* demandElement);
410 
412  const StackPosition& getStackPosition() const;
413 
415  const std::vector<GNEDemandElement*>& getDemandElements() const;
416  };
417 
420 
423 
425  void setAttribute(SumoXMLAttr key, const std::string& value);
426 
428  void setMoveShape(const GNEMoveResult& moveResult);
429 
431  void commitMoveShape(const GNEMoveResult& moveResult, GNEUndoList* undoList);
432 
439  void setNumLanes(int numLanes, GNEUndoList* undoList);
440 
442  void updateFirstParentJunction(const std::string& value);
443 
445  void updateSecondParentJunction(const std::string& value);
446 
448  void addLane(GNELane* lane, const NBEdge::Lane& laneAttrs, bool recomputeConnections);
449 
451  void removeLane(GNELane* lane, bool recomputeConnections);
452 
454  void addConnection(NBEdge::Connection nbCon, bool selectAfterCreation = false);
455 
458 
460  void removeEdgeFromCrossings(GNEJunction* junction, GNEUndoList* undoList);
461 
463  void setShapeStartPos(const Position& pos);
464 
466  void setShapeEndPos(const Position& pos);
467 
469  const std::map<const GNELane*, std::vector<GNEDemandElement*> > getVehiclesOverEdgeMap() const;
470 
472  const std::map<const GNELane*, std::vector<GNEDemandElement*> > getPersonsOverEdgeMap() const;
473 
475  const std::map<const GNELane*, std::vector<GNEDemandElement*> > getContainersOverEdgeMap() const;
476 
479 
482  const double geometryPointRadius, const double exaggeration) const;
483 
486  const double geometryPointRadius, const double exaggeration) const;
487 
489  void drawEdgeName(const GUIVisualizationSettings& s) const;
490 
493 
496 
498  void drawChildrens(const GUIVisualizationSettings& s) const;
499 
502 
504  void drawTAZElements(const GUIVisualizationSettings& s) const;
505 
507  bool drawBigGeometryPoints() const;
508 
510  bool areStackPositionOverlapped(const GNEEdge::StackPosition& vehicleA, const GNEEdge::StackPosition& vehicleB) const;
511 
513  GNEMoveOperation* processMoveFromJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius);
514 
516  GNEMoveOperation* processMoveToJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius);
517 
520 
522  GNEMoveOperation* processNoneJunctionSelected(const double snapRadius);
523 
525  double getGeometryPointRadius() const;
526 
528  GNEEdge(const GNEEdge& s) = delete;
529 
531  GNEEdge& operator=(const GNEEdge& s) = delete;
532 };
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:402
const StackPosition & getStackPosition() const
get stack position
Definition: GNEEdge.cpp:1814
const std::vector< GNEDemandElement * > & getDemandElements() const
get demand elements
Definition: GNEEdge.cpp:1820
void addDemandElements(GNEDemandElement *demandElement)
add demand elment to current StackDemandElements
Definition: GNEEdge.cpp:1808
StackDemandElements(const StackPosition stackedPosition, GNEDemandElement *demandElement)
constructor
Definition: GNEEdge.cpp:1800
Stack position (used to stack demand elements over edges)
Definition: GNEEdge.h:388
double beginPosition() const
get begin position
Definition: GNEEdge.cpp:1789
StackPosition(const double departPos, const double length)
constructor
Definition: GNEEdge.cpp:1783
double endPosition() const
get end position
Definition: GNEEdge.cpp:1795
A road/street connecting two junctions (netedit-version)
Definition: GNEEdge.h:53
const Position getFrontDownShapePosition() const
get front down shape position
Definition: GNEEdge.cpp:894
Boundary myEdgeBoundary
edge boundary
Definition: GNEEdge.h:419
void updateCenteringBoundary(const bool updateGrid)
update centering boundary (implies change in RTREE)
Definition: GNEEdge.cpp:639
void drawEdgeName(const GUIVisualizationSettings &s) const
draw edge name
Definition: GNEEdge.cpp:2758
void drawStartGeometryPoint(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const double geometryPointRadius, const double exaggeration) const
draw start extreme geometry point
Definition: GNEEdge.cpp:2630
bool isConvexAngle() const
check if edge makes a convex angle [0 - 180) degrees
Definition: GNEEdge.cpp:1733
bool checkDrawRelatedContour() const
check if draw related contour (cyan)
Definition: GNEEdge.cpp:311
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:2048
std::string getNetworkElementProblem() const
return a string with the current network element problem
Definition: GNEEdge.cpp:143
const std::map< const GNELane *, std::vector< GNEDemandElement * > > getPersonsOverEdgeMap() const
get persons a that start over this edge
Definition: GNEEdge.cpp:2515
const std::map< const GNELane *, std::vector< GNEDemandElement * > > getContainersOverEdgeMap() const
get containers a that start over this edge
Definition: GNEEdge.cpp:2548
void commitMoveShape(const GNEMoveResult &moveResult, GNEUndoList *undoList)
commit move shape
Definition: GNEEdge.cpp:2021
bool hasPredecessors() const
check if this edge has predecessors (note: only for vehicles, this function ignore walking areas!...
Definition: GNEEdge.cpp:1748
void setMoveShape(const GNEMoveResult &moveResult)
set move shape
Definition: GNEEdge.cpp:1999
void drawEndGeometryPoint(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const double geometryPointRadius, const double exaggeration) const
draw end extreme geometry point
Definition: GNEEdge.cpp:2694
bool checkDrawMoveContour() const
check if draw move contour (red)
Definition: GNEEdge.cpp:421
bool checkDrawOverContour() const
check if draw over contour (orange)
Definition: GNEEdge.cpp:317
~GNEEdge()
Destructor.
Definition: GNEEdge.cpp:99
void smooth(GNEUndoList *undoList)
make geometry smooth
Definition: GNEEdge.cpp:2409
void updateGeometry()
update pre-computed geometry information
Definition: GNEEdge.cpp:151
double getGeometryPointRadius() const
get geometry point radius
Definition: GNEEdge.cpp:3159
GNEMoveOperation * getMoveOperation()
get move operation
Definition: GNEEdge.cpp:463
std::string getAttributeForSelection(SumoXMLAttr key) const
method for getting the attribute in the context of object selection
Definition: GNEEdge.cpp:1213
GNEJunction * getFromJunction() const
get from Junction (only used to increase readability)
Definition: GNEEdge.h:77
void setResponsible(bool newVal)
set responsibility for deleting internal structures
Definition: GNEEdge.cpp:1504
void copyEdgeType(const GNEEdgeType *edgeType, GNEUndoList *undoList)
copy edge attributes from edgeType
Definition: GNEEdge.cpp:1050
NBEdge * getNBEdge() const
returns the internal NBEdge
Definition: GNEEdge.cpp:753
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
Definition: GNEEdge.cpp:686
const std::map< const GNELane *, std::vector< GNEDemandElement * > > getVehiclesOverEdgeMap() const
get vehicles a that start over this edge
Definition: GNEEdge.cpp:2473
std::set< GUIGlID > getLaneGlIDs() const
returns GLIDs of all lanes
Definition: GNEEdge.cpp:1080
GNEEdge * getReverseEdge() const
get reverse edge (if exist)
Definition: GNEEdge.cpp:1770
const Position getFrontUpShapePosition() const
get front up shape position
Definition: GNEEdge.cpp:886
std::vector< GNEConnection * > ConnectionVector
Definition of the connection's vector.
Definition: GNEEdge.h:64
void setGeometry(PositionVector geom, bool inner)
update edge geometry and inform the lanes
Definition: GNEEdge.cpp:851
void smoothElevation(GNEUndoList *undoList)
smooth elevation with regard to adjoining edges
Definition: GNEEdge.cpp:2421
bool clickedOverGeometryPoint(const Position &pos) const
return true if user clicked over a Geometry Point
Definition: GNEEdge.cpp:592
bool clickedOverShapeEnd(const Position &pos) const
return true if user clicked over ShapeEnd
Definition: GNEEdge.cpp:580
void updateVehicleStackLabels()
Definition: GNEEdge.cpp:1571
GNEEdge & operator=(const GNEEdge &s)=delete
invalidated assignment operator
GNEJunction * getToJunction() const
get from Junction (only used to increase readability)
Definition: GNEEdge.h:82
bool isValid(SumoXMLAttr key, const std::string &value)
Definition: GNEEdge.cpp:1361
void remakeGNEConnections(bool junctionsReady=false)
remake connections
Definition: GNEEdge.cpp:917
GNEMoveOperation * processMoveBothJunctionSelected()
process moving edge when both junctions are selected
Definition: GNEEdge.cpp:3111
void removeGeometryPoint(const Position clickedPosition, GNEUndoList *undoList)
remove geometry point in the clicked position
Definition: GNEEdge.cpp:495
const std::vector< GNELane * > & getLanes() const
returns a reference to the lane vector
Definition: GNEEdge.cpp:1090
LaneVector myLanes
vector with the lanes of this edge
Definition: GNEEdge.h:369
static const double SNAP_RADIUS
Definition: GNEEdge.h:308
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:1510
bool hasCustomEndPoints() const
Definition: GNEEdge.cpp:556
void updatePersonStackLabels()
Definition: GNEEdge.cpp:1629
void setEdgeID(const std::string &newID)
set edge ID
Definition: GNEEdge.cpp:2295
void removeConnection(NBEdge::Connection nbCon)
removes a connection
Definition: GNEEdge.cpp:2239
void drawChildrens(const GUIVisualizationSettings &s) const
draw children
Definition: GNEEdge.cpp:2844
bool hasSuccessors() const
check if this edge has successors (note: only for vehicles, this function ignore walking areas!...
Definition: GNEEdge.cpp:1764
bool isAttributeComputed(SumoXMLAttr key) const
Definition: GNEEdge.cpp:1481
bool drawBigGeometryPoints() const
check if draw big geometry points
Definition: GNEEdge.cpp:2989
bool myWasSplit
whether this edge was created from a split
Definition: GNEEdge.h:381
void removeLane(GNELane *lane, bool recomputeConnections)
@briefdecrease the number of lanes by one. argument is only used to increase robustness (assertions)
Definition: GNEEdge.cpp:2162
bool checkDrawSelectContour() const
check if draw select contour (blue)
Definition: GNEEdge.cpp:390
double getExaggeration(const GUIVisualizationSettings &s) const
return exaggeration associated with this GLObject
Definition: GNEEdge.cpp:627
bool hasRestrictedLane(SUMOVehicleClass vclass) const
check if edge has a restricted lane
Definition: GNEEdge.cpp:2304
static const double SNAP_RADIUS_SQUARED
Definition: GNEEdge.h:311
void updateSecondParentJunction(const std::string &value)
update last parent junction
Definition: GNEEdge.cpp:2100
Position myPositionBeforeMoving
position used for move Lanes
Definition: GNEEdge.h:375
std::vector< GNELane * > LaneVector
Definition of the lane's vector.
Definition: GNEEdge.h:61
std::vector< GNEEdge * > getOppositeEdges() const
get opposite edges
Definition: GNEEdge.cpp:694
PositionVector smoothShape(const PositionVector &shape, bool forElevation)
return smoothed shape
Definition: GNEEdge.cpp:2336
bool wasSplit()
whether this edge was created from a split
Definition: GNEEdge.cpp:1102
NBEdge * myNBEdge
the underlying NBEdge
Definition: GNEEdge.h:366
void copyTemplate(const GNEEdgeTemplate *edgeTemplate, GNEUndoList *undoList)
copy edge attributes from edgetemplate
Definition: GNEEdge.cpp:1027
void removeEdgeFromCrossings(GNEJunction *junction, GNEUndoList *undoList)
remove crossing of junction
Definition: GNEEdge.cpp:2315
Position getPositionInView() const
Returns position of hierarchical element in view.
Definition: GNEEdge.cpp:197
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:2109
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:2272
ConnectionVector myGNEConnections
vector with the connections of this edge
Definition: GNEEdge.h:372
void calculateEdgeContour(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d) const
calculate contours
Definition: GNEEdge.cpp:2870
void editEndpoint(Position pos, GNEUndoList *undoList)
makes pos the new geometry endpoint at the appropriate end, or remove current existent endpoint
Definition: GNEEdge.cpp:775
void resetBothEndpoint(GNEUndoList *undoList)
restores both endpoint to the junction position at the appropriate end
Definition: GNEEdge.cpp:841
Position getSplitPos(const Position &clickPos)
Definition: GNEEdge.cpp:759
void drawEdgeGeometryPoints(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d) const
draw edge geometry points (note: This function is called by GNELane::drawGL(...)
Definition: GNEEdge.cpp:2580
const std::vector< GNEConnection * > & getGNEConnections() const
returns a reference to the GNEConnection vector
Definition: GNEEdge.cpp:1096
std::string getAttribute(SumoXMLAttr key) const
Definition: GNEEdge.cpp:1108
int getRouteProbeRelativePosition(GNERouteProbe *routeProbe) const
obtain relative positions of RouteProbes
Definition: GNEEdge.cpp:992
bool checkDrawFromContour() const
check if draw from contour (green)
Definition: GNEEdge.cpp:203
std::string myConnectionStatus
modification status of the connections
Definition: GNEEdge.h:384
bool checkDrawDeleteContour() const
check if draw delete contour (pink/white)
Definition: GNEEdge.cpp:359
void deleteGLObject()
delete element
Definition: GNEEdge.cpp:738
const std::string getOptionalName() const
Returns the street name.
Definition: GNEEdge.cpp:680
void clearGNEConnections()
clear current connections
Definition: GNEEdge.cpp:965
bool myUpdateGeometry
flag to enable/disable update geometry of lanes (used mainly by setNumLanes)
Definition: GNEEdge.h:422
const Position getBackDownShapePosition() const
get back down shape position
Definition: GNEEdge.cpp:910
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:3007
void updateFirstParentJunction(const std::string &value)
update front parent junction
Definition: GNEEdge.cpp:2091
void straightenElevation(GNEUndoList *undoList)
interpolate z values linear between junctions
Definition: GNEEdge.cpp:2326
void updateContainerStackLabels()
Definition: GNEEdge.cpp:1681
void drawEdgeShape(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d) const
draw edge shape (only one line)
Definition: GNEEdge.cpp:2954
bool checkDrawToContour() const
check if draw from contour (magenta)
Definition: GNEEdge.cpp:257
bool clickedOverShapeStart(const Position &pos) const
return true if user clicked over ShapeStart
Definition: GNEEdge.cpp:568
bool isNetworkElementValid() const
check if current network element is valid to be written into XML
Definition: GNEEdge.cpp:133
void setShapeStartPos(const Position &pos)
change Shape StartPos
Definition: GNEEdge.cpp:2451
void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)
Definition: GNEEdge.cpp:1223
const Position getBackUpShapePosition() const
get back up shape position
Definition: GNEEdge.cpp:902
void resetEndpoint(const Position &pos, GNEUndoList *undoList)
restores the endpoint to the junction position at the appropriate end
Definition: GNEEdge.cpp:827
bool isAttributeEnabled(SumoXMLAttr key) const
Definition: GNEEdge.cpp:1466
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
Definition: GNEEdge.cpp:700
void addConnection(NBEdge::Connection nbCon, bool selectAfterCreation=false)
adds a connection
Definition: GNEEdge.cpp:2215
void drawLaneStopOffset(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d) const
draw edgeStopOffset
Definition: GNEEdge.cpp:2821
GNEMoveOperation * processMoveFromJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius)
process moving edge when only from junction is selected
Definition: GNEEdge.cpp:3023
GNEMoveOperation * processNoneJunctionSelected(const double snapRadius)
process moving edge when none junction are selected
Definition: GNEEdge.cpp:3122
PositionVector getAttributePositionVector(SumoXMLAttr key) const
Definition: GNEEdge.cpp:1202
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
Definition: GNEEdge.cpp:633
const Parameterised::Map & getACParametersMap() const
get parameters map
Definition: GNEEdge.cpp:1498
void drawTAZElements(const GUIVisualizationSettings &s) const
draw TAZElements
Definition: GNEEdge.cpp:2893
std::vector< GNECrossing * > getGNECrossings()
get GNECrossings vinculated with this Edge
Definition: GNEEdge.cpp:1010
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:1525
void updateVehicleSpreadGeometries()
Definition: GNEEdge.cpp:1540
GNEMoveOperation * processMoveToJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius)
process moving edge when only to junction is selected
Definition: GNEEdge.cpp:3067
void updateGLObject()
update GLObject (geometry, ID, etc.)
Definition: GNEEdge.cpp:747
void updateJunctionPosition(GNEJunction *junction, const Position &origPos)
update edge geometry after junction move
Definition: GNEEdge.cpp:613
bool myAmResponsible
whether we are responsible for deleting myNBNode
Definition: GNEEdge.h:378
GNEEdge(GNENet *net, NBEdge *nbe, bool wasSplit=false, bool loaded=false)
Constructor.
Definition: GNEEdge.cpp:71
void setShapeEndPos(const Position &pos)
change Shape EndPos
Definition: GNEEdge.cpp:2462
const std::vector< 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
Representation of a RouteProbe in netedit.
Definition: GNERouteProbe.h:32
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
Definition: Parameterised.h:45
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