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 
124  bool setColorScheme(const std::string& name);
125 
127  void buildColorRainbow(GUIColorScheme& scheme, int active, GUIGlObjectType objectType);
128 
132  long onLeftBtnPress(FXObject*, FXSelector, void*);
133 
135  long onLeftBtnRelease(FXObject*, FXSelector, void*);
136 
138  long onRightBtnPress(FXObject*, FXSelector, void*);
139 
141  long onRightBtnRelease(FXObject*, FXSelector, void*);
142 
144  long onMouseMove(FXObject*, FXSelector, void*);
145 
147  long onKeyPress(FXObject* o, FXSelector sel, void* data);
148 
150  long onKeyRelease(FXObject* o, FXSelector sel, void* data);
152 
156  long onCmdSetModeCreateEdge(FXObject*, FXSelector, void*);
157 
159  long onCmdSetModeMove(FXObject*, FXSelector, void*);
160 
162  long onCmdSetModeDelete(FXObject*, FXSelector, void*);
163 
165  long onCmdSetModeInspect(FXObject*, FXSelector, void*);
166 
168  long onCmdSetModeSelect(FXObject*, FXSelector, void*);
169 
171  long onCmdSetModeConnect(FXObject*, FXSelector, void*);
172 
174  long onCmdSetModeTLS(FXObject*, FXSelector, void*);
175 
177  long onCmdSetModeAdditional(FXObject*, FXSelector, void*);
178 
180  long onCmdSetModeCrossing(FXObject*, FXSelector, void*);
181 
183  long onCmdSetModePolygon(FXObject*, FXSelector, void*);
184 
186  long onCmdSetModeProhibition(FXObject*, FXSelector, void*);
187 
189 
191  long onCmdSplitEdge(FXObject*, FXSelector, void*);
192 
194  long onCmdSplitEdgeBidi(FXObject*, FXSelector, void*);
195 
197  long onCmdReverseEdge(FXObject*, FXSelector, void*);
198 
200  long onCmdAddReversedEdge(FXObject*, FXSelector, void*);
201 
203  long onCmdEditEdgeEndpoint(FXObject*, FXSelector, void*);
204 
206  long onCmdResetEdgeEndpoint(FXObject*, FXSelector, void*);
207 
209  long onCmdStraightenEdges(FXObject*, FXSelector, void*);
210 
212  long onCmdSmoothEdges(FXObject*, FXSelector, void*);
213 
215  long onCmdStraightenEdgesElevation(FXObject*, FXSelector, void*);
216 
218  long onCmdSmoothEdgesElevation(FXObject*, FXSelector, void*);
219 
221  long onCmdSimplifyShape(FXObject*, FXSelector, void*);
222 
224  long onCmdDeleteGeometryPoint(FXObject*, FXSelector, void*);
225 
227  long onCmdClosePolygon(FXObject*, FXSelector, void*);
228 
230  long onCmdOpenPolygon(FXObject*, FXSelector, void*);
231 
233  long onCmdSetFirstGeometryPoint(FXObject*, FXSelector, void*);
234 
236  long onCmdTransformPOI(FXObject*, FXSelector, void*);
237 
239  long onCmdDuplicateLane(FXObject*, FXSelector, void*);
240 
242  long onCmdRestrictLaneSidewalk(FXObject*, FXSelector typeOfTransformation, void*);
243 
245  long onCmdRestrictLaneBikelane(FXObject*, FXSelector typeOfTransformation, void*);
246 
248  long onCmdRestrictLaneBuslane(FXObject*, FXSelector typeOfTransformation, void*);
249 
251  long onCmdAddRestrictedLaneSidewalk(FXObject*, FXSelector typeOfTransformation, void*);
252 
254  long onCmdAddRestrictedLaneBikelane(FXObject*, FXSelector typeOfTransformation, void*);
255 
257  long onCmdAddRestrictedLaneBuslane(FXObject*, FXSelector typeOfTransformation, void*);
258 
260  long onCmdRemoveRestrictedLaneSidewalk(FXObject*, FXSelector typeOfTransformation, void*);
261 
263  long onCmdRemoveRestrictedLaneBikelane(FXObject*, FXSelector typeOfTransformation, void*);
264 
266  long onCmdRemoveRestrictedLaneBuslane(FXObject*, FXSelector typeOfTransformation, void*);
267 
269  long onCmdOpenAdditionalDialog(FXObject*, FXSelector, void*);
270 
272  long onCmdEditJunctionShape(FXObject*, FXSelector, void*);
273 
275  long onCmdReplaceJunction(FXObject*, FXSelector, void*);
276 
278  long onCmdSplitJunction(FXObject*, FXSelector, void*);
279 
281  long onCmdClearConnections(FXObject*, FXSelector, void*);
282 
284  long onCmdResetConnections(FXObject*, FXSelector, void*);
285 
287  long onCmdEditConnectionShape(FXObject*, FXSelector, void*);
288 
290  long onCmdEditCrossingShape(FXObject*, FXSelector, void*);
291 
293  long onCmdToogleShowConnection(FXObject*, FXSelector, void*);
294 
296  long onCmdToogleSelectEdges(FXObject*, FXSelector, void*);
297 
299  long onCmdToogleShowBubbles(FXObject*, FXSelector, void*);
300 
302  long onCmdShowGrid(FXObject*, FXSelector, void*);
303 
307  void setEditModeFromHotkey(FXushort selid);
308 
310  void abortOperation(bool clearSelection = true);
311 
313  void hotkeyDel();
314 
316  void hotkeyEnter();
317 
319  void hotkeyFocusFrame();
320 
322  GNEViewParent* getViewParent() const;
323 
325  GNENet* getNet() const;
326 
328  GNEUndoList* getUndoList() const;
329 
332 
334  FXMenuCheck* getMenuCheckShowGrid() const;
335 
337  const GNEAttributeCarrier* getACUnderCursor() const;
338 
340  void setACUnderCursor(const GNEAttributeCarrier* AC);
341 
343  bool showLockIcon() const;
344 
346  void setStatusBarText(const std::string& text);
347 
349  bool selectEdges();
350 
352  bool showConnections();
353 
355  bool autoSelectNodes();
356 
358  void setSelectionScaling(double selectionScale);
359 
361  void updateControls();
362 
364  bool changeAllPhases() const;
365 
367  bool showJunctionAsBubbles() const;
368 
370  void startEditCustomShape(GNENetElement* element, const PositionVector& shape, bool fill);
371 
373  void stopEditCustomShape();
374 
376  void beginMoveSelection(GNEAttributeCarrier* originAC, const Position& originPosition);
377 
379  void moveSelection(const Position& offset);
380 
382  void finishMoveSelection();
383 
384 protected:
387 
389  int doPaintGL(int mode, const Boundary& bound);
390 
392  void doInit();
393 
394 private:
396  struct MovedItems {
399  junctionToMove(nullptr),
400  edgeToMove(nullptr),
401  polyToMove(nullptr),
402  poiToMove(nullptr),
403  additionalToMove(nullptr) {}
404 
407 
410 
413 
416 
419  };
420 
425  movingStartPos(false),
426  movingEndPos(false),
427  movingIndexShape(-1) {}
428 
431 
434 
438 
442 
445  };
446 
449  public:
452  eventInfo(nullptr),
453  glID(0),
454  glType(GLO_NETWORK),
455  attributeCarrier(nullptr),
456  netElement(nullptr),
457  additional(nullptr),
458  shape(nullptr),
459  junction(nullptr),
460  edge(nullptr),
461  lane(nullptr),
462  crossing(nullptr),
463  connection(nullptr),
464  poi(nullptr),
465  poly(nullptr) {}
466 
468  void updateObjectUnderCursor(GUIGlID glIDObject, GNEPoly* editedPolyShape, FXEvent* ev);
469 
471  void swapLane2Edge();
472 
474  bool shiftKeyPressed() const;
475 
477  bool controlKeyPressed() const;
478 
480  FXEvent* eventInfo;
481 
484 
487 
490 
493 
496 
499 
502 
505 
508 
511 
514 
517 
520  };
521 
524  struct SelectingArea {
527  selectingUsingRectangle(false) {}
528 
530  void processSelection(GNEViewNet* viewNet, bool shiftKeyPressed);
531 
534 
537 
540 
542  std::string reportDimensions();
543  };
544 
546  struct testingMode {
549  testingEnabled(OptionsCont::getOptions().getBool("gui-testing")),
550  testingWidth(0),
551  testingHeight(0) {}
552 
555 
558 
561  };
562 
565 
568 
571 
574 
577 
580 
583 
586 
589 
591  FXMenuCheck* myMenuCheckShowGrid;
592 
595 
598 
600  // @{
603 
605  FXMenuCheck* myChainCreateEdge;
607  // @}
608 
610  // @{
613 
616 
619  // @}
620 
623 
626 
629 
632 
635 
638 
640 
641  std::map<GNEJunction*, Position> myOriginPositionOfMovedJunctions;
642 
644  std::map<GNEEdge*, PositionVector> myOriginShapesMovedEntireShapes;
645 
646  struct MovingEdges {
648  int index;
650  };
651 
652  std::map<GNEEdge*, MovingEdges> myOriginShapesMovedPartialShapes;
653  // @}
654 
656  FXToolBar* myToolbar;
657 
662 
665 
668 
671 
674 
677 
680 
683 
686 
689 
692 
694 
699 
703 
706 
709 
714 
718 
720  void setEditMode(EditMode mode);
721 
723  void buildEditModeControls();
724 
727 
730 
732  void deleteSelectedLanes();
733 
735  void deleteSelectedEdges();
736 
739 
742 
745 
747  void deleteSelectedShapes();
748 
750  bool mergeJunctions(GNEJunction* moved, const Position& oldPos);
751 
754 
757 
760 
763 
766 
768  std::set<GNEEdge*> getEdgesAtPopupPosition();
769 
772 
775 
778 
780  bool restrictLane(SUMOVehicleClass vclass);
781 
783  bool addRestrictedLane(SUMOVehicleClass vclass);
784 
787 
789  void processClick(FXEvent* e, void* data);
790 
792  GNEViewNet(const GNEViewNet&) = delete;
793 
795  GNEViewNet& operator=(const GNEViewNet&) = delete;
796 };
797 
798 
799 #endif
800 
801 /****************************************************************************/
void startEditCustomShape(GNENetElement *element, const PositionVector &shape, bool fill)
start edit custom shape
Definition: GNEViewNet.cpp:361
long onCmdAddRestrictedLaneSidewalk(FXObject *, FXSelector typeOfTransformation, void *)
Add restricted lane for pedestrians.
void buildColorRainbow(GUIColorScheme &scheme, int active, GUIGlObjectType objectType)
recalibrate color scheme according to the current value range
Definition: GNEViewNet.cpp:270
long onCmdResetEdgeEndpoint(FXObject *, FXSelector, void *)
change geometry endpoint
GNEViewParent * myViewParent
view parent
Definition: GNEViewNet.h:564
FXMenuCheck * getMenuCheckShowGrid() const
get grid button
testingMode myTestingMode
variable used to save variables related with testing mode
Definition: GNEViewNet.h:634
GNEPoly * polyToMove
the poly of which geometry is being moved
Definition: GNEViewNet.h:412
long onCmdRestrictLaneBikelane(FXObject *, FXSelector typeOfTransformation, void *)
restrict lane to bikes
GNEEdge * edgeToMove
the edge of which geometry is being moved
Definition: GNEViewNet.h:409
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:317
GNEViewNet & operator=(const GNEViewNet &)=delete
Invalidated assignment operator.
MovedItems()
constructor
Definition: GNEViewNet.h:398
GNEAdditional * additional
additional element
Definition: GNEViewNet.h:495
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:254
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:960
bool myShowConnections
whether show connections has been activated once
Definition: GNEViewNet.h:594
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:698
long onMouseMove(FXObject *, FXSelector, void *)
called when user moves mouse
Definition: GNEViewNet.cpp:984
Mode for editing connection prohibits.
Definition: GNEViewNet.h:66
GNEViewNet()
FOX needs this.
Definition: GNEViewNet.h:386
MovedItems myMovedItems
variable use to save pointers to moved elements
Definition: GNEViewNet.h:625
void beginMoveSelection(GNEAttributeCarrier *originAC, const Position &originPosition)
begin move selection
Definition: GNEViewNet.cpp:391
bool mySelectEdges
flag to check if select edges is enabled
Definition: GNEViewNet.h:597
long onCmdSetModeSelect(FXObject *, FXSelector, void *)
called when user press the button for select mode
GUIGlObjectType glType
GUI GL object type.
Definition: GNEViewNet.h:486
std::map< GNEEdge *, MovingEdges > myOriginShapesMovedPartialShapes
Definition: GNEViewNet.h:652
void hotkeyFocusFrame()
handle focus frame keypress
const GNEAttributeCarrier * myACUnderCursor
current AttributeCarrier under Mouse position
Definition: GNEViewNet.h:708
FXMenuCheck * myMenuCheckShowGrid
show grid button
Definition: GNEViewNet.h:591
void stopEditCustomShape()
edit edit shape
Definition: GNEViewNet.cpp:377
Position movingReference
variable for calculating moving offset (Used when user doesn&#39;t click exactly over the center of shape...
Definition: GNEViewNet.h:430
FXMenuCheck * myChainCreateEdge
whether the endpoint for a created edge should be set as the new source
Definition: GNEViewNet.h:605
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:498
long onCmdToogleSelectEdges(FXObject *, FXSelector, void *)
toogle selet edges
GNEViewParent * getViewParent() const
get the net object
MoveSingleElementValues myMoveSingleElementValues
variable used to save variables related with movement of single elements
Definition: GNEViewNet.h:628
Position selectionCorner1
firstcorner of the rectangle-selection
Definition: GNEViewNet.h:536
void setEditMode(EditMode mode)
set edit mode
MFXCheckableButton * myEditModeSelect
chekable button for edit mode select
Definition: GNEViewNet.h:673
long onCmdOpenPolygon(FXObject *, FXSelector, void *)
open closed polygon
GNEConnection * connection
connection
Definition: GNEViewNet.h:513
mode for editing tls
Definition: GNEViewNet.h:58
bool movingStartPos
bool to indicate that startPos are being moved
Definition: GNEViewNet.h:440
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:622
MFXCheckableButton * myEditModeMove
chekable button for edit mode move
Definition: GNEViewNet.h:664
int movingIndexShape
current index of shape that are being moved
Definition: GNEViewNet.h:444
MFXCheckableButton * myEditModeDelete
chekable button for edit mode delete
Definition: GNEViewNet.h:667
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:436
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 onCmdEditConnectionShape(FXObject *, FXSelector, void *)
edit connection shape
ObjectsUnderCursor()
constructor
Definition: GNEViewNet.h:451
MFXCheckableButton * myEditModeProhibition
checkable button for edit mode polygon
Definition: GNEViewNet.h:691
void moveSelection(const Position &offset)
move selection
Definition: GNEViewNet.cpp:462
PositionVector originalShape
Definition: GNEViewNet.h:647
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:716
std::map< GNEJunction *, Position > myOriginPositionOfMovedJunctions
Selected Junctions that are being moved.
Definition: GNEViewNet.h:641
FXEvent * eventInfo
information of event of onLeftBtnPress
Definition: GNEViewNet.h:480
FXMenuCheck * myMenuCheckChangeAllPhases
menu check to set change all phases
Definition: GNEViewNet.h:588
void deleteSelectedShapes()
delete all currently selected shapes
GNEAdditional * additionalToMove
the stoppingPlace element which shape is being moved
Definition: GNEViewNet.h:418
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:557
bool testingEnabled
flag to enable or disable testing mode
Definition: GNEViewNet.h:554
FXMenuCheck * myMenuCheckHideConnections
menu check to hide connections in connect mode
Definition: GNEViewNet.h:582
bool changeAllPhases() const
change all phases
Definition: GNEViewNet.cpp:349
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:631
void buildEditModeControls()
adds controls for setting the edit mode
FXMenuCheck * myMenuCheckMoveElevation
apply movement to elevation
Definition: GNEViewNet.h:618
GNEUndoList * getUndoList() const
get the undoList object
long onLeftBtnPress(FXObject *, FXSelector, void *)
Definition: GNEViewNet.cpp:619
long onRightBtnRelease(FXObject *, FXSelector, void *)
called when user releases mouse&#39;s right button
Definition: GNEViewNet.cpp:973
long onCmdSimplifyShape(FXObject *, FXSelector, void *)
simply shape of current polygon
bool showLockIcon() const
check if lock icon should be visible
long onCmdRemoveRestrictedLaneBuslane(FXObject *, FXSelector typeOfTransformation, void *)
remove restricted lane for bus
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:579
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:201
GNEEdge * getEdgeAtPopupPosition()
try to retrieve an edge at popup position
int testingHeight
Height of viewNet in testing mode.
Definition: GNEViewNet.h:560
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:576
FXToolBar * myToolbar
a reference to the toolbar in myParent
Definition: GNEViewNet.h:656
SelectingArea()
default constructor
Definition: GNEViewNet.h:526
long onCmdToogleShowConnection(FXObject *, FXSelector, void *)
toogle show connections
MFXCheckableButton * myEditModeCreateEdge
Definition: GNEViewNet.h:661
bool showJunctionAsBubbles() const
return true if junction must be showed as bubbles
Definition: GNEViewNet.cpp:355
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:337
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:679
long onCmdRemoveRestrictedLaneBikelane(FXObject *, FXSelector typeOfTransformation, void *)
remove restricted lane for bikes
GNECrossing * crossing
crossing
Definition: GNEViewNet.h:510
mode for selecting objects
Definition: GNEViewNet.h:54
MFXCheckableButton * myEditModeAdditional
chekable button for edit mode additional
Definition: GNEViewNet.h:682
GNEAttributeCarrier * attributeCarrier
attribute carrier
Definition: GNEViewNet.h:489
GUIGlID glID
GUI GL ID.
Definition: GNEViewNet.h:483
struct used to group all pointers to moved elements
Definition: GNEViewNet.h:396
std::map< GNEEdge *, PositionVector > myOriginShapesMovedEntireShapes
Selected Edges that are being moved < Edge, PositionVector >
Definition: GNEViewNet.h:644
struct used to group all variables related with selecting using a square or polygon ...
Definition: GNEViewNet.h:524
long onCmdEditEdgeEndpoint(FXObject *, FXSelector, void *)
change geometry endpoint
long onCmdRestrictLaneBuslane(FXObject *, FXSelector typeOfTransformation, void *)
restrict lane to buslanes
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:205
placeholder mode
Definition: GNEViewNet.h:44
struct used to group all variables related with movement of single elements
Definition: GNEViewNet.h:422
FXMenuCheck * myAutoCreateOppositeEdge
Definition: GNEViewNet.h:606
long onCmdSplitJunction(FXObject *, FXSelector, void *)
split junction into multiple junctions
void setSelectionScaling(double selectionScale)
set selection scaling
Definition: GNEViewNet.cpp:343
EditMode getCurrentEditMode() const
get the current edit mode
MFXCheckableButton * myEditModeInspect
chekable button for edit mode inspect
Definition: GNEViewNet.h:670
FXMenuCheck * myMenuCheckExtendToEdgeNodes
menu check to extend to edge nodes
Definition: GNEViewNet.h:585
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
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:492
FXMenuCheck * myMenuCheckWarnAboutMerge
whether we should warn about merging junctions
Definition: GNEViewNet.h:612
void setACUnderCursor(const GNEAttributeCarrier *AC)
set attributeCarrier under cursor
class used to group all variables related with objects under cursor after a click over view ...
Definition: GNEViewNet.h:448
long onCmdDeleteGeometryPoint(FXObject *, FXSelector, void *)
delete the closes geometry point
long onCmdAddRestrictedLaneBikelane(FXObject *, FXSelector typeOfTransformation, void *)
Add restricted lane for bikes.
FXMenuCheck * myMenuCheckShowBubbleOverJunction
show connection as buuble in "Move" mode.
Definition: GNEViewNet.h:615
bool selectingUsingRectangle
whether we have started rectangle-selection
Definition: GNEViewNet.h:533
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:676
bool showConnections()
show connections over junctions
Definition: GNEViewNet.cpp:323
GNEJunction * junction
junction
Definition: GNEViewNet.h:501
long onCmdReverseEdge(FXObject *, FXSelector, void *)
reverse edge
GNEPOI * poiToMove
the poi which is being moved
Definition: GNEViewNet.h:415
Position movingOriginalPosition
original Position of element before moving (needed for commmit position changes)
Definition: GNEViewNet.h:433
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:546
int doPaintGL(int mode, const Boundary &bound)
do paintGL
Definition: GNEViewNet.cpp:507
GNEJunction * myCreateEdgeSource
source junction for new edge 0 if no edge source is selected an existing (or newly created) junction ...
Definition: GNEViewNet.h:602
A storage for options typed value containers)
Definition: OptionsCont.h:92
long onCmdOpenAdditionalDialog(FXObject *, FXSelector, void *)
open additional dialog
GNEJunction * junctionToMove
the Junction to be moved.
Definition: GNEViewNet.h:406
long onCmdAddRestrictedLaneBuslane(FXObject *, FXSelector typeOfTransformation, void *)
Add restricted lane for buses.
long onCmdRemoveRestrictedLaneSidewalk(FXObject *, FXSelector typeOfTransformation, void *)
remove restricted lane for pedestrians
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:539
long onCmdRestrictLaneSidewalk(FXObject *, FXSelector typeOfTransformation, void *)
restrict lane to pedestrians
void updateModeSpecificControls()
updates mode specific controls
MFXCheckableButton * myEditModeCrossing
chekable button for edit mode crossing
Definition: GNEViewNet.h:685
long onCmdEditCrossingShape(FXObject *, FXSelector, void *)
edit crossing shape
void setStatusBarText(const std::string &text)
set staturBar text
Definition: GNEViewNet.cpp:311
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:701
virtual void buildViewToolBars(GUIGlChildWindow &)
builds the view toolbars
Definition: GNEViewNet.cpp:209
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:481
mode for connecting lanes
Definition: GNEViewNet.h:56
bool myMovingSelection
whether a selection is being moved
Definition: GNEViewNet.h:637
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:713
GNENet * myNet
Pointer to current net. (We are not responsible for deletion)
Definition: GNEViewNet.h:567
void hotkeyEnter()
handle enter keypress
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:914
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:705
EditMode myEditMode
the current edit mode
Definition: GNEViewNet.h:570
bool addRestrictedLane(SUMOVehicleClass vclass)
add restricted lane
testingMode()
default constructor
Definition: GNEViewNet.h:548
MFXCheckableButton * myEditModePolygon
chekable button for edit mode polygon
Definition: GNEViewNet.h:688
GNEFrame * myCurrentFrame
the current frame
Definition: GNEViewNet.h:573
GNEPoly * getPolygonAtPopupPosition()
try to retrieve a polygon at popup position