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 setting the attribute and letting the object perform additional changes
218  * @param[in] key The attribute key
219  * @param[in] value The new value
220  * @param[in] undoList The undoList on which to register changes
221  */
222  void setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList);
223 
224  /* @brief method for setting the attribute and letting the object perform additional changes
225  * @param[in] key The attribute key
226  * @param[in] value The new value
227  * @param[in] undoList The undoList on which to register changes
228  */
229  bool isValid(SumoXMLAttr key, const std::string& value);
230 
231  /* @brief method for check if the value for certain attribute is set
232  * @param[in] key The attribute key
233  */
234  bool isAttributeEnabled(SumoXMLAttr key) const;
235 
236  /* @brief method for check if the value for certain attribute is computed (for example, due a network recomputing)
237  * @param[in] key The attribute key
238  */
239  bool isAttributeComputed(SumoXMLAttr key) const;
240 
242 
244  const Parameterised::Map& getACParametersMap() const;
245 
247  void setResponsible(bool newVal);
248 
253  void setGeometry(PositionVector geom, bool inner);
254 
256  const Position getFrontUpShapePosition() const;
257 
259  const Position getFrontDownShapePosition() const;
260 
262  const Position getBackUpShapePosition() const;
263 
265  const Position getBackDownShapePosition() const;
266 
268  void remakeGNEConnections(bool junctionsReady = false);
269 
271  void copyTemplate(const GNEEdgeTemplate* edgeTemplate, GNEUndoList* undoList);
272 
274  void copyEdgeType(const GNEEdgeType* edgeType, GNEUndoList* undoList);
275 
277  std::set<GUIGlID> getLaneGlIDs() const;
278 
280  const std::vector<GNELane*>& getLanes() const;
281 
283  const std::vector<GNEConnection*>& getGNEConnections() const;
284 
286  GNEConnection* retrieveGNEConnection(int fromLane, NBEdge* to, int toLane, bool createIfNoExist = true);
287 
289  bool wasSplit();
290 
291  /* @brief compute a splitting position which keeps the resulting edges
292  * straight unless the user clicked near a geometry point */
293  Position getSplitPos(const Position& clickPos);
294 
296  void setEdgeID(const std::string& newID);
297 
299  bool hasRestrictedLane(SUMOVehicleClass vclass) const;
300 
301  // @brief the radius in which to register clicks for geometry nodes
302  static const double SNAP_RADIUS;
303 
304  // @brief the radius in which to register clicks for geometry nodes (Squared)
305  static const double SNAP_RADIUS_SQUARED;
306 
308  void clearGNEConnections();
309 
311  int getRouteProbeRelativePosition(GNERouteProbe* routeProbe) const;
312 
314  std::vector<GNECrossing*> getGNECrossings();
315 
317  void smooth(GNEUndoList* undoList);
318 
320  void straightenElevation(GNEUndoList* undoList);
321 
323  void smoothElevation(GNEUndoList* undoList);
324 
326  PositionVector smoothShape(const PositionVector& shape, bool forElevation);
327 
329  GNELane* getLaneByAllowedVClass(const SUMOVehicleClass vClass) const;
330 
333 
334  // @brief update vehicle spread geometries
336 
337  // @brief update vehicle geometries
339 
340  // @brief update person geometries
342 
343  // @brief update vehicle geometries
345 
347  bool isConvexAngle() const;
348 
350  bool hasPredecessors() const;
351 
353  bool hasSuccessors() const;
354 
356  GNEEdge* getReverseEdge() const;
357 
358 protected:
361 
364 
367 
370 
373 
376 
378  std::string myConnectionStatus;
379 
380 private:
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 
476  const double geometryPointRadius, const double exaggeration) const;
477 
480  const double geometryPointRadius, const double exaggeration) const;
481 
483  void drawEdgeName(const GUIVisualizationSettings& s) const;
484 
487 
490 
493 
496 
498  void drawTAZElements(const GUIVisualizationSettings& s) const;
499 
501  bool drawBigGeometryPoints() const;
502 
504  bool areStackPositionOverlapped(const GNEEdge::StackPosition& vehicleA, const GNEEdge::StackPosition& vehicleB) const;
505 
507  GNEMoveOperation* processMoveFromJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius);
508 
510  GNEMoveOperation* processMoveToJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius);
511 
514 
516  GNEMoveOperation* processNoneJunctionSelected(const double snapRadius);
517 
519  double getGeometryPointRadius() const;
520 
522  GNEEdge(const GNEEdge& s) = delete;
523 
525  GNEEdge& operator=(const GNEEdge& s) = delete;
526 };
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:1750
const std::vector< GNEDemandElement * > & getDemandElements() const
get demand elements
Definition: GNEEdge.cpp:1756
void addDemandElements(GNEDemandElement *demandElement)
add demand elment to current StackDemandElements
Definition: GNEEdge.cpp:1744
StackDemandElements(const StackPosition stackedPosition, GNEDemandElement *demandElement)
constructor
Definition: GNEEdge.cpp:1736
Stack position (used to stack demand elements over edges)
Definition: GNEEdge.h:382
double beginPosition() const
get begin position
Definition: GNEEdge.cpp:1725
StackPosition(const double departPos, const double length)
constructor
Definition: GNEEdge.cpp:1719
double endPosition() const
get end position
Definition: GNEEdge.cpp:1731
A road/street connecting two junctions (netedit-version)
Definition: GNEEdge.h:53
const Position getFrontDownShapePosition() const
get front down shape position
Definition: GNEEdge.cpp:824
Boundary myEdgeBoundary
edge boundary
Definition: GNEEdge.h:413
void updateCenteringBoundary(const bool updateGrid)
update centering boundary (implies change in RTREE)
Definition: GNEEdge.cpp:562
void drawEdgeName(const GUIVisualizationSettings &s) const
draw edge name
Definition: GNEEdge.cpp:2694
void drawStartGeometryPoint(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const double geometryPointRadius, const double exaggeration) const
draw start extreme geometry point
Definition: GNEEdge.cpp:2566
bool isConvexAngle() const
check if edge makes a convex angle [0 - 180) degrees
Definition: GNEEdge.cpp:1669
bool checkDrawRelatedContour() const
check if draw related contour (cyan)
Definition: GNEEdge.cpp:260
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:1984
std::string getNetworkElementProblem() const
return a string with the current network element problem
Definition: GNEEdge.cpp:141
const std::map< const GNELane *, std::vector< GNEDemandElement * > > getPersonsOverEdgeMap() const
get persons a that start over this edge
Definition: GNEEdge.cpp:2451
const std::map< const GNELane *, std::vector< GNEDemandElement * > > getContainersOverEdgeMap() const
get containers a that start over this edge
Definition: GNEEdge.cpp:2484
void commitMoveShape(const GNEMoveResult &moveResult, GNEUndoList *undoList)
commit move shape
Definition: GNEEdge.cpp:1957
bool hasPredecessors() const
check if this edge has predecessors (note: only for vehicles, this function ignore walking areas!...
Definition: GNEEdge.cpp:1684
void setMoveShape(const GNEMoveResult &moveResult)
set move shape
Definition: GNEEdge.cpp:1935
void drawEndGeometryPoint(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const double geometryPointRadius, const double exaggeration) const
draw end extreme geometry point
Definition: GNEEdge.cpp:2630
bool checkDrawMoveContour() const
check if draw move contour (red)
Definition: GNEEdge.cpp:359
bool checkDrawOverContour() const
check if draw over contour (orange)
Definition: GNEEdge.cpp:266
~GNEEdge()
Destructor.
Definition: GNEEdge.cpp:97
void smooth(GNEUndoList *undoList)
make geometry smooth
Definition: GNEEdge.cpp:2345
void updateGeometry()
update pre-computed geometry information
Definition: GNEEdge.cpp:149
double getGeometryPointRadius() const
get geometry point radius
Definition: GNEEdge.cpp:3098
GNEMoveOperation * getMoveOperation()
get move operation
Definition: GNEEdge.cpp:386
std::string getAttributeForSelection(SumoXMLAttr key) const
method for getting the attribute in the context of object selection
Definition: GNEEdge.cpp:1159
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:1440
void copyEdgeType(const GNEEdgeType *edgeType, GNEUndoList *undoList)
copy edge attributes from edgeType
Definition: GNEEdge.cpp:992
NBEdge * getNBEdge() const
returns the internal NBEdge
Definition: GNEEdge.cpp:683
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
Definition: GNEEdge.cpp:609
const std::map< const GNELane *, std::vector< GNEDemandElement * > > getVehiclesOverEdgeMap() const
get vehicles a that start over this edge
Definition: GNEEdge.cpp:2409
std::set< GUIGlID > getLaneGlIDs() const
returns GLIDs of all lanes
Definition: GNEEdge.cpp:1037
GNEEdge * getReverseEdge() const
get reverse edge (if exist)
Definition: GNEEdge.cpp:1706
const Position getFrontUpShapePosition() const
get front up shape position
Definition: GNEEdge.cpp:816
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:781
void smoothElevation(GNEUndoList *undoList)
smooth elevation with regard to adjoining edges
Definition: GNEEdge.cpp:2357
bool clickedOverGeometryPoint(const Position &pos) const
return true if user clicked over a Geometry Point
Definition: GNEEdge.cpp:515
bool clickedOverShapeEnd(const Position &pos) const
return true if user clicked over ShapeEnd
Definition: GNEEdge.cpp:503
void updateVehicleStackLabels()
Definition: GNEEdge.cpp:1507
void drawChildrens(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d) const
draw children
Definition: GNEEdge.cpp:2780
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:1301
void remakeGNEConnections(bool junctionsReady=false)
remake connections
Definition: GNEEdge.cpp:847
GNEMoveOperation * processMoveBothJunctionSelected()
process moving edge when both junctions are selected
Definition: GNEEdge.cpp:3050
void removeGeometryPoint(const Position clickedPosition, GNEUndoList *undoList)
remove geometry point in the clicked position
Definition: GNEEdge.cpp:418
const std::vector< GNELane * > & getLanes() const
returns a reference to the lane vector
Definition: GNEEdge.cpp:1047
LaneVector myLanes
vector with the lanes of this edge
Definition: GNEEdge.h:363
static const double SNAP_RADIUS
Definition: GNEEdge.h:302
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:1446
bool hasCustomEndPoints() const
Definition: GNEEdge.cpp:479
void updatePersonStackLabels()
Definition: GNEEdge.cpp:1565
void setEdgeID(const std::string &newID)
set edge ID
Definition: GNEEdge.cpp:2231
void removeConnection(NBEdge::Connection nbCon)
removes a connection
Definition: GNEEdge.cpp:2175
bool hasSuccessors() const
check if this edge has successors (note: only for vehicles, this function ignore walking areas!...
Definition: GNEEdge.cpp:1700
bool isAttributeComputed(SumoXMLAttr key) const
Definition: GNEEdge.cpp:1417
bool drawBigGeometryPoints() const
check if draw big geometry points
Definition: GNEEdge.cpp:2928
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:2098
bool checkDrawSelectContour() const
check if draw select contour (blue)
Definition: GNEEdge.cpp:328
double getExaggeration(const GUIVisualizationSettings &s) const
return exaggeration associated with this GLObject
Definition: GNEEdge.cpp:550
bool hasRestrictedLane(SUMOVehicleClass vclass) const
check if edge has a restricted lane
Definition: GNEEdge.cpp:2240
static const double SNAP_RADIUS_SQUARED
Definition: GNEEdge.h:305
void updateSecondParentJunction(const std::string &value)
update last parent junction
Definition: GNEEdge.cpp:2036
Position myPositionBeforeMoving
position used for move Lanes
Definition: GNEEdge.h:369
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:624
PositionVector smoothShape(const PositionVector &shape, bool forElevation)
return smoothed shape
Definition: GNEEdge.cpp:2272
bool wasSplit()
whether this edge was created from a split
Definition: GNEEdge.cpp:1059
NBEdge * myNBEdge
the underlying NBEdge
Definition: GNEEdge.h:360
void copyTemplate(const GNEEdgeTemplate *edgeTemplate, GNEUndoList *undoList)
copy edge attributes from edgetemplate
Definition: GNEEdge.cpp:957
void removeEdgeFromCrossings(GNEJunction *junction, GNEUndoList *undoList)
remove crossing of junction
Definition: GNEEdge.cpp:2251
Position getPositionInView() const
Returns position of hierarchical element in view.
Definition: GNEEdge.cpp:195
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:2045
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:2208
ConnectionVector myGNEConnections
vector with the connections of this edge
Definition: GNEEdge.h:366
void calculateEdgeContour(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d) const
calculate contours
Definition: GNEEdge.cpp:2809
void editEndpoint(Position pos, GNEUndoList *undoList)
makes pos the new geometry endpoint at the appropriate end, or remove current existent endpoint
Definition: GNEEdge.cpp:705
void resetBothEndpoint(GNEUndoList *undoList)
restores both endpoint to the junction position at the appropriate end
Definition: GNEEdge.cpp:771
Position getSplitPos(const Position &clickPos)
Definition: GNEEdge.cpp:689
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:2516
const std::vector< GNEConnection * > & getGNEConnections() const
returns a reference to the GNEConnection vector
Definition: GNEEdge.cpp:1053
std::string getAttribute(SumoXMLAttr key) const
Definition: GNEEdge.cpp:1065
int getRouteProbeRelativePosition(GNERouteProbe *routeProbe) const
obtain relative positions of RouteProbes
Definition: GNEEdge.cpp:922
bool checkDrawFromContour() const
check if draw from contour (green)
Definition: GNEEdge.cpp:201
std::string myConnectionStatus
modification status of the connections
Definition: GNEEdge.h:378
bool checkDrawDeleteContour() const
check if draw delete contour (pink/white)
Definition: GNEEdge.cpp:297
void deleteGLObject()
delete element
Definition: GNEEdge.cpp:668
const std::string getOptionalName() const
Returns the street name.
Definition: GNEEdge.cpp:603
void clearGNEConnections()
clear current connections
Definition: GNEEdge.cpp:895
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:840
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:2946
void updateFirstParentJunction(const std::string &value)
update front parent junction
Definition: GNEEdge.cpp:2027
void straightenElevation(GNEUndoList *undoList)
interpolate z values linear between junctions
Definition: GNEEdge.cpp:2262
void updateContainerStackLabels()
Definition: GNEEdge.cpp:1617
void drawEdgeShape(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d) const
draw edge shape (only one line)
Definition: GNEEdge.cpp:2893
bool checkDrawToContour() const
check if draw from contour (magenta)
Definition: GNEEdge.cpp:234
bool clickedOverShapeStart(const Position &pos) const
return true if user clicked over ShapeStart
Definition: GNEEdge.cpp:491
bool isNetworkElementValid() const
check if current network element is valid to be written into XML
Definition: GNEEdge.cpp:131
void setShapeStartPos(const Position &pos)
change Shape StartPos
Definition: GNEEdge.cpp:2387
void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)
Definition: GNEEdge.cpp:1169
const Position getBackUpShapePosition() const
get back up shape position
Definition: GNEEdge.cpp:832
void resetEndpoint(const Position &pos, GNEUndoList *undoList)
restores the endpoint to the junction position at the appropriate end
Definition: GNEEdge.cpp:757
bool isAttributeEnabled(SumoXMLAttr key) const
Definition: GNEEdge.cpp:1402
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
Definition: GNEEdge.cpp:630
void addConnection(NBEdge::Connection nbCon, bool selectAfterCreation=false)
adds a connection
Definition: GNEEdge.cpp:2151
void drawLaneStopOffset(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d) const
draw edgeStopOffset
Definition: GNEEdge.cpp:2757
GNEMoveOperation * processMoveFromJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius)
process moving edge when only from junction is selected
Definition: GNEEdge.cpp:2962
GNEMoveOperation * processNoneJunctionSelected(const double snapRadius)
process moving edge when none junction are selected
Definition: GNEEdge.cpp:3061
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
Definition: GNEEdge.cpp:556
const Parameterised::Map & getACParametersMap() const
get parameters map
Definition: GNEEdge.cpp:1434
void drawTAZElements(const GUIVisualizationSettings &s) const
draw TAZElements
Definition: GNEEdge.cpp:2832
std::vector< GNECrossing * > getGNECrossings()
get GNECrossings vinculated with this Edge
Definition: GNEEdge.cpp:940
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:1461
void updateVehicleSpreadGeometries()
Definition: GNEEdge.cpp:1476
GNEMoveOperation * processMoveToJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius)
process moving edge when only to junction is selected
Definition: GNEEdge.cpp:3006
void updateGLObject()
update GLObject (geometry, ID, etc.)
Definition: GNEEdge.cpp:677
void updateJunctionPosition(GNEJunction *junction, const Position &origPos)
update edge geometry after junction move
Definition: GNEEdge.cpp:536
bool myAmResponsible
whether we are responsible for deleting myNBNode
Definition: GNEEdge.h:372
GNEEdge(GNENet *net, NBEdge *nbe, bool wasSplit=false, bool loaded=false)
Constructor.
Definition: GNEEdge.cpp:69
void setShapeEndPos(const Position &pos)
change Shape EndPos
Definition: GNEEdge.cpp:2398
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