Eclipse 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.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 view on the network being edited (adapted from GUIViewTraffic)
19 /****************************************************************************/
20 #pragma once
21 #include <config.h>
22 
24 
25 #include "GNEViewNetHelper.h"
26 
27 
28 // ===========================================================================
29 // class declaration
30 // ===========================================================================
31 class GNEFrame;
32 class GNENet;
33 class GNEUndoList;
34 class GNEViewParent;
35 
36 // ===========================================================================
37 // class definitions
38 // ===========================================================================
45  FXDECLARE(GNEViewNet)
46 
47 
48  friend struct GNEViewNetHelper;
49 
50 public:
51  /* @brief constructor
52  * @param[in] tmpParent temporal FXFrame parent so that we can add items to view area in the desired order
53  * @param[in] actualParent FXFrame parent of GNEViewNet
54  * @param[in] app main windows
55  * @param[in] viewParent viewParent of this viewNet
56  * @param[in] net traffic net
57  * @param[in] undoList pointer to UndoList module
58  * @param[in] glVis a reference to GLVisuals
59  * @param[in] share a reference to FXCanvas
60  */
61  GNEViewNet(FXComposite* tmpParent, FXComposite* actualParent, GUIMainWindow& app,
62  GNEViewParent* viewParent, GNENet* net, GNEUndoList* undoList,
63  FXGLVisual* glVis, FXGLCanvas* share);
64 
66  ~GNEViewNet();
67 
69  void recalculateBoundaries();
70 
73 
75  void updateViewNet() const;
76 
78  void forceSupemodeNetwork();
79 
81  void viewUpdated();
82 
84  const GNEViewNetHelper::ViewObjectsSelector& getViewObjectsSelector() const;
85 
87  const GNEViewNetHelper::MoveMultipleElementModul& getMoveMultipleElementValues() const;
88 
90  void updateObjectsInBoundary(const Boundary& boundary);
91 
93  void updateObjectsInPosition(const Position& pos);
94 
100 
102  bool setColorScheme(const std::string& name);
103 
105  void buildColorRainbow(const GUIVisualizationSettings& s, GUIColorScheme& scheme, int active, GUIGlObjectType objectType,
106  bool hide = false, double hideThreshold = 0,
107  bool hide2 = false, double hideThreshold2 = 0);
108 
110  std::vector<std::string> getEdgeLaneParamKeys(bool edgeKeys) const;
111 
113  std::vector<std::string> getEdgeDataAttrs() const;
114 
116  std::vector<std::string> getRelDataAttrs() const;
117 
119  int getDrawingToggle() const;
120 
122  bool checkSelectEdges() const;
123 
125  void openObjectDialogAtCursor(const FXEvent* ev);
126 
128  void openDeleteDialogAtCursor(const std::vector<GUIGlObject*>& GLObjects);
129 
131  void openSelectDialogAtCursor(const std::vector<GUIGlObject*>& GLObjects);
132 
133  // save visualization settings
134  void saveVisualizationSettings() const;
135 
137  const GNEViewNetHelper::EditModes& getEditModes() const;
138 
140  const GNEViewNetHelper::TestingMode& getTestingMode() const;
141 
143  const GNEViewNetHelper::NetworkViewOptions& getNetworkViewOptions() const;
144 
146  const GNEViewNetHelper::DemandViewOptions& getDemandViewOptions() const;
147 
149  const GNEViewNetHelper::DataViewOptions& getDataViewOptions() const;
150 
152  const GNEViewNetHelper::MouseButtonKeyPressed& getMouseButtonKeyPressed() const;
153 
155  const GNEViewNetHelper::EditNetworkElementShapes& getEditNetworkElementShapes() const;
156 
160  long onLeftBtnPress(FXObject*, FXSelector, void*);
161 
163  long onLeftBtnRelease(FXObject*, FXSelector, void*);
164 
166  long onMiddleBtnPress(FXObject*, FXSelector, void*);
167 
169  long onMiddleBtnRelease(FXObject*, FXSelector, void*);
170 
172  long onRightBtnPress(FXObject*, FXSelector, void*);
173 
175  long onRightBtnRelease(FXObject*, FXSelector, void*);
176 
178  long onMouseMove(FXObject*, FXSelector, void*);
179 
181  long onKeyPress(FXObject* o, FXSelector sel, void* data);
182 
184  long onKeyRelease(FXObject* o, FXSelector sel, void* data);
186 
190  long onCmdSetSupermode(FXObject*, FXSelector sel, void*);
191 
193  long onCmdSetMode(FXObject*, FXSelector sel, void*);
194 
196 
198  long onCmdSplitEdge(FXObject*, FXSelector, void*);
199 
201  long onCmdSplitEdgeBidi(FXObject*, FXSelector, void*);
202 
204  long onCmdReverseEdge(FXObject*, FXSelector, void*);
205 
207  long onCmdAddReversedEdge(FXObject*, FXSelector, void*);
208 
210  long onCmdAddReversedEdgeDisconnected(FXObject*, FXSelector, void*);
211 
213  long onCmdEditEdgeEndpoint(FXObject*, FXSelector, void*);
214 
216  long onCmdResetEdgeEndpoint(FXObject*, FXSelector, void*);
217 
219  long onCmdStraightenEdges(FXObject*, FXSelector, void*);
220 
222  long onCmdSmoothEdges(FXObject*, FXSelector, void*);
223 
225  long onCmdStraightenEdgesElevation(FXObject*, FXSelector, void*);
226 
228  long onCmdSmoothEdgesElevation(FXObject*, FXSelector, void*);
229 
231  long onCmdResetLength(FXObject*, FXSelector, void*);
232 
234  long onCmdEdgeUseAsTemplate(FXObject*, FXSelector, void*);
235 
237  long onCmdEgeApplyTemplate(FXObject*, FXSelector, void*);
238 
240  long onCmdSimplifyShape(FXObject*, FXSelector, void*);
241 
243  long onCmdDeleteGeometryPoint(FXObject*, FXSelector, void*);
244 
246  long onCmdClosePolygon(FXObject*, FXSelector, void*);
247 
249  long onCmdOpenPolygon(FXObject*, FXSelector, void*);
250 
252  long onCmdSelectPolygonElements(FXObject*, FXSelector, void*);
253 
255  long onCmdSetFirstGeometryPoint(FXObject*, FXSelector, void*);
256 
258  long onCmdTransformPOI(FXObject*, FXSelector, void*);
259 
261  long onCmdReverse(FXObject*, FXSelector, void*);
262 
264  long onCmdAddReverse(FXObject*, FXSelector, void*);
265 
267  long onCmdSetCustomGeometryPoint(FXObject*, FXSelector, void*);
268 
270  long onCmdResetEndPoints(FXObject*, FXSelector, void*);
271 
273  long onCmdDuplicateLane(FXObject*, FXSelector, void*);
274 
276  long onCmdEditLaneShape(FXObject*, FXSelector, void*);
277 
279  long onCmdResetLaneCustomShape(FXObject*, FXSelector, void*);
280 
282  long onCmdResetOppositeLane(FXObject*, FXSelector, void*);
283 
285  long onCmdLaneOperation(FXObject*, FXSelector sel, void*);
286 
288  long onCmdLaneReachability(FXObject*, FXSelector sel, void*);
289 
291  long onCmdOpenAdditionalDialog(FXObject*, FXSelector, void*);
292 
294  long onCmdResetEdgeEndPoints(FXObject*, FXSelector, void*);
295 
297  long onCmdEditJunctionShape(FXObject*, FXSelector, void*);
298 
300  long onCmdResetJunctionShape(FXObject*, FXSelector, void*);
301 
303  long onCmdReplaceJunction(FXObject*, FXSelector, void*);
304 
306  long onCmdSplitJunction(FXObject*, FXSelector, void*);
307 
309  long onCmdSplitJunctionReconnect(FXObject*, FXSelector, void*);
310 
312  long onCmdSelectRoundabout(FXObject*, FXSelector, void*);
313 
315  long onCmdConvertRoundabout(FXObject*, FXSelector, void*);
316 
318  long onEnterConvertRoundabout(FXObject*, FXSelector, void*);
319 
321  long onLeaveConvertRoundabout(FXObject*, FXSelector, void*);
322 
324  long onCmdClearConnections(FXObject*, FXSelector, void*);
325 
327  long onCmdResetConnections(FXObject*, FXSelector, void*);
328 
330  long onCmdAddTLS(FXObject*, FXSelector, void*);
331 
333  long onCmdAddJoinTLS(FXObject*, FXSelector, void*);
334 
336  long onCmdEditConnectionShape(FXObject*, FXSelector, void*);
337 
339  long onCmdSmoothConnectionShape(FXObject*, FXSelector, void*);
340 
342  long onCmdEditCrossingShape(FXObject*, FXSelector, void*);
343 
345  long onCmdEditWalkingAreaShape(FXObject*, FXSelector, void*);
346 
349 
351  long onCmdToggleSelectEdges(FXObject*, FXSelector, void*);
352 
354  long onCmdToggleShowConnections(FXObject*, FXSelector, void*);
355 
357  long onCmdToggleHideConnections(FXObject*, FXSelector, void*);
358 
360  long onCmdToggleShowAdditionalSubElements(FXObject*, FXSelector, void*);
361 
363  long onCmdToggleShowTAZElements(FXObject*, FXSelector, void*);
364 
366  long onCmdToggleExtendSelection(FXObject*, FXSelector, void*);
367 
369  long onCmdToggleChangeAllPhases(FXObject*, FXSelector, void*);
370 
372  long onCmdToggleShowGrid(FXObject*, FXSelector, void*);
373 
375  long onCmdToggleDrawJunctionShape(FXObject*, FXSelector, void*);
376 
378  long onCmdToggleDrawSpreadVehicles(FXObject*, FXSelector, void*);
379 
381  long onCmdToggleWarnAboutMerge(FXObject*, FXSelector, void*);
382 
384  long onCmdToggleShowJunctionBubbles(FXObject*, FXSelector, void*);
385 
387  long onCmdToggleMoveElevation(FXObject*, FXSelector, void*);
388 
390  long onCmdToggleChainEdges(FXObject*, FXSelector, void*);
391 
393  long onCmdToggleAutoOppositeEdge(FXObject*, FXSelector, void*);
394 
396  long onCmdToggleHideNonInspecteDemandElements(FXObject*, FXSelector, void*);
397 
399  long onCmdToggleShowOverlappedRoutes(FXObject*, FXSelector, void*);
400 
402  long onCmdToggleHideShapes(FXObject*, FXSelector, void*);
403 
405  long onCmdToggleShowTrips(FXObject*, FXSelector, void*);
406 
408  long onCmdToggleShowAllPersonPlans(FXObject*, FXSelector, void*);
409 
411  long onCmdToggleLockPerson(FXObject*, FXSelector, void*);
412 
414  long onCmdToggleShowAllContainerPlans(FXObject*, FXSelector, void*);
415 
417  long onCmdToggleLockContainer(FXObject*, FXSelector, void*);
418 
420  long onCmdToggleShowAdditionals(FXObject*, FXSelector, void*);
421 
423  long onCmdToggleShowShapes(FXObject*, FXSelector, void*);
424 
426  long onCmdToggleShowDemandElementsNetwork(FXObject*, FXSelector, void*);
427 
429  long onCmdToggleShowDemandElementsData(FXObject*, FXSelector, void*);
430 
432  long onCmdToggleTAZRelDrawing(FXObject*, FXSelector, void*);
433 
435  long onCmdToggleTAZDrawFill(FXObject*, FXSelector, void*);
436 
438  long onCmdToggleTAZRelOnlyFrom(FXObject*, FXSelector, void*);
439 
441  long onCmdToggleTAZRelOnlyTo(FXObject*, FXSelector, void*);
442 
444 
447 
449  long onCmdIntervalBarGenericDataType(FXObject*, FXSelector, void*);
450 
452  long onCmdIntervalBarDataSet(FXObject*, FXSelector, void*);
453 
455  long onCmdIntervalBarLimit(FXObject*, FXSelector, void*);
456 
458  long onCmdIntervalBarSetBegin(FXObject*, FXSelector, void*);
459 
461  long onCmdIntervalBarSetEnd(FXObject*, FXSelector, void*);
462 
464  long onCmdIntervalBarSetParameter(FXObject*, FXSelector, void*);
465 
467 
469  long onCmdAddSelected(FXObject*, FXSelector, void*);
470 
472  long onCmdRemoveSelected(FXObject*, FXSelector, void*);
473 
475  long onCmdAddEdgeSelected(FXObject*, FXSelector, void*);
476 
478  long onCmdRemoveEdgeSelected(FXObject*, FXSelector, void*);
479 
481  long onCmdSetNeteditView(FXObject*, FXSelector sel, void*);
482 
484  void abortOperation(bool clearSelection = true);
485 
487  void hotkeyDel();
488 
490  void hotkeyEnter();
491 
493  void hotkeyBackSpace();
494 
496  void hotkeyFocusFrame();
497 
499  GNEViewParent* getViewParent() const;
500 
502  GNENet* getNet() const;
503 
505  GNEUndoList* getUndoList() const;
506 
508  GNEViewNetHelper::IntervalBar& getIntervalBar();
509 
511  const std::vector<GNEAttributeCarrier*>& getInspectedAttributeCarriers() const;
512 
514  GNEViewNetHelper::LockManager& getLockManager();
515 
517  void setInspectedAttributeCarriers(const std::vector<GNEAttributeCarrier*> ACs);
518 
520  bool isAttributeCarrierInspected(const GNEAttributeCarrier* AC) const;
521 
524 
527 
529  const GUIGlObject* getFrontGLObject() const;
530 
533 
535  void drawTranslateFrontAttributeCarrier(const GNEAttributeCarrier* AC, double typeOrLayer, const double extraOffset = 0);
536 
538  bool isMovingElement() const;
539 
541  bool checkOverLockedElement(const GUIGlObject* GLObject, const bool isSelected) const;
542 
545 
547  void setLastCreatedRoute(GNEDemandElement* lastCreatedRoute);
548 
550  void setStatusBarText(const std::string& text);
551 
554 
556  bool autoSelectNodes();
557 
559  void setSelectorFrameScale(double selectionScale);
560 
562  void updateControls();
563 
565  bool changeAllPhases() const;
566 
568  bool showJunctionAsBubbles() const;
569 
571  bool mergeJunctions(GNEJunction* movedJunction, GNEJunction* targetJunction);
572 
574  bool aksChangeSupermode(const std::string& operation, Supermode expectedSupermode);
575 
577  bool selectingDetectorsTLSMode() const;
578 
580  bool selectingJunctionsTLSMode() const;
581 
583  GNEViewNetHelper::SaveElements& getSaveElements();
584 
586  GNEViewNetHelper::TimeFormat& getTimeFormat();
587 
589  bool restrictLane(GNELane* lane, SUMOVehicleClass vclass);
590 
592  bool addRestrictedLane(GNELane* lane, SUMOVehicleClass vclass, const bool insertAtFront);
593 
595  bool removeRestrictedLane(GNELane* lane, SUMOVehicleClass vclass);
596 
597 protected:
599  GNEViewNet();
600 
602  int doPaintGL(int mode, const Boundary& bound);
603 
605  void doInit();
606 
609 
610 private:
613 
616 
619 
622 
624 
627 
630 
632 
635 
638 
640  GNEViewNetHelper::NetworkCheckableButtons myNetworkCheckableButtons;
641 
644 
647 
649 
652 
655 
658 
661 
663 
666 
669 
671  GNEViewNetHelper::MoveSingleElementModul myMoveSingleElement;
672 
674  GNEViewNetHelper::MoveMultipleElementModul myMoveMultipleElements;
675 
676  // @}
677 
680 
683 
686 
687  // @}
688 
691 
694 
697 
699  GNEViewNetHelper::EditNetworkElementShapes myEditNetworkElementShapes;
700 
703 
706 
708  GNENet* myNet = nullptr;
709 
712 
715 
718 
721 
724 
727 
730 
732  bool myCreatedPopup = false;
733 
736 
738  void buildEditModeControls();
739 
742 
745 
748 
750  void deleteNetworkAttributeCarriers(const std::vector<GNEAttributeCarrier*> ACs);
751 
753  void deleteDemandAttributeCarriers(const std::vector<GNEAttributeCarrier*> ACs);
754 
756  void deleteDataAttributeCarriers(const std::vector<GNEAttributeCarrier*> ACs);
757 
760 
763 
766 
769 
772 
775 
778 
781 
784 
787 
790 
792  void processClick(void* eventData);
793 
795  void updateCursor();
796 
799 
801  int drawGLElements(const Boundary& bound);
802 
804  void drawGrid() const;
805 
807  void drawTemporalDrawingShape() const;
808 
810  void drawTemporalJunction() const;
811 
813  void drawTemporalSplitJunction() const;
814 
816  void drawTemporalRoundabout() const;
817 
819  void drawTemporalE1TLSLines() const;
820 
822  void drawTemporalJunctionTLSLines() const;
823 
826 
828  void drawTestsCircle() const;
829 
831 
834 
836  void processLeftButtonPressNetwork(void* eventData);
837 
840 
842  void processMoveMouseNetwork(const bool mouseLeftButtonPressed);
843 
845  void processLeftButtonPressDemand(void* eventData);
846 
849 
851  void processMoveMouseDemand(const bool mouseLeftButtonPressed);
852 
854  void processLeftButtonPressData(void* eventData);
855 
858 
860  void processMoveMouseData(const bool mouseLeftButtonPressed);
861 
863  GNEViewNet(const GNEViewNet&) = delete;
864 
866  GNEViewNet& operator=(const GNEViewNet&) = delete;
867 };
Supermode
@brie enum for supermodes
unsigned int GUIGlID
Definition: GUIGlObject.h:43
GUIGlObjectType
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
A class that stores a 2D geometrical boundary.
Definition: Boundary.h:39
An Element which don't belong to GNENet but has influence in the simulation.
Definition: GNEAdditional.h:49
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
Definition: GNECrossing.h:44
A road/street connecting two junctions (netedit-version)
Definition: GNEEdge.h:53
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
Definition: GNELane.h:46
A NBNetBuilder extended by visualisation and editing capabilities.
Definition: GNENet.h:42
Definition: GNEPOI.h:43
Definition: GNETAZ.h:34
GNEViewNetHelper::EditNetworkElementShapes myEditNetworkElementShapes
struct for grouping all variables related with edit shapes
Definition: GNEViewNet.h:699
long onCmdToggleShowDemandElementsNetwork(FXObject *, FXSelector, void *)
toggle show demand elements (network)
long onCmdClosePolygon(FXObject *, FXSelector, void *)
close opened polygon
long onCmdEditCrossingShape(FXObject *, FXSelector, void *)
edit crossing shape
void processMoveMouseNetwork(const bool mouseLeftButtonPressed)
process move mouse function in Supermode Network
const GNEViewNetHelper::DataViewOptions & getDataViewOptions() const
get data view options
Definition: GNEViewNet.cpp:727
GNENet * getNet() const
get the net object
void deleteNetworkAttributeCarriers(const std::vector< GNEAttributeCarrier * > ACs)
delete given network attribute carriers
long onCmdSetFirstGeometryPoint(FXObject *, FXSelector, void *)
set as first geometry point the closes geometry point
long onCmdEdgeUseAsTemplate(FXObject *, FXSelector, void *)
use edge as template
long onCmdSmoothConnectionShape(FXObject *, FXSelector, void *)
edit connection shape
GNEViewNetHelper::CommonCheckableButtons myCommonCheckableButtons
variable used to save checkable buttons for common supermodes
Definition: GNEViewNet.h:637
long onMouseMove(FXObject *, FXSelector, void *)
called when user moves mouse
const GNEAttributeCarrier * getFrontAttributeCarrier() const
get front attributeCarrier
void hotkeyBackSpace()
handle backspace keypress
GNEDemandElement * myLastCreatedRoute
last created route
Definition: GNEViewNet.h:723
const GNEViewNetHelper::EditModes & getEditModes() const
get edit modes
Definition: GNEViewNet.cpp:703
long onCmdAddSelected(FXObject *, FXSelector, void *)
select AC under cursor
const GNEViewNetHelper::EditNetworkElementShapes & getEditNetworkElementShapes() const
get Edit Shape module
Definition: GNEViewNet.cpp:739
void setFrontAttributeCarrier(GNEAttributeCarrier *AC)
set front attributeCarrier
GNECrossing * getCrossingAtPopupPosition()
try to retrieve a crossing at popup position
void buildViewToolBars(GUIGlChildWindow *v)
builds the view toolbars
Definition: GNEViewNet.cpp:341
void updateNetworkModeSpecificControls()
updates Network mode specific controls
long onCmdAddTLS(FXObject *, FXSelector, void *)
add TLS
long onCmdSmoothEdges(FXObject *, FXSelector, void *)
smooth geometry
long onCmdStraightenEdges(FXObject *, FXSelector, void *)
makes selected edges straight
const GNEViewNetHelper::MouseButtonKeyPressed & getMouseButtonKeyPressed() const
get Key Pressed module
Definition: GNEViewNet.cpp:733
void updateCursor()
update cursor after every click/key press/release
void updateDataModeSpecificControls()
updates Data mode specific controls
GNEEdge * getEdgeAtPopupPosition()
try to retrieve an edge at popup position
long onCmdToggleShowDemandElementsData(FXObject *, FXSelector, void *)
toggle show demand elements (data)
GNEViewNetHelper::EditModes myEditModes
variable used to save variables related with edit moves modes
Definition: GNEViewNet.h:618
long onCmdReplaceJunction(FXObject *, FXSelector, void *)
replace node by geometry
bool restrictLane(GNELane *lane, SUMOVehicleClass vclass)
restrict lane
Definition: GNEViewNet.cpp:975
long onCmdSplitJunction(FXObject *, FXSelector, void *)
split junction into multiple junctions
void drawGrid() const
draw grid and update grid button
long onCmdClearConnections(FXObject *, FXSelector, void *)
clear junction connections
void abortOperation(bool clearSelection=true)
abort current edition operation
long onCmdToggleTAZDrawFill(FXObject *, FXSelector, void *)
toggle TAZdrawFill
long onCmdResetEndPoints(FXObject *, FXSelector, void *)
reset edge end points
void updateObjectsInPosition(const Position &pos)
get objects in the given position
Definition: GNEViewNet.cpp:499
GNEViewNetHelper::TestingMode myTestingMode
variable used to save variables related with testing mode
Definition: GNEViewNet.h:621
GNEDemandElement * getLastCreatedRoute() const
get last created route
long onCmdToggleWarnAboutMerge(FXObject *, FXSelector, void *)
toggle warn for merge
long onCmdToggleDrawSpreadVehicles(FXObject *, FXSelector, void *)
toggle draw vehicles in begin position or spread in lane
GNEPOI * getPOIAtPopupPosition()
try to retrieve a POILane at popup position
GNEViewNetHelper::SelectingArea mySelectingArea
variable used for grouping all variables related with selecting areas
Definition: GNEViewNet.h:696
long onCmdToggleShowConnections(FXObject *, FXSelector, void *)
toggle show connections
void updateObjectsInBoundary(const Boundary &boundary)
get objects in the given boundary
Definition: GNEViewNet.cpp:474
long onCmdLaneReachability(FXObject *, FXSelector sel, void *)
show lane reachability
long onCmdToggleShowTAZElements(FXObject *, FXSelector, void *)
toggle show TAZ elements
GNEViewNetHelper::VehicleOptions myVehicleOptions
variable used to save variables related with vehicle options
Definition: GNEViewNet.h:682
GNEViewNetHelper::NetworkCheckableButtons myNetworkCheckableButtons
variable used to save checkable buttons for Supermode Network
Definition: GNEViewNet.h:640
std::vector< std::string > getEdgeDataAttrs() const
return list of loaded edgeData attributes
bool myCreatedPopup
flag for mark if during this frame a popup was created (needed to avoid problems in linux with Cursor...
Definition: GNEViewNet.h:732
void openSelectDialogAtCursor(const std::vector< GUIGlObject * > &GLObjects)
open select dialog at cursor
Definition: GNEViewNet.cpp:660
void openObjectDialogAtCursor(const FXEvent *ev)
open object dialog
Definition: GNEViewNet.cpp:565
void processClick(void *eventData)
Auxiliary function used by onLeftBtnPress(...)
void drawNeteditAttributesReferences()
draw circle in testing mode (needed for grid)
long onCmdSimplifyShape(FXObject *, FXSelector, void *)
simply shape of current polygon
GNELane * getLaneAtPopupPosition()
try to retrieve a lane at popup position
GNEAttributeCarrier * myFrontAttributeCarrier
front attribute carrier
Definition: GNEViewNet.h:720
GNEViewNetHelper::MouseButtonKeyPressed myMouseButtonKeyPressed
variable used to save key status after certain events
Definition: GNEViewNet.h:629
void recalculateBoundaries()
recalculate boundaries
Definition: GNEViewNet.cpp:298
GNEViewNetHelper::IntervalBar myIntervalBar
variable used to save IntervalBar
Definition: GNEViewNet.h:665
GNEViewParent * myViewParent
view parent
Definition: GNEViewNet.h:705
bool showJunctionAsBubbles() const
return true if junction must be showed as bubbles
Definition: GNEViewNet.cpp:875
bool changeAllPhases() const
change all phases
Definition: GNEViewNet.cpp:869
long onCmdEditJunctionShape(FXObject *, FXSelector, void *)
edit junction shape
long onCmdToggleMoveElevation(FXObject *, FXSelector, void *)
toggle move elevation
GNEWalkingArea * getWalkingAreaAtPopupPosition()
try to retrieve a walkingArea at popup position
long onCmdToggleShowAllPersonPlans(FXObject *, FXSelector, void *)
toggle show all person plans in super mode demand
bool setColorScheme(const std::string &name)
set color scheme
Definition: GNEViewNet.cpp:549
int doPaintGL(int mode, const Boundary &bound)
do paintGL
long onCmdOpenAdditionalDialog(FXObject *, FXSelector, void *)
open additional dialog
long onCmdToggleTAZRelOnlyTo(FXObject *, FXSelector, void *)
toggle TAZRez only to
long onCmdEgeApplyTemplate(FXObject *, FXSelector, void *)
apply template to edge
long onCmdSetNeteditView(FXObject *, FXSelector sel, void *)
called when a new view is set
const GNEViewNetHelper::NetworkViewOptions & getNetworkViewOptions() const
get network view options
Definition: GNEViewNet.cpp:715
void hotkeyFocusFrame()
handle focus frame keypress
long onCmdToggleChainEdges(FXObject *, FXSelector, void *)
toggle chain edges
GNEViewNetHelper::DemandViewOptions myDemandViewOptions
variable used to save variables related with view options in supermode Demand
Definition: GNEViewNet.h:657
void drawTemporalJunctionTLSLines() const
draw temporal Junction TLS Lines
std::vector< std::string > getEdgeLaneParamKeys(bool edgeKeys) const
return list of available edge parameters
long onCmdLaneOperation(FXObject *, FXSelector sel, void *)
add/remove/restrict lane
void processMoveMouseData(const bool mouseLeftButtonPressed)
process move mouse function in Supermode Data
GNEFrame * myCurrentFrame
the current frame
Definition: GNEViewNet.h:711
bool autoSelectNodes()
whether to autoselect nodes or to lanes
Definition: GNEViewNet.cpp:853
void drawTemporalRoundabout() const
draw temporal roundabout
long onCmdToggleLockContainer(FXObject *, FXSelector, void *)
toggle lock container in super mode demand
GNEUndoList * myUndoList
a reference to the undolist maintained in the application
Definition: GNEViewNet.h:714
void drawTranslateFrontAttributeCarrier(const GNEAttributeCarrier *AC, double typeOrLayer, const double extraOffset=0)
draw front attributeCarrier
GNEViewNetHelper::NetworkViewOptions myNetworkViewOptions
variable used to save variables related with view options in supermode Network
Definition: GNEViewNet.h:654
void doInit()
called after some features are already initialized
Definition: GNEViewNet.cpp:327
long onCmdResetEdgeEndPoints(FXObject *, FXSelector, void *)
edit junction shape
void buildEditModeControls()
create edit mode buttons and elements
bool isMovingElement() const
check if an element is being moved
GNEViewNetHelper::MoveSingleElementModul myMoveSingleElement
modul used for moving single element
Definition: GNEViewNet.h:671
long onMiddleBtnRelease(FXObject *, FXSelector, void *)
called when user releases mouse's left button
int getDrawingToggle() const
get draw toggle (used to avoid drawing junctions twice)
GNEViewNetHelper::DataCheckableButtons myDataCheckableButtons
variable used to save checkable buttons for Supermode Data
Definition: GNEViewNet.h:646
long onCmdToggleShowGrid(FXObject *, FXSelector, void *)
toggle show grid
void processLeftButtonPressDemand(void *eventData)
process left button press function in Supermode Demand
GNEDemandElement * getDemandElementAtPopupPosition()
try to retrieve a demand element at popup position
GNEViewNetHelper::TimeFormat myTimeFormat
variable used for grouping all variables related with switch time
Definition: GNEViewNet.h:693
long onLeaveConvertRoundabout(FXObject *, FXSelector, void *)
leave to convert junction to roundabout
GNEViewNetHelper::IntervalBar & getIntervalBar()
get interval bar
long onCmdEditLaneShape(FXObject *, FXSelector, void *)
edit lane shape
long onCmdToggleHideNonInspecteDemandElements(FXObject *, FXSelector, void *)
toggle hide non inspected demand elements
GNEViewParent * getViewParent() const
get the net object
long onCmdToggleDrawJunctionShape(FXObject *, FXSelector, void *)
toggle draw junction shape
bool checkOverLockedElement(const GUIGlObject *GLObject, const bool isSelected) const
check if given element is locked (used for drawing select and delete contour)
long onCmdAddReversedEdge(FXObject *, FXSelector, void *)
add reversed edge
void processLeftButtonReleaseNetwork()
process left button release function in Supermode Network
bool checkSelectEdges() const
check if select edges (toggle using button or shift)
long onMiddleBtnPress(FXObject *, FXSelector, void *)
called when user press mouse's left button
long onCmdAddReversedEdgeDisconnected(FXObject *, FXSelector, void *)
add reversed edge disconnected
long onCmdIntervalBarGenericDataType(FXObject *, FXSelector, void *)
change generic data type in interval bar
long onCmdConvertRoundabout(FXObject *, FXSelector, void *)
convert junction to roundabout
long onCmdRemoveEdgeSelected(FXObject *, FXSelector, void *)
unselect Edge under cursor
long onCmdAddReverse(FXObject *, FXSelector, void *)
add a reverse demand element
long onCmdToggleShowShapes(FXObject *, FXSelector, void *)
toggle show shapes in super mode data
long onRightBtnPress(FXObject *, FXSelector, void *)
called when user press mouse's right button
long onCmdOpenPolygon(FXObject *, FXSelector, void *)
open closed polygon
void buildColorRainbow(const GUIVisualizationSettings &s, GUIColorScheme &scheme, int active, GUIGlObjectType objectType, bool hide=false, double hideThreshold=0, bool hide2=false, double hideThreshold2=0)
recalibrate color scheme according to the current value range
Definition: GNEViewNet.cpp:745
long onCmdSetCustomGeometryPoint(FXObject *, FXSelector, void *)
set custom geometry point
bool removeRestrictedLane(GNELane *lane, SUMOVehicleClass vclass)
remove restricted lane
long onCmdIntervalBarDataSet(FXObject *, FXSelector, void *)
change data set in interval bar
GNEViewNetHelper::SaveElements & getSaveElements()
get variable used to save elements
Definition: GNEViewNet.cpp:963
void processLeftButtonReleaseDemand()
process left button release function in Supermode Demand
void resetLastClickedPosition()
reset last clicked position
Definition: GNEViewNet.cpp:847
const GNEViewNetHelper::TestingMode & getTestingMode() const
get testing mode
Definition: GNEViewNet.cpp:709
GNEUndoList * getUndoList() const
get the undoList object
void processLeftButtonPressData(void *eventData)
process left button press function in Supermode Data
long onCmdTransformPOI(FXObject *, FXSelector, void *)
transform POI to POILane, and vice versa
void saveVisualizationSettings() const
Definition: GNEViewNet.cpp:675
GNEViewNetHelper::SaveElements mySaveElements
variable used for grouping all variables related with salve elements
Definition: GNEViewNet.h:690
const GNEViewNetHelper::MoveMultipleElementModul & getMoveMultipleElementValues() const
get move multiple element values
Definition: GNEViewNet.cpp:532
GNEViewNetHelper::LockManager myLockManager
lock manager
Definition: GNEViewNet.h:702
long onCmdAddEdgeSelected(FXObject *, FXSelector, void *)
select Edge under cursor
long onCmdIntervalBarSetEnd(FXObject *, FXSelector, void *)
change end in interval bar
const GNEViewNetHelper::ViewObjectsSelector & getViewObjectsSelector() const
get objects under cursor
Definition: GNEViewNet.cpp:468
void drawTemporalDrawingShape() const
draw temporal polygon shape in Polygon Mode
void setLastCreatedRoute(GNEDemandElement *lastCreatedRoute)
set last created route
void removeFromAttributeCarrierInspected(const GNEAttributeCarrier *AC)
remove given AC of list of inspected Attribute Carriers
void drawTestsCircle() const
draw circle in testing mode (needed for grid)
long onCmdSplitEdgeBidi(FXObject *, FXSelector, void *)
split edge at cursor position
long onCmdAddJoinTLS(FXObject *, FXSelector, void *)
add Join TLS
GUIGlID getToolTipID()
returns the id of object under cursor to show their tooltip
Definition: GNEViewNet.cpp:331
GNEJunction * getJunctionAtPopupPosition()
try to retrieve a junction at popup position
void drawTemporalSplitJunction() const
draw temporal split junction in create edge mode
long onCmdSetSupermode(FXObject *, FXSelector sel, void *)
long onCmdToggleExtendSelection(FXObject *, FXSelector, void *)
toggle extend selection
GNEViewNetHelper::DemandCheckableButtons myDemandCheckableButtons
variable used to save checkable buttons for Supermode Demand
Definition: GNEViewNet.h:643
const GUIGlObject * getFrontGLObject() const
get front glObject
bool aksChangeSupermode(const std::string &operation, Supermode expectedSupermode)
ask about change supermode
Definition: GNEViewNet.cpp:915
GNETAZ * getTAZAtPopupPosition()
try to retrieve a TAZ at popup position
long onCmdSetMode(FXObject *, FXSelector sel, void *)
called when user press a mode button (Network or demand)
long onCmdResetEdgeEndpoint(FXObject *, FXSelector, void *)
change geometry endpoint
long onCmdIntervalBarSetBegin(FXObject *, FXSelector, void *)
change begin in interval bar
long onCmdResetLength(FXObject *, FXSelector, void *)
reset custom edge lengths
Position myLastClickedPosition
last clicked position
Definition: GNEViewNet.h:729
long onCmdSelectPolygonElements(FXObject *, FXSelector, void *)
select elements within polygon boundary
long onLeftBtnRelease(FXObject *, FXSelector, void *)
called when user releases mouse's left button
long onCmdRemoveSelected(FXObject *, FXSelector, void *)
unselect AC under cursor
long onCmdDeleteGeometryPoint(FXObject *, FXSelector, void *)
delete the closes geometry point
long onCmdDuplicateLane(FXObject *, FXSelector, void *)
duplicate selected lane
std::vector< GNEAttributeCarrier * > myInspectedAttributeCarriers
current inspected attribute carrier
Definition: GNEViewNet.h:717
void processLeftButtonPressNetwork(void *eventData)
mouse process functions
void hotkeyEnter()
handle enter keypress
GNEConnection * getConnectionAtPopupPosition()
try to retrieve a connection at popup position
const std::vector< GNEAttributeCarrier * > & getInspectedAttributeCarriers() const
get inspected attribute carriers
long onKeyPress(FXObject *o, FXSelector sel, void *data)
called when user press a key
long onCmdToggleShowOverlappedRoutes(FXObject *, FXSelector, void *)
toggle hide non inspected demand elements
long onCmdToggleAutoOppositeEdge(FXObject *, FXSelector, void *)
toggle autoOpposite edge
long onCmdSplitEdge(FXObject *, FXSelector, void *)
split edge at cursor position
GNEViewNetHelper::LockManager & getLockManager()
get lock manager
bool mergeJunctions(GNEJunction *movedJunction, GNEJunction *targetJunction)
try to merge moved junction with another junction in that spot return true if merging did take place
Definition: GNEViewNet.cpp:881
long onCmdStraightenEdgesElevation(FXObject *, FXSelector, void *)
interpolate z values linear between junctions
void updateControls()
update control contents after undo/redo or recompute
GNEViewNetHelper::MoveMultipleElementModul myMoveMultipleElements
modul used for moving multiple elements
Definition: GNEViewNet.h:674
long onCmdSplitJunctionReconnect(FXObject *, FXSelector, void *)
split junction into multiple junctions and reconnect them
void buildSelectionACPopupEntry(GUIGLObjectPopupMenu *ret, GNEAttributeCarrier *AC)
Builds an entry which allows to (de)select the object.
Definition: GNEViewNet.cpp:538
void hotkeyDel()
handle del keypress
long onCmdToggleChangeAllPhases(FXObject *, FXSelector, void *)
toggle change all phases
long onEnterConvertRoundabout(FXObject *, FXSelector, void *)
enter to convert junction to roundabout
bool myDrawPreviewRoundabout
draw preview roundabout
Definition: GNEViewNet.h:726
bool isAttributeCarrierInspected(const GNEAttributeCarrier *AC) const
check if attribute carrier is being inspected
long onCmdToggleTAZRelDrawing(FXObject *, FXSelector, void *)
toggle TAZRel drawing
long onCmdToggleShowJunctionBubbles(FXObject *, FXSelector, void *)
toggle show junction bubbles
bool selectingDetectorsTLSMode() const
check if we're selecting detectors in TLS mode
Definition: GNEViewNet.cpp:945
bool selectingJunctionsTLSMode() const
check if we're selecting junctions in TLS mode
Definition: GNEViewNet.cpp:954
long onCmdToggleShowAdditionalSubElements(FXObject *, FXSelector, void *)
toggle show additional sub-elements
long onCmdSmoothEdgesElevation(FXObject *, FXSelector, void *)
smooth elevation with regard to adjoining edges
long onCmdToggleShowAllContainerPlans(FXObject *, FXSelector, void *)
toggle show all container plans in super mode demand
GNEViewNetHelper::VehicleTypeOptions myVehicleTypeOptions
variable used to save variables related with vehicle type options
Definition: GNEViewNet.h:685
long onCmdResetJunctionShape(FXObject *, FXSelector, void *)
reset junction shape
long onCmdToggleTAZRelOnlyFrom(FXObject *, FXSelector, void *)
toggle TAZRez only from
long onRightBtnRelease(FXObject *, FXSelector, void *)
called when user releases mouse's right button
long onCmdIntervalBarSetParameter(FXObject *, FXSelector, void *)
change parameter in interval bar
void drawTemporalE1TLSLines() const
draw temporal E1 TLS Lines
long onCmdReverseEdge(FXObject *, FXSelector, void *)
reverse edge
void deleteDataAttributeCarriers(const std::vector< GNEAttributeCarrier * > ACs)
delete data attribute carriers
void processLeftButtonReleaseData()
process left button release function in Supermode Data
long onCmdToggleShowAdditionals(FXObject *, FXSelector, void *)
toggle show additionals in super mode data
long onCmdToggleLockPerson(FXObject *, FXSelector, void *)
toggle lock person in super mode demand
GNEViewNetHelper::TimeFormat & getTimeFormat()
get variable used to switch between time formats
Definition: GNEViewNet.cpp:969
GNENet * myNet
Pointer to current net. (We are not responsible for deletion)
Definition: GNEViewNet.h:708
GNEPoly * getPolygonAtPopupPosition()
try to retrieve a polygon at popup position
long onCmdToggleSelectEdges(FXObject *, FXSelector, void *)
toggle select edges
GNEViewNetHelper::DataViewOptions myDataViewOptions
variable used to save variables related with view options in supermode Data
Definition: GNEViewNet.h:660
int myDrawingToggle
drawin toggle (used in drawGLElements to avoid draw elements twice)
Definition: GNEViewNet.h:735
long onCmdToggleShowTrips(FXObject *, FXSelector, void *)
toggle show all trips in super mode demand
long onCmdToggleHideShapes(FXObject *, FXSelector, void *)
toggle hide shapes in super mode demand
long onCmdEditEdgeEndpoint(FXObject *, FXSelector, void *)
change geometry endpoint
const GNEViewNetHelper::DemandViewOptions & getDemandViewOptions() const
get demand view options
Definition: GNEViewNet.cpp:721
void deleteDemandAttributeCarriers(const std::vector< GNEAttributeCarrier * > ACs)
delete given demand attribute carriers
void updateViewNet() const
Mark the entire GNEViewNet to be repainted later.
Definition: GNEViewNet.cpp:410
long onCmdToggleHideConnections(FXObject *, FXSelector, void *)
toggle hide connections
void openDeleteDialogAtCursor(const std::vector< GUIGlObject * > &GLObjects)
open delete dialog at cursor
Definition: GNEViewNet.cpp:645
long onKeyRelease(FXObject *o, FXSelector sel, void *data)
called when user release a key
long onCmdResetConnections(FXObject *, FXSelector, void *)
reset junction connections
void setInspectedAttributeCarriers(const std::vector< GNEAttributeCarrier * > ACs)
set inspected attributeCarrier
long onCmdResetLaneCustomShape(FXObject *, FXSelector, void *)
reset custom shapes of selected lanes
bool addRestrictedLane(GNELane *lane, SUMOVehicleClass vclass, const bool insertAtFront)
add restricted lane
void setStatusBarText(const std::string &text)
set statusBar text
Definition: GNEViewNet.cpp:841
long onCmdEditWalkingAreaShape(FXObject *, FXSelector, void *)
edit walkingArea shape
void processMoveMouseDemand(const bool mouseLeftButtonPressed)
process move mouse function in Supermode Demand
long onCmdResetOppositeLane(FXObject *, FXSelector, void *)
reset oppositeLane of current lane
void setSelectorFrameScale(double selectionScale)
set selection scaling (in GNESelectorFrame)
Definition: GNEViewNet.cpp:863
void viewUpdated()
called when view is updated
Definition: GNEViewNet.cpp:423
long onCmdEditConnectionShape(FXObject *, FXSelector, void *)
edit connection shape
void updateDemandModeSpecificControls()
updates Demand mode specific controls
void forceSupemodeNetwork()
force supermode network(used after load/create new network)
Definition: GNEViewNet.cpp:417
GNEAdditional * getAdditionalAtPopupPosition()
try to retrieve a additional at popup position
long onCmdReverse(FXObject *, FXSelector, void *)
reverse current demand element
void drawTemporalJunction() const
draw temporal junction in create edge mode
long onCmdSelectRoundabout(FXObject *, FXSelector, void *)
select all roundabout nodes and edges
long onLeftBtnPress(FXObject *, FXSelector, void *)
std::vector< std::string > getRelDataAttrs() const
return list of loaded edgeRelation and tazRelation attributes
int drawGLElements(const Boundary &bound)
draw functions
long onCmdIntervalBarLimit(FXObject *, FXSelector, void *)
change limit interval in interval bar
GNEViewNetHelper::ViewObjectsSelector myViewObjectsSelector
variable use to select objects in view
Definition: GNEViewNet.h:612
A single child window which contains a view of the simulation area.
Definition: GNEViewParent.h:88
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
The popup menu of a globject.
Stores the information about how to visualize structures.
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:37
Definition: json.hpp:4471