SUMO - Simulation of Urban MObility
GNEViewNet.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2018 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
15 // A view on the network being edited (adapted from GUIViewTraffic)
16 /****************************************************************************/
17 #ifndef GNEViewNet_h
18 #define GNEViewNet_h
19 
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 #include <config.h>
25 
26 #include <string>
28 #include <utils/geom/Boundary.h>
29 #include <utils/geom/Position.h>
30 #include <utils/common/RGBColor.h>
36 
37 
38 // ===========================================================================
39 // enum
40 // ===========================================================================
41 
42 enum EditMode {
67 };
68 
69 // ===========================================================================
70 // class declarations
71 // ===========================================================================
72 
73 class GNENet;
74 class GNENetElement;
75 class GNEJunction;
76 class GNEEdge;
77 class GNELane;
78 class GNEConnection;
79 class GNEViewParent;
80 class GNEUndoList;
81 class GNEAdditional;
82 class GNEShape;
83 class GNEPoly;
84 class GNEPOI;
85 class GNEFrame;
86 class GNENetElement;
87 class GNECrossing;
89 
90 // ===========================================================================
91 // class definitions
92 // ===========================================================================
99  FXDECLARE(GNEViewNet)
100 
101 public:
102  /* @brief constructor
103  * @param[in] tmpParent temporal FXFrame parent so that we can add items to view area in the desired order
104  * @param[in] actualParent FXFrame parent of GNEViewNet
105  * @param[in] app main windows
106  * @param[in] viewParent viewParent of this viewNet
107  * @param[in] net traffic net
108  * @param[in] undoList pointer to UndoList modul
109  * @param[in] glVis a reference to GLVisuals
110  * @param[in] share a reference to FXCanvas
111  * @param[in] toolbar A reference to the parents toolbar
112  */
113  GNEViewNet(FXComposite* tmpParent, FXComposite* actualParent, GUIMainWindow& app,
114  GNEViewParent* viewParent, GNENet* net, GNEUndoList* undoList,
115  FXGLVisual* glVis, FXGLCanvas* share, FXToolBar* toolBar);
116 
118  virtual ~GNEViewNet();
119 
121  virtual void buildViewToolBars(GUIGlChildWindow&);
122 
128 
130  bool setColorScheme(const std::string& name);
131 
133  void buildColorRainbow(GUIColorScheme& scheme, int active, GUIGlObjectType objectType);
134 
138  long onLeftBtnPress(FXObject*, FXSelector, void*);
139 
141  long onLeftBtnRelease(FXObject*, FXSelector, void*);
142 
144  long onRightBtnPress(FXObject*, FXSelector, void*);
145 
147  long onRightBtnRelease(FXObject*, FXSelector, void*);
148 
150  long onMouseMove(FXObject*, FXSelector, void*);
151 
153  long onKeyPress(FXObject* o, FXSelector sel, void* data);
154 
156  long onKeyRelease(FXObject* o, FXSelector sel, void* data);
158 
162  long onCmdSetModeCreateEdge(FXObject*, FXSelector, void*);
163 
165  long onCmdSetModeMove(FXObject*, FXSelector, void*);
166 
168  long onCmdSetModeDelete(FXObject*, FXSelector, void*);
169 
171  long onCmdSetModeInspect(FXObject*, FXSelector, void*);
172 
174  long onCmdSetModeSelect(FXObject*, FXSelector, void*);
175 
177  long onCmdSetModeConnect(FXObject*, FXSelector, void*);
178 
180  long onCmdSetModeTLS(FXObject*, FXSelector, void*);
181 
183  long onCmdSetModeAdditional(FXObject*, FXSelector, void*);
184 
186  long onCmdSetModeCrossing(FXObject*, FXSelector, void*);
187 
189  long onCmdSetModePolygon(FXObject*, FXSelector, void*);
190 
192  long onCmdSetModeProhibition(FXObject*, FXSelector, void*);
193 
195 
197  long onCmdSplitEdge(FXObject*, FXSelector, void*);
198 
200  long onCmdSplitEdgeBidi(FXObject*, FXSelector, void*);
201 
203  long onCmdReverseEdge(FXObject*, FXSelector, void*);
204 
206  long onCmdAddReversedEdge(FXObject*, FXSelector, void*);
207 
209  long onCmdEditEdgeEndpoint(FXObject*, FXSelector, void*);
210 
212  long onCmdResetEdgeEndpoint(FXObject*, FXSelector, void*);
213 
215  long onCmdStraightenEdges(FXObject*, FXSelector, void*);
216 
218  long onCmdSmoothEdges(FXObject*, FXSelector, void*);
219 
221  long onCmdStraightenEdgesElevation(FXObject*, FXSelector, void*);
222 
224  long onCmdSmoothEdgesElevation(FXObject*, FXSelector, void*);
225 
227  long onCmdSimplifyShape(FXObject*, FXSelector, void*);
228 
230  long onCmdDeleteGeometryPoint(FXObject*, FXSelector, void*);
231 
233  long onCmdClosePolygon(FXObject*, FXSelector, void*);
234 
236  long onCmdOpenPolygon(FXObject*, FXSelector, void*);
237 
239  long onCmdSetFirstGeometryPoint(FXObject*, FXSelector, void*);
240 
242  long onCmdTransformPOI(FXObject*, FXSelector, void*);
243 
245  long onCmdDuplicateLane(FXObject*, FXSelector, void*);
246 
248  long onCmdResetLaneCustomShape(FXObject*, FXSelector, void*);
249 
251  long onCmdRestrictLaneSidewalk(FXObject*, FXSelector, void*);
252 
254  long onCmdRestrictLaneBikelane(FXObject*, FXSelector, void*);
255 
257  long onCmdRestrictLaneBuslane(FXObject*, FXSelector, void*);
258 
260  long onCmdRestrictLaneGreenVerge(FXObject*, FXSelector, void*);
261 
263  long onCmdAddRestrictedLaneSidewalk(FXObject*, FXSelector, void*);
264 
266  long onCmdAddRestrictedLaneBikelane(FXObject*, FXSelector, void*);
267 
269  long onCmdAddRestrictedLaneBuslane(FXObject*, FXSelector, void*);
270 
272  long onCmdAddRestrictedLaneGreenVerge(FXObject*, FXSelector, void*);
273 
275  long onCmdRemoveRestrictedLaneSidewalk(FXObject*, FXSelector, void*);
276 
278  long onCmdRemoveRestrictedLaneBikelane(FXObject*, FXSelector, void*);
279 
281  long onCmdRemoveRestrictedLaneBuslane(FXObject*, FXSelector, void*);
282 
284  long onCmdRemoveRestrictedLaneGreenVerge(FXObject*, FXSelector, void*);
285 
287  long onCmdOpenAdditionalDialog(FXObject*, FXSelector, void*);
288 
290  long onCmdEditJunctionShape(FXObject*, FXSelector, void*);
291 
293  long onCmdResetJunctionShape(FXObject*, FXSelector, void*);
294 
296  long onCmdReplaceJunction(FXObject*, FXSelector, void*);
297 
299  long onCmdSplitJunction(FXObject*, FXSelector, void*);
300 
302  long onCmdClearConnections(FXObject*, FXSelector, void*);
303 
305  long onCmdResetConnections(FXObject*, FXSelector, void*);
306 
308  long onCmdEditConnectionShape(FXObject*, FXSelector, void*);
309 
311  long onCmdEditCrossingShape(FXObject*, FXSelector, void*);
312 
314  long onCmdToogleShowConnection(FXObject*, FXSelector, void*);
315 
317  long onCmdToogleSelectEdges(FXObject*, FXSelector, void*);
318 
320  long onCmdToogleShowBubbles(FXObject*, FXSelector, void*);
321 
323  long onCmdAddSelected(FXObject*, FXSelector, void*);
324 
326  long onCmdRemoveSelected(FXObject*, FXSelector, void*);
327 
329  long onCmdShowGrid(FXObject*, FXSelector, void*);
330 
334  void setEditModeFromHotkey(FXushort selid);
335 
337  void abortOperation(bool clearSelection = true);
338 
340  void hotkeyDel();
341 
343  void hotkeyEnter();
344 
346  void hotkeyFocusFrame();
347 
349  GNEViewParent* getViewParent() const;
350 
352  GNENet* getNet() const;
353 
355  GNEUndoList* getUndoList() const;
356 
359 
361  FXMenuCheck* getMenuCheckShowGrid() const;
362 
364  const GNEAttributeCarrier* getACUnderCursor() const;
365 
367  void setACUnderCursor(const GNEAttributeCarrier* AC);
368 
370  bool showLockIcon() const;
371 
373  void setStatusBarText(const std::string& text);
374 
376  bool selectEdges();
377 
379  bool showConnections();
380 
382  bool autoSelectNodes();
383 
385  void setSelectionScaling(double selectionScale);
386 
388  void updateControls();
389 
391  bool changeAllPhases() const;
392 
394  bool showJunctionAsBubbles() const;
395 
397  void startEditCustomShape(GNENetElement* element, const PositionVector& shape, bool fill);
398 
400  void stopEditCustomShape();
401 
403  void beginMoveSelection(GNEAttributeCarrier* originAC, const Position& originPosition);
404 
406  void moveSelection(const Position& offset);
407 
409  void finishMoveSelection();
410 
411 protected:
414 
416  int doPaintGL(int mode, const Boundary& bound);
417 
419  void doInit();
420 
421 private:
423  struct MovedItems {
426  junctionToMove(nullptr),
427  edgeToMove(nullptr),
428  polyToMove(nullptr),
429  poiToMove(nullptr),
430  additionalToMove(nullptr) {}
431 
434 
437 
440 
443 
446  };
447 
452  movingStartPos(false),
453  movingEndPos(false),
454  movingIndexShape(-1) {}
455 
458 
461 
465 
469 
472  };
473 
476  public:
479  eventInfo(nullptr),
480  glID(0),
481  glType(GLO_NETWORK),
482  attributeCarrier(nullptr),
483  netElement(nullptr),
484  additional(nullptr),
485  shape(nullptr),
486  junction(nullptr),
487  edge(nullptr),
488  lane(nullptr),
489  crossing(nullptr),
490  connection(nullptr),
491  poi(nullptr),
492  poly(nullptr) {}
493 
495  void updateObjectUnderCursor(GUIGlID glIDObject, GNEPoly* editedPolyShape, FXEvent* ev);
496 
498  void swapLane2Edge();
499 
501  bool shiftKeyPressed() const;
502 
504  bool controlKeyPressed() const;
505 
507  FXEvent* eventInfo;
508 
511 
514 
517 
520 
523 
526 
529 
532 
535 
538 
541 
544 
547  };
548 
551  struct SelectingArea {
554  selectingUsingRectangle(false) {}
555 
557  void processSelection(GNEViewNet* viewNet, bool shiftKeyPressed);
558 
561 
564 
567 
569  std::string reportDimensions();
570  };
571 
573  struct testingMode {
576  testingEnabled(OptionsCont::getOptions().getBool("gui-testing")),
577  testingWidth(0),
578  testingHeight(0) {}
579 
582 
585 
588  };
589 
592 
595 
598 
601 
604 
607 
610 
613 
616 
618  FXMenuCheck* myMenuCheckShowGrid;
619 
622 
625 
628 
630  // @{
633 
635  FXMenuCheck* myChainCreateEdge;
637  // @}
638 
640  // @{
643 
646 
649  // @}
650 
653 
656 
659 
662 
665 
668 
670 
671  std::map<GNEJunction*, Position> myOriginPositionOfMovedJunctions;
672 
674  std::map<GNEEdge*, PositionVector> myOriginShapesMovedEntireShapes;
675 
676  struct MovingEdges {
678  int index;
680  };
681 
682  std::map<GNEEdge*, MovingEdges> myOriginShapesMovedPartialShapes;
683  // @}
684 
686  FXToolBar* myToolbar;
687 
692 
695 
698 
701 
704 
707 
710 
713 
716 
719 
722 
724 
729 
733 
736 
739 
744 
748 
750  void setEditMode(EditMode mode);
751 
753  void buildEditModeControls();
754 
757 
760 
762  void deleteSelectedLanes();
763 
765  void deleteSelectedEdges();
766 
769 
772 
775 
777  void deleteSelectedShapes();
778 
780  bool mergeJunctions(GNEJunction* moved, const Position& oldPos);
781 
784 
787 
790 
793 
796 
798  std::set<GNEEdge*> getEdgesAtPopupPosition();
799 
802 
805 
808 
810  bool restrictLane(SUMOVehicleClass vclass);
811 
813  bool addRestrictedLane(SUMOVehicleClass vclass);
814 
817 
819  void processClick(FXEvent* e, void* data);
820 
822  GNEViewNet(const GNEViewNet&) = delete;
823 
825  GNEViewNet& operator=(const GNEViewNet&) = delete;
826 };
827 
828 
829 #endif
830 
831 /****************************************************************************/
void startEditCustomShape(GNENetElement *element, const PositionVector &shape, bool fill)
start edit custom shape
Definition: GNEViewNet.cpp:381
void buildColorRainbow(GUIColorScheme &scheme, int active, GUIGlObjectType objectType)
recalibrate color scheme according to the current value range
Definition: GNEViewNet.cpp:290
long onCmdResetEdgeEndpoint(FXObject *, FXSelector, void *)
change geometry endpoint
GNEViewParent * myViewParent
view parent
Definition: GNEViewNet.h:591
FXMenuCheck * getMenuCheckShowGrid() const
get grid button
testingMode myTestingMode
variable used to save variables related with testing mode
Definition: GNEViewNet.h:664
long onCmdRemoveRestrictedLaneGreenVerge(FXObject *, FXSelector, void *)
remove restricted lane for all vehicles
GNEPoly * polyToMove
the poly of which geometry is being moved
Definition: GNEViewNet.h:439
long onCmdResetJunctionShape(FXObject *, FXSelector, void *)
reset junction shape
GNEEdge * edgeToMove
the edge of which geometry is being moved
Definition: GNEViewNet.h:436
const GNEAttributeCarrier * getACUnderCursor() const
get AttributeCarrier under cursor
bool selectEdges()
whether inspection, selection and inversion should apply to edges or to lanes
Definition: GNEViewNet.cpp:337
GNEViewNet & operator=(const GNEViewNet &)=delete
Invalidated assignment operator.
MovedItems()
constructor
Definition: GNEViewNet.h:425
long onCmdAddRestrictedLaneSidewalk(FXObject *, FXSelector, void *)
Add restricted lane for pedestrians.
long onCmdAddRestrictedLaneBikelane(FXObject *, FXSelector, void *)
Add restricted lane for bikes.
GNEAdditional * additional
additional element
Definition: GNEViewNet.h:522
void abortOperation(bool clearSelection=true)
abort current edition operation
void deleteSelectedJunctions()
delete all currently selected junctions
bool setColorScheme(const std::string &name)
set color scheme
Definition: GNEViewNet.cpp:274
long onCmdSetModeAdditional(FXObject *, FXSelector, void *)
called when user press the button for additional mode
mode for moving things
Definition: GNEViewNet.h:48
bool restrictLane(SUMOVehicleClass vclass)
restrict lane
GUIGlObjectType
long onCmdDuplicateLane(FXObject *, FXSelector, void *)
duplicate selected lane
long onRightBtnPress(FXObject *, FXSelector, void *)
called when user press mouse&#39;s right button
Definition: GNEViewNet.cpp:996
bool myShowConnections
whether show connections has been activated once
Definition: GNEViewNet.h:621
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types...
StringBijection< EditMode > myEditModeNames
since we cannot switch on strings we map the mode names to an enum
Definition: GNEViewNet.h:728
long onMouseMove(FXObject *, FXSelector, void *)
called when user moves mouse
Mode for editing connection prohibits.
Definition: GNEViewNet.h:66
GNEViewNet()
FOX needs this.
Definition: GNEViewNet.h:413
MovedItems myMovedItems
variable use to save pointers to moved elements
Definition: GNEViewNet.h:655
void beginMoveSelection(GNEAttributeCarrier *originAC, const Position &originPosition)
begin move selection
Definition: GNEViewNet.cpp:411
long onCmdAddSelected(FXObject *, FXSelector, void *)
select AC under cursor
bool mySelectEdges
flag to check if select edges is enabled
Definition: GNEViewNet.h:624
long onCmdSetModeSelect(FXObject *, FXSelector, void *)
called when user press the button for select mode
GUIGlObjectType glType
GUI GL object type.
Definition: GNEViewNet.h:513
std::map< GNEEdge *, MovingEdges > myOriginShapesMovedPartialShapes
Definition: GNEViewNet.h:682
void hotkeyFocusFrame()
handle focus frame keypress
const GNEAttributeCarrier * myACUnderCursor
current AttributeCarrier under Mouse position
Definition: GNEViewNet.h:738
FXMenuCheck * myMenuCheckShowGrid
show grid button
Definition: GNEViewNet.h:618
void stopEditCustomShape()
edit edit shape
Definition: GNEViewNet.cpp:397
Position movingReference
variable for calculating moving offset (Used when user doesn&#39;t click exactly over the center of shape...
Definition: GNEViewNet.h:457
FXMenuCheck * myChainCreateEdge
whether the endpoint for a created edge should be set as the new source
Definition: GNEViewNet.h:635
mode for deleting things
Definition: GNEViewNet.h:50
Definition: GNEPOI.h:44
std::set< GNEEdge * > getEdgesAtPopupPosition()
try to retrieve multiple edges at popup position
long onCmdSplitEdge(FXObject *, FXSelector, void *)
split edge at cursor position
GNEShape * shape
shape element (Poly and POIs)
Definition: GNEViewNet.h:525
long onCmdToogleSelectEdges(FXObject *, FXSelector, void *)
toogle selet edges
long onCmdAddRestrictedLaneBuslane(FXObject *, FXSelector, void *)
Add restricted lane for buses.
GNEViewParent * getViewParent() const
get the net object
MoveSingleElementValues myMoveSingleElementValues
variable used to save variables related with movement of single elements
Definition: GNEViewNet.h:658
bool myShiftKeyPressed
flag to check if shift key is pressed (can be changed after Key Press/Released and mouse Move) ...
Definition: GNEViewNet.h:627
Position selectionCorner1
firstcorner of the rectangle-selection
Definition: GNEViewNet.h:563
void setEditMode(EditMode mode)
set edit mode
MFXCheckableButton * myEditModeSelect
chekable button for edit mode select
Definition: GNEViewNet.h:703
long onCmdOpenPolygon(FXObject *, FXSelector, void *)
open closed polygon
GNEConnection * connection
connection
Definition: GNEViewNet.h:540
mode for editing tls
Definition: GNEViewNet.h:58
bool movingStartPos
bool to indicate that startPos are being moved
Definition: GNEViewNet.h:467
GNEAdditional * getAdditionalAtPopupPosition()
try to retrieve a additional at popup position
ObjectsUnderCursor myObjectsUnderCursor
variable use to save all pointers to objects under cursor after a click
Definition: GNEViewNet.h:652
long onCmdAddRestrictedLaneGreenVerge(FXObject *, FXSelector, void *)
Add restricted lane for all vehicles.
MFXCheckableButton * myEditModeMove
chekable button for edit mode move
Definition: GNEViewNet.h:694
int movingIndexShape
current index of shape that are being moved
Definition: GNEViewNet.h:471
MFXCheckableButton * myEditModeDelete
chekable button for edit mode delete
Definition: GNEViewNet.h:697
A NBNetBuilder extended by visualisation and editing capabilities.
Definition: GNENet.h:80
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
Definition: GNELane.h:47
PositionVector movingOriginalShape
Shape of elements before moving (needed for commmit shape changes)
Definition: GNEViewNet.h:463
long onCmdStraightenEdgesElevation(FXObject *, FXSelector, void *)
interpolate z values linear between junctions
void setEditModeFromHotkey(FXushort selid)
sets edit mode (from hotkey)
long onKeyPress(FXObject *o, FXSelector sel, void *data)
called when user press a key
long onCmdRemoveRestrictedLaneBikelane(FXObject *, FXSelector, void *)
remove restricted lane for bikes
long onCmdRestrictLaneGreenVerge(FXObject *, FXSelector, void *)
restrict lane to all vehicles
long onCmdEditConnectionShape(FXObject *, FXSelector, void *)
edit connection shape
ObjectsUnderCursor()
constructor
Definition: GNEViewNet.h:478
MFXCheckableButton * myEditModeProhibition
checkable button for edit mode polygon
Definition: GNEViewNet.h:721
void moveSelection(const Position &offset)
move selection
Definition: GNEViewNet.cpp:482
PositionVector originalShape
Definition: GNEViewNet.h:677
long onCmdRemoveSelected(FXObject *, FXSelector, void *)
unselect AC under cursor
long onCmdResetConnections(FXObject *, FXSelector, void *)
reset junction connections
void updateControls()
update control contents after undo/redo or recompute
EditMode myPreviousEditMode
the previous edit mode before edit junction&#39;s shapes
Definition: GNEViewNet.h:746
std::map< GNEJunction *, Position > myOriginPositionOfMovedJunctions
Selected Junctions that are being moved.
Definition: GNEViewNet.h:671
FXEvent * eventInfo
information of event of onLeftBtnPress
Definition: GNEViewNet.h:507
FXMenuCheck * myMenuCheckChangeAllPhases
menu check to set change all phases
Definition: GNEViewNet.h:615
void deleteSelectedShapes()
delete all currently selected shapes
GNEAdditional * additionalToMove
the stoppingPlace element which shape is being moved
Definition: GNEViewNet.h:445
A class that stores a 2D geometrical boundary.
Definition: Boundary.h:42
A single child window which contains a view of the simulation area.
Definition: GNEViewParent.h:70
bool mergeJunctions(GNEJunction *moved, const Position &oldPos)
try to merge moved junction with another junction in that spot return true if merging did take place ...
int testingWidth
Width of viewNet in testing mode.
Definition: GNEViewNet.h:584
bool testingEnabled
flag to enable or disable testing mode
Definition: GNEViewNet.h:581
FXMenuCheck * myMenuCheckHideConnections
menu check to hide connections in connect mode
Definition: GNEViewNet.h:609
bool changeAllPhases() const
change all phases
Definition: GNEViewNet.cpp:369
long onCmdSetModeCrossing(FXObject *, FXSelector, void *)
called when user press the button for crossing mode
SelectingArea mySelectingArea
variable used to save variables related with selecting areas
Definition: GNEViewNet.h:661
void buildEditModeControls()
adds controls for setting the edit mode
FXMenuCheck * myMenuCheckMoveElevation
apply movement to elevation
Definition: GNEViewNet.h:648
GNEUndoList * getUndoList() const
get the undoList object
long onLeftBtnPress(FXObject *, FXSelector, void *)
Definition: GNEViewNet.cpp:644
long onRightBtnRelease(FXObject *, FXSelector, void *)
called when user releases mouse&#39;s right button
long onCmdSimplifyShape(FXObject *, FXSelector, void *)
simply shape of current polygon
bool showLockIcon() const
check if lock icon should be visible
void deleteSelectedConnections()
delete all currently selected connections
mode for inspecting object attributes
Definition: GNEViewNet.h:52
FXMenuCheck * myMenuCheckShowConnections
menu check to show connections
Definition: GNEViewNet.h:606
void deleteSelectedCrossings()
delete all currently selected crossings
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
Definition: GNECrossing.h:45
virtual ~GNEViewNet()
destructor
Definition: GNEViewNet.cpp:210
GNEEdge * getEdgeAtPopupPosition()
try to retrieve an edge at popup position
long onCmdRemoveRestrictedLaneSidewalk(FXObject *, FXSelector, void *)
remove restricted lane for pedestrians
int testingHeight
Height of viewNet in testing mode.
Definition: GNEViewNet.h:587
long onCmdSetModeMove(FXObject *, FXSelector, void *)
called when user press the button for move mode
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:39
GNEPOI * getPOIAtPopupPosition()
try to retrieve a POILane at popup position
A list of positions.
long onCmdReplaceJunction(FXObject *, FXSelector, void *)
replace node by geometry
long onCmdClearConnections(FXObject *, FXSelector, void *)
clear junction connections
FXMenuCheck * myMenuCheckSelectEdges
menu check to select only edges
Definition: GNEViewNet.h:603
long onCmdRestrictLaneBuslane(FXObject *, FXSelector, void *)
restrict lane to buslanes
FXToolBar * myToolbar
a reference to the toolbar in myParent
Definition: GNEViewNet.h:686
SelectingArea()
default constructor
Definition: GNEViewNet.h:553
long onCmdToogleShowConnection(FXObject *, FXSelector, void *)
toogle show connections
MFXCheckableButton * myEditModeCreateEdge
Definition: GNEViewNet.h:691
bool showJunctionAsBubbles() const
return true if junction must be showed as bubbles
Definition: GNEViewNet.cpp:375
bool removeRestrictedLane(SUMOVehicleClass vclass)
remove restricted lane
long onCmdSplitEdgeBidi(FXObject *, FXSelector, void *)
split edge at cursor position
bool autoSelectNodes()
whether to autoselect nodes or to lanes
Definition: GNEViewNet.cpp:357
long onCmdSetModeProhibition(FXObject *, FXSelector, void *)
called when user press the button for polygon mode
MFXCheckableButton * myEditModeTrafficLight
chekable button for edit mode traffic light
Definition: GNEViewNet.h:709
GNECrossing * crossing
crossing
Definition: GNEViewNet.h:537
mode for selecting objects
Definition: GNEViewNet.h:54
MFXCheckableButton * myEditModeAdditional
chekable button for edit mode additional
Definition: GNEViewNet.h:712
GNEAttributeCarrier * attributeCarrier
attribute carrier
Definition: GNEViewNet.h:516
GUIGlID glID
GUI GL ID.
Definition: GNEViewNet.h:510
struct used to group all pointers to moved elements
Definition: GNEViewNet.h:423
std::map< GNEEdge *, PositionVector > myOriginShapesMovedEntireShapes
Selected Edges that are being moved < Edge, PositionVector >
Definition: GNEViewNet.h:674
struct used to group all variables related with selecting using a square or polygon ...
Definition: GNEViewNet.h:551
long onCmdEditEdgeEndpoint(FXObject *, FXSelector, void *)
change geometry endpoint
long onCmdResetLaneCustomShape(FXObject *, FXSelector, void *)
reset custom shapes of selected lanes
GNEConnection * getConnectionAtPopupPosition()
try to retrieve a connection at popup position
EditMode
Definition: GNEViewNet.h:42
void doInit()
called after some features are already initialized
Definition: GNEViewNet.cpp:214
placeholder mode
Definition: GNEViewNet.h:44
struct used to group all variables related with movement of single elements
Definition: GNEViewNet.h:449
FXMenuCheck * myAutoCreateOppositeEdge
Definition: GNEViewNet.h:636
long onCmdSplitJunction(FXObject *, FXSelector, void *)
split junction into multiple junctions
void setSelectionScaling(double selectionScale)
set selection scaling
Definition: GNEViewNet.cpp:363
EditMode getCurrentEditMode() const
get the current edit mode
MFXCheckableButton * myEditModeInspect
chekable button for edit mode inspect
Definition: GNEViewNet.h:700
FXMenuCheck * myMenuCheckExtendToEdgeNodes
menu check to extend to edge nodes
Definition: GNEViewNet.h:612
long onCmdClosePolygon(FXObject *, FXSelector, void *)
close opened polygon
A road/street connecting two junctions (netedit-version)
Definition: GNEEdge.h:50
unsigned int GUIGlID
Definition: GUIGlObject.h:43
long onKeyRelease(FXObject *o, FXSelector sel, void *data)
called when user release a key
long onCmdRemoveRestrictedLaneBuslane(FXObject *, FXSelector, void *)
remove restricted lane for bus
GNEJunction * getJunctionAtPopupPosition()
try to retrieve a junction at popup position
long onCmdSmoothEdgesElevation(FXObject *, FXSelector, void *)
smooth elevation with regard to adjoining edges
Mode for editing Polygons.
Definition: GNEViewNet.h:64
GNENetElement * netElement
net element
Definition: GNEViewNet.h:519
FXMenuCheck * myMenuCheckWarnAboutMerge
whether we should warn about merging junctions
Definition: GNEViewNet.h:642
void setACUnderCursor(const GNEAttributeCarrier *AC)
set attributeCarrier under cursor
void buildSelectionACPopupEntry(GUIGLObjectPopupMenu *ret, GNEAttributeCarrier *AC)
Builds an entry which allows to (de)select the object.
Definition: GNEViewNet.cpp:263
class used to group all variables related with objects under cursor after a click over view ...
Definition: GNEViewNet.h:475
long onCmdDeleteGeometryPoint(FXObject *, FXSelector, void *)
delete the closes geometry point
FXMenuCheck * myMenuCheckShowBubbleOverJunction
show connection as buuble in "Move" mode.
Definition: GNEViewNet.h:645
bool selectingUsingRectangle
whether we have started rectangle-selection
Definition: GNEViewNet.h:560
An Element which don&#39;t belongs to GNENet but has influency in the simulation.
Definition: GNEAdditional.h:53
MFXCheckableButton * myEditModeConnection
chekable button for edit mode connection
Definition: GNEViewNet.h:706
bool showConnections()
show connections over junctions
Definition: GNEViewNet.cpp:343
GNEJunction * junction
junction
Definition: GNEViewNet.h:528
long onCmdReverseEdge(FXObject *, FXSelector, void *)
reverse edge
GNEPOI * poiToMove
the poi which is being moved
Definition: GNEViewNet.h:442
Position movingOriginalPosition
original Position of element before moving (needed for commmit position changes)
Definition: GNEViewNet.h:460
long onCmdSetModeTLS(FXObject *, FXSelector, void *)
called when user press the button for traffic lights mode
struct used to group all variables related with testing
Definition: GNEViewNet.h:573
int doPaintGL(int mode, const Boundary &bound)
do paintGL
Definition: GNEViewNet.cpp:527
GNEJunction * myCreateEdgeSource
source junction for new edge 0 if no edge source is selected an existing (or newly created) junction ...
Definition: GNEViewNet.h:632
A storage for options typed value containers)
Definition: OptionsCont.h:92
long onCmdOpenAdditionalDialog(FXObject *, FXSelector, void *)
open additional dialog
The popup menu of a globject.
GNEJunction * junctionToMove
the Junction to be moved.
Definition: GNEViewNet.h:433
void deleteSelectedAdditionals()
delete all currently selected additionals
GNECrossing * getCrossingAtPopupPosition()
try to retrieve a crossing at popup position
long onCmdSmoothEdges(FXObject *, FXSelector, void *)
smooth geometry
The network - empty.
GNENet * getNet() const
get the net object
Position selectionCorner2
second corner of the rectangle-selection
Definition: GNEViewNet.h:566
void updateModeSpecificControls()
updates mode specific controls
MFXCheckableButton * myEditModeCrossing
chekable button for edit mode crossing
Definition: GNEViewNet.h:715
long onCmdEditCrossingShape(FXObject *, FXSelector, void *)
edit crossing shape
void setStatusBarText(const std::string &text)
set staturBar text
Definition: GNEViewNet.cpp:331
long onCmdSetModeConnect(FXObject *, FXSelector, void *)
called when user press the button for connect mode
Mode for editing additionals.
Definition: GNEViewNet.h:60
StringBijection< EditMode > myEditAdditionalModeNames
stringBijection for edit additional mode names
Definition: GNEViewNet.h:731
virtual void buildViewToolBars(GUIGlChildWindow &)
builds the view toolbars
Definition: GNEViewNet.cpp:218
long onCmdSetModePolygon(FXObject *, FXSelector, void *)
called when user press the button for polygon mode
Mode for editing crossing.
Definition: GNEViewNet.h:62
long onCmdStraightenEdges(FXObject *, FXSelector, void *)
makes selected edges straight
long onCmdSetModeInspect(FXObject *, FXSelector, void *)
called when user press the button for inspect mode
void finishMoveSelection()
finish moving selection
Definition: GNEViewNet.cpp:501
mode for connecting lanes
Definition: GNEViewNet.h:56
bool myMovingSelection
whether a selection is being moved
Definition: GNEViewNet.h:667
mode for creating new edges
Definition: GNEViewNet.h:46
long onCmdSetFirstGeometryPoint(FXObject *, FXSelector, void *)
set as first geometry point the closes geometry point
GNELane * getLaneAtPopupPosition()
try to retrieve a lane at popup position
long onCmdToogleShowBubbles(FXObject *, FXSelector, void *)
toogle show bubbles
long onCmdTransformPOI(FXObject *, FXSelector, void *)
Transform POI to POILane, and viceversa.
void hotkeyDel()
handle del keypress
long onCmdAddReversedEdge(FXObject *, FXSelector, void *)
add reversed edge
GNEPoly * myEditShapePoly
Definition: GNEViewNet.h:743
GNENet * myNet
Pointer to current net. (We are not responsible for deletion)
Definition: GNEViewNet.h:594
void hotkeyEnter()
handle enter keypress
long onCmdRestrictLaneBikelane(FXObject *, FXSelector, void *)
restrict lane to bikes
void deleteSelectedLanes()
delete all currently selected lanes
long onCmdEditJunctionShape(FXObject *, FXSelector, void *)
edit junction shape
long onLeftBtnRelease(FXObject *, FXSelector, void *)
called when user releases mouse&#39;s left button
Definition: GNEViewNet.cpp:950
long onCmdShowGrid(FXObject *, FXSelector, void *)
toogle show grid
void processClick(FXEvent *e, void *data)
Auxiliar function used by onLeftBtnPress(...)
long onCmdSetModeCreateEdge(FXObject *, FXSelector, void *)
long onCmdSetModeDelete(FXObject *, FXSelector, void *)
called when user press the button for delete mode
void deleteSelectedEdges()
delete all currently selected edges
GNEUndoList * myUndoList
a reference to the undolist maintained in the application
Definition: GNEViewNet.h:735
EditMode myEditMode
the current edit mode
Definition: GNEViewNet.h:597
bool addRestrictedLane(SUMOVehicleClass vclass)
add restricted lane
testingMode()
default constructor
Definition: GNEViewNet.h:575
MFXCheckableButton * myEditModePolygon
chekable button for edit mode polygon
Definition: GNEViewNet.h:718
GNEFrame * myCurrentFrame
the current frame
Definition: GNEViewNet.h:600
long onCmdRestrictLaneSidewalk(FXObject *, FXSelector, void *)
restrict lane to pedestrians
GNEPoly * getPolygonAtPopupPosition()
try to retrieve a polygon at popup position