Eclipse SUMO - Simulation of Urban MObility
GNEFrameModules.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-2022 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 // Auxiliar class for GNEFrame Modules
19 /****************************************************************************/
20 #pragma once
21 #include <config.h>
22 
28 
29 // ===========================================================================
30 // class declaration
31 // ===========================================================================
32 
33 class GNEFrame;
34 class GNEDataSet;
35 class GNEDataInterval;
36 
37 // ===========================================================================
38 // class definitions
39 // ===========================================================================
40 
42 
43 public:
44  // ===========================================================================
45  // class TagSelector
46  // ===========================================================================
47 
48  class TagSelector : public FXGroupBoxModule {
51 
52  public:
54  TagSelector(GNEFrame* frameParent, GNETagProperties::TagType type, SumoXMLTag tag, bool onlyDrawables = true);
55 
57  ~TagSelector();
58 
60  void showTagSelector();
61 
63  void hideTagSelector();
64 
67 
70 
72  void setCurrentTagType(GNETagProperties::TagType tagType, const bool onlyDrawables, const bool notifyFrameParent = true);
73 
75  void setCurrentTag(SumoXMLTag newTag, const bool notifyFrameParent = true);
76 
78  void refreshTagSelector();
79 
83  long onCmdSelectTag(FXObject*, FXSelector, void*);
85 
86  protected:
88  FOX_CONSTRUCTOR(TagSelector)
89 
90  private:
91  class ACTemplate {
92 
93  public:
95  ACTemplate(GNENet* net, const GNETagProperties tagProperty);
96 
98  ~ACTemplate();
99 
101  GNEAttributeCarrier* getAC() const;
102 
103  private:
106 
108  ACTemplate(const ACTemplate&) = delete;
109 
111  ACTemplate& operator=(const ACTemplate& src) = delete;
112  };
113 
116 
119 
122 
125 
127  std::vector<ACTemplate*> myACTemplates;
128  };
129 
130  // ===========================================================================
131  // class DemandElementSelector
132  // ===========================================================================
133 
137 
138  public:
140  DemandElementSelector(GNEFrame* frameParent, SumoXMLTag demandElementTag, GNEDemandElement* defaultElement = nullptr);
141 
143  DemandElementSelector(GNEFrame* frameParent, const std::vector<GNETagProperties::TagType>& tagTypes);
144 
147 
150 
151  // @brief obtain allowed tags (derived from tagTypes)
152  const std::vector<SumoXMLTag>& getAllowedTags() const;
153 
155  void setDemandElement(GNEDemandElement* demandElement);
156 
159 
162 
164  bool isDemandElementSelectorShown() const;
165 
168 
171 
174 
178  long onCmdSelectDemandElement(FXObject*, FXSelector, void*);
180 
181  protected:
182  FOX_CONSTRUCTOR(DemandElementSelector)
183 
184  private:
187 
190 
193 
195  std::vector<SumoXMLTag> myDemandElementTags;
196  };
197 
198  // ===========================================================================
199  // class HierarchicalElementTree
200  // ===========================================================================
201 
205 
206  public:
208  HierarchicalElementTree(GNEFrame* frameParent);
209 
212 
215 
218 
221 
224 
228  long onCmdShowChildMenu(FXObject*, FXSelector, void* data);
229 
231  long onCmdCenterItem(FXObject*, FXSelector, void*);
232 
234  long onCmdInspectItem(FXObject*, FXSelector, void*);
235 
237  long onCmdDeleteItem(FXObject*, FXSelector, void*);
238 
240  long onCmdMoveItemUp(FXObject*, FXSelector, void*);
241 
243  long onCmdMoveItemDown(FXObject*, FXSelector, void*);
245 
246  protected:
247  FOX_CONSTRUCTOR(HierarchicalElementTree)
248 
249  // @brief create pop-up menu in the positions X-Y for the clicked attribute carrier
250  void createPopUpMenu(int X, int Y, GNEAttributeCarrier* clickedAC);
251 
253  FXTreeItem* showAttributeCarrierParents();
254 
256  void showHierarchicalElementChildren(GNEHierarchicalElement* HE, FXTreeItem* itemParent);
257 
259  FXTreeItem* addListItem(GNEAttributeCarrier* AC, FXTreeItem* itemParent = nullptr, std::string prefix = "", std::string sufix = "");
260 
262  FXTreeItem* addListItem(FXTreeItem* itemParent, const std::string& text, FXIcon* icon, bool expanded);
263 
264  private:
267 
270 
273 
276 
279 
282 
285 
288 
291 
294 
297 
300 
303 
306 
309 
312 
314  std::map<FXTreeItem*, GNEAttributeCarrier*> myTreeItemToACMap;
315 
317  std::set<FXTreeItem*> myTreeItemsConnections;
318  };
319 
320  // ===========================================================================
321  // class DrawingShape
322  // ===========================================================================
323 
327 
328  public:
330  DrawingShape(GNEFrame* frameParent);
331 
333  ~DrawingShape();
334 
336  void showDrawingShape();
337 
339  void hideDrawingShape();
340 
342  void startDrawing();
343 
345  void stopDrawing();
346 
348  void abortDrawing();
349 
351  void addNewPoint(const Position& P);
352 
354  void removeLastPoint();
355 
357  const PositionVector& getTemporalShape() const;
358 
360  bool isDrawing() const;
361 
363  void setDeleteLastCreatedPoint(bool value);
364 
367 
371  long onCmdStartDrawing(FXObject*, FXSelector, void*);
372 
374  long onCmdStopDrawing(FXObject*, FXSelector, void*);
375 
377  long onCmdAbortDrawing(FXObject*, FXSelector, void*);
379 
380  protected:
381  FOX_CONSTRUCTOR(DrawingShape)
382 
383  private:
386 
389 
392 
395 
398 
401 
404  };
405 
406  // ===========================================================================
407  // class SelectorParent
408  // ===========================================================================
409 
411  public:
413  SelectorParent(GNEFrame* frameParent);
414 
416  ~SelectorParent();
417 
419  std::string getIdSelected() const;
420 
422  void setIDSelected(const std::string& id);
423 
425  bool showSelectorParentModule(const std::vector<SumoXMLTag>& additionalTypeParents);
426 
429 
432 
433  private:
436 
438  std::vector<SumoXMLTag> myParentTags;
439 
441  FXLabel* myParentsLabel;
442 
444  FXList* myParentsList;
445  };
446 
447  // ===========================================================================
448  // class OverlappedInspection
449  // ===========================================================================
450 
454 
455  public:
457  OverlappedInspection(GNEFrame* frameParent);
458 
460  OverlappedInspection(GNEFrame* frameParent, const SumoXMLTag filteredTag);
461 
464 
466  void showOverlappedInspection(const GNEViewNetHelper::ObjectsUnderCursor& objectsUnderCursor, const Position& clickedPosition);
467 
470 
472  bool overlappedInspectionShown() const;
473 
475  int getNumberOfOverlappedACs() const;
476 
478  bool checkSavedPosition(const Position& clickedPosition) const;
479 
481  bool nextElement(const Position& clickedPosition);
482 
484  bool previousElement(const Position& clickedPosition);
485 
488 
490  long onCmdNextElement(FXObject*, FXSelector, void*);
491 
493  long onCmdPreviousElement(FXObject*, FXSelector, void*);
494 
496  long onCmdShowList(FXObject*, FXSelector, void*);
497 
499  long onCmdListItemSelected(FXObject*, FXSelector, void*);
500 
502  long onCmdOverlappingHelp(FXObject*, FXSelector, void*);
504 
505  protected:
508 
510  void buildFXElements();
511 
512  private:
515 
517  FXButton* myPreviousElement;
518 
521 
523  FXButton* myNextElement;
524 
527 
529  FXButton* myHelpButton;
530 
533 
535  std::vector<GNEAttributeCarrier*> myOverlappedACs;
536 
538  size_t myItemIndex;
539 
542  };
543 
544  // ===========================================================================
545  // class PathCreator
546  // ===========================================================================
547 
548  class PathCreator : public FXGroupBoxModule {
551 
552  public:
554  class Path {
555 
556  public:
558  Path(const SUMOVehicleClass vClass, GNEEdge* edge);
559 
561  Path(GNEViewNet* viewNet, const SUMOVehicleClass vClass, GNEEdge* edgeFrom, GNEEdge* edgeTo);
562 
564  const std::vector<GNEEdge*>& getSubPath() const;
565 
567  GNEAdditional* getFromBusStop() const;
568 
570  GNEAdditional* getToBusStop() const;
571 
573  bool isConflictVClass() const;
574 
576  bool isConflictDisconnected() const;
577 
578  protected:
580  std::vector<GNEEdge*> mySubPath;
581 
584 
587 
590 
593 
594  private:
596  Path();
597 
599  Path(Path*) = delete;
600 
602  Path& operator=(Path*) = delete;
603  };
604 
606  PathCreator(GNEFrame* frameParent);
607 
609  ~PathCreator();
610 
612  void showPathCreatorModule(SumoXMLTag element, const bool firstElement, const bool consecutives);
613 
615  void hidePathCreatorModule();
616 
618  SUMOVehicleClass getVClass() const;
619 
621  void setVClass(SUMOVehicleClass vClass);
622 
624  bool addJunction(GNEJunction* junction, const bool shiftKeyPressed, const bool controlKeyPressed);
625 
627  bool addEdge(GNEEdge* edge, const bool shiftKeyPressed, const bool controlKeyPressed);
628 
630  const std::vector<GNEEdge*>& getSelectedEdges() const;
631 
633  const std::vector<GNEJunction*>& getSelectedJunctions() const;
634 
636  bool addStoppingPlace(GNEAdditional* stoppingPlace, const bool shiftKeyPressed, const bool controlKeyPressed);
637 
639  GNEAdditional* getToStoppingPlace(SumoXMLTag expectedTag) const;
640 
642  bool addRoute(GNEDemandElement* route, const bool shiftKeyPressed, const bool controlKeyPressed);
643 
645  GNEDemandElement* getRoute() const;
646 
648  void removeRoute();
649 
651  const std::vector<Path>& getPath() const;
652 
655 
657  void updateJunctionColors();
658 
660  void updateEdgeColors();
661 
663  void clearJunctionColors();
664 
666  void clearEdgeColors();
667 
669  void drawTemporalRoute(const GUIVisualizationSettings& s) const;
670 
672  void createPath();
673 
675  void abortPathCreation();
676 
678  void removeLastElement();
679 
683  long onCmdCreatePath(FXObject*, FXSelector, void*);
684 
686  long onCmdAbortPathCreation(FXObject*, FXSelector, void*);
687 
689  long onCmdRemoveLastElement(FXObject*, FXSelector, void*);
690 
692  long onCmdShowCandidateEdges(FXObject*, FXSelector, void*);
694 
695  protected:
696  FOX_CONSTRUCTOR(PathCreator)
697 
698  // @brief creation mode
699  enum Mode {
700  CONSECUTIVE_EDGES = 1 << 0, // Path's edges are consecutives
701  NONCONSECUTIVE_EDGES = 1 << 1, // Path's edges aren't consecutives
702  START_EDGE = 1 << 2, // Path begins in an edge
703  END_EDGE = 1 << 3, // Path ends in an edge
704  START_JUNCTION = 1 << 4, // Path begins in an edge
705  END_JUNCTION = 1 << 5, // Path ends in an edge
706  SINGLE_ELEMENT = 1 << 6, // Path only had one element
707  ONLY_FROMTO = 1 << 7, // Path only had two elements (first and last)
708  END_BUSSTOP = 1 << 8, // Path ends in a busStop
709  ROUTE = 1 << 9, // Path uses a route
710  REQUIRE_FIRSTELEMENT = 1 << 10, // Path start always in a previous element
711  SHOW_CANDIDATE_EDGES = 1 << 11, // disable candidate edges
712  };
713 
715  void updateInfoRouteLabel();
716 
718  void clearPath();
719 
721  void recalculatePath();
722 
724  void setSpecialCandidates(GNEEdge* originEdge);
725 
727  void setPossibleCandidates(GNEEdge* originEdge, const SUMOVehicleClass vClass);
728 
731 
734 
737 
739  std::vector<GNEJunction*> mySelectedJunctions;
740 
742  std::vector<GNEEdge*> mySelectedEdges;
743 
746 
749 
751  std::vector<Path> myPath;
752 
755 
758 
761 
764 
766  FXCheckButton* myShowCandidateEdges;
767 
769  FXLabel* myShiftLabel;
770 
772  FXLabel* myControlLabel;
773 
774  private:
777 
780  };
781 
782  // ===========================================================================
783  // class PathLegend
784  // ===========================================================================
785 
786  class PathLegend : public FXGroupBoxModule {
787 
788  public:
790  PathLegend(GNEFrame* frameParent);
791 
793  ~PathLegend();
794 
796  void showPathLegendModule();
797 
799  void hidePathLegendModule();
800  };
801 
802  // ===========================================================================
803  // Functions
804  // ===========================================================================
805 
807  static FXLabel* buildRainbow(FXComposite* parent);
808 };
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
SumoXMLTag
Numbers representing SUMO-XML - element names.
FXGroupBoxModule (based on FXGroupBox)
FXTreeListDinamic.
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNEAdditional.h:48
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
Definition: GNECrossing.h:42
An Element which don't belongs to GNENet but has influency in the simulation.
An Element which don't belongs to GNENet but has influency in the simulation.
A road/street connecting two junctions (netedit-version)
Definition: GNEEdge.h:53
long onCmdSelectDemandElement(FXObject *, FXSelector, void *)
DemandElementSelector(GNEFrame *frameParent, SumoXMLTag demandElementTag, GNEDemandElement *defaultElement=nullptr)
FOX-declaration.
GNEFrame * myFrameParent
pointer to frame Parent
GNEDemandElement * myCurrentDemandElement
current demand element
void setDemandElement(GNEDemandElement *demandElement)
set current demand element
const std::vector< SumoXMLTag > & getAllowedTags() const
MFXIconComboBox * myDemandElementsMatchBox
comboBox with the list of elements type
void showDemandElementSelector()
show demand element selector
GNEDemandElement * getCurrentDemandElement() const
get current demand element
GNEEdge * getContainerPlanPreviousEdge() const
get previous edge for the current container plan
void refreshDemandElementSelector()
refresh demand element selector
GNEEdge * getPersonPlanPreviousEdge() const
get previous edge for the current person plan
bool isDemandElementSelectorShown() const
check if demand element selector is shown
std::vector< SumoXMLTag > myDemandElementTags
demand element tags
void hideDemandElementSelector()
hide demand element selector
long onCmdStopDrawing(FXObject *, FXSelector, void *)
Called when the user press stop drawing button.
void setDeleteLastCreatedPoint(bool value)
enable or disable delete last created point
long onCmdStartDrawing(FXObject *, FXSelector, void *)
void stopDrawing()
stop drawing and check if shape can be created
bool getDeleteLastCreatedPoint()
get flag delete last created point
FXButton * myAbortDrawingButton
button for abort drawing
FXLabel * myInformationLabel
Label with information.
const PositionVector & getTemporalShape() const
get Temporal shape
DrawingShape(GNEFrame *frameParent)
FOX-declaration.
long onCmdAbortDrawing(FXObject *, FXSelector, void *)
Called when the user press abort drawing button.
void hideDrawingShape()
hide Drawing mode
FXButton * myStartDrawingButton
button for start drawing
void addNewPoint(const Position &P)
add new point to temporal shape
FXButton * myStopDrawingButton
button for stop drawing
void removeLastPoint()
remove last added point
GNEFrame * myFrameParent
pointer to frame parent
bool myDeleteLastCreatedPoint
flag to enable/disable delete point mode
void showDrawingShape()
show Drawing mode
bool isDrawing() const
return true if currently a shape is drawed
PositionVector myTemporalShape
current drawed shape
std::set< FXTreeItem * > myTreeItemsConnections
set used to save tree items without AC assigned, the Incoming/Outcoming connections
void createPopUpMenu(int X, int Y, GNEAttributeCarrier *clickedAC)
FXTreeListDinamic * myTreeListDinamic
tree list dinamic to show the children of the element to erase
GNEConnection * myClickedConnection
junction (casted from myClickedAC)
GNELane * myClickedLane
lane (casted from myClickedAC)
FXTreeItem * addListItem(GNEAttributeCarrier *AC, FXTreeItem *itemParent=nullptr, std::string prefix="", std::string sufix="")
add item into list
void showHierarchicalElementChildren(GNEHierarchicalElement *HE, FXTreeItem *itemParent)
show children of given hierarchical element
GNEAdditional * myClickedAdditional
additional (casted from myClickedAC)
long onCmdMoveItemDown(FXObject *, FXSelector, void *)
called when user click over option "Move down" of child menu
GNEEdge * myClickedEdge
edge (casted from myClickedAC)
long onCmdCenterItem(FXObject *, FXSelector, void *)
called when user click over option "center" of child Menu
GNEAttributeCarrier * myClickedAC
pointer to current clicked Attribute Carrier
long onCmdShowChildMenu(FXObject *, FXSelector, void *data)
void hideHierarchicalElementTree()
hide HierarchicalElementTree
GNEGenericData * myClickedGenericData
generic data element (casted from myClickedAC)
GNETAZElement * myClickedTAZElement
TAZElement (casted from myClickedAC)
void refreshHierarchicalElementTree()
refresh HierarchicalElementTree
std::map< FXTreeItem *, GNEAttributeCarrier * > myTreeItemToACMap
map used to save the FXTreeItems items with their vinculated AC
void removeCurrentEditedAttributeCarrier(const GNEAttributeCarrier *HE)
if given AttributeCarrier is the same of myHE, set it as nullptr
long onCmdInspectItem(FXObject *, FXSelector, void *)
called when user click over option "inspect" of child menu
GNEDataSet * myClickedDataSet
data set element (casted from myClickedAC)
GNECrossing * myClickedCrossing
crossing (casted from myClickedAC)
long onCmdDeleteItem(FXObject *, FXSelector, void *)
called when user click over option "delete" of child menu
GNEDataInterval * myClickedDataInterval
data interval element (casted from myClickedAC)
GNEDemandElement * myClickedDemandElement
demand element (casted from myClickedAC)
GNEShape * myClickedShape
shape (casted from myClickedAC)
GNEHierarchicalElement * myHE
hierarchical element
GNEJunction * myClickedJunction
junction (casted from myClickedAC)
long onCmdMoveItemUp(FXObject *, FXSelector, void *)
called when user click over option "Move up" of child menu
HierarchicalElementTree(GNEFrame *frameParent)
FOX-declaration.
void showHierarchicalElementTree(GNEAttributeCarrier *AC)
show HierarchicalElementTree
FXTreeItem * showAttributeCarrierParents()
show child of current attributeCarrier
FXButton * myHelpButton
button for help
FXButton * myCurrentIndexButton
Button for current index.
long onCmdListItemSelected(FXObject *, FXSelector, void *)
called when a list item is selected
const SumoXMLTag myFilteredTag
filtered tag
long onCmdShowList(FXObject *, FXSelector, void *)
show list of overlapped elements
void showOverlappedInspection(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor, const Position &clickedPosition)
show template editor
bool overlappedInspectionShown() const
check if overlappedInspection modul is shown
long onCmdOverlappingHelp(FXObject *, FXSelector, void *)
Called when user press the help button.
long onCmdNextElement(FXObject *, FXSelector, void *)
Inspect next Element (from top to bot)
FXButton * myNextElement
Next element button.
std::vector< GNEAttributeCarrier * > myOverlappedACs
objects under cursor
void buildFXElements()
build Fox Toolkit elemements
GNEFrame * myFrameParent
current frame parent
bool checkSavedPosition(const Position &clickedPosition) const
check if given position is near to saved position
size_t myItemIndex
current index item
int getNumberOfOverlappedACs() const
get number of overlapped ACSs
FXList * myOverlappedElementList
list of overlapped elements
FXButton * myPreviousElement
Previous element button.
Position mySavedClickedPosition
saved clicked position
long onCmdPreviousElement(FXObject *, FXSelector, void *)
Inspect previous element (from top to bot)
void hideOverlappedInspection()
hide template editor
bool previousElement(const Position &clickedPosition)
try to go to previous element if clicked position is near to saved position
bool nextElement(const Position &clickedPosition)
try to go to next element if clicked position is near to saved position
GNEAdditional * getToBusStop() const
to additional
bool isConflictVClass() const
check if current path is conflict due vClass
GNEAdditional * myFromBusStop
from additional (usually a busStop)
bool myConflictDisconnected
flag to mark this path as disconnected
GNEAdditional * myToBusStop
to additional (usually a busStop)
std::vector< GNEEdge * > mySubPath
sub path
bool myConflictVClass
flag to mark this path as conflicted
Path & operator=(Path *)=delete
Invalidated assignment operator.
GNEAdditional * getFromBusStop() const
get from additional
bool isConflictDisconnected() const
check if current path is conflict due is disconnected
const std::vector< GNEEdge * > & getSubPath() const
get sub path
Path(Path *)=delete
Invalidated copy constructor.
void setVClass(SUMOVehicleClass vClass)
set vClass
const std::vector< Path > & getPath() const
get path route
GNEFrame * myFrameParent
current frame parent
FXButton * myAbortCreationButton
button for abort route creation
PathCreator(GNEFrame *frameParent)
default constructor
void recalculatePath()
recalculate path
GNEAdditional * getToStoppingPlace(SumoXMLTag expectedTag) const
get to stoppingPlace
bool addEdge(GNEEdge *edge, const bool shiftKeyPressed, const bool controlKeyPressed)
add edge
FXButton * myFinishCreationButton
button for finish route creation
int myCreationMode
current creation mode
void abortPathCreation()
abort path creation
void hidePathCreatorModule()
show PathCreator
long onCmdShowCandidateEdges(FXObject *, FXSelector, void *)
Called when the user click over check button "show candidate edges".
FXLabel * myInfoRouteLabel
label with route info
SUMOVehicleClass getVClass() const
get vClass
long onCmdCreatePath(FXObject *, FXSelector, void *)
PathCreator(PathCreator *)=delete
Invalidated copy constructor.
std::vector< GNEEdge * > mySelectedEdges
vector with selected edges
GNEAdditional * myToStoppingPlace
to additional (usually a busStop)
long onCmdAbortPathCreation(FXObject *, FXSelector, void *)
Called when the user click over button "Abort route creation".
void setSpecialCandidates(GNEEdge *originEdge)
set special candidates (This function will be called recursively)
FXButton * myRemoveLastInsertedElement
button for removing last inserted element
void clearEdgeColors()
clear edge colors
PathCreator & operator=(PathCreator *)=delete
Invalidated assignment operator.
void updateInfoRouteLabel()
update InfoRouteLabel
void setPossibleCandidates(GNEEdge *originEdge, const SUMOVehicleClass vClass)
set edgereachability (This function will be called recursively)
FXCheckButton * myShowCandidateEdges
CheckBox for show candidate edges.
void updateJunctionColors()
update junction colors
GNEDemandElement * myRoute
route (usually a busStop)
GNEDemandElement * getRoute() const
get route
void clearPath()
clear edges (and restore colors)
const std::vector< GNEEdge * > & getSelectedEdges() const
get current selected edges
FXLabel * myControlLabel
label for control information
void clearJunctionColors()
clear junction colors
bool drawCandidateEdgesWithSpecialColor() const
draw candidate edges with special color (Only for candidates, special and conflicted)
FXLabel * myShiftLabel
label for shift information
void removeLastElement()
remove path element
SUMOVehicleClass myVClass
current vClass
void updateEdgeColors()
update edge colors
bool addRoute(GNEDemandElement *route, const bool shiftKeyPressed, const bool controlKeyPressed)
add route
bool addJunction(GNEJunction *junction, const bool shiftKeyPressed, const bool controlKeyPressed)
add junction
const std::vector< GNEJunction * > & getSelectedJunctions() const
get current selected junctions
std::vector< GNEJunction * > mySelectedJunctions
vector with selected junctions
void drawTemporalRoute(const GUIVisualizationSettings &s) const
draw temporal route
long onCmdRemoveLastElement(FXObject *, FXSelector, void *)
Called when the user click over button "Remove las inserted edge".
std::vector< Path > myPath
vector with current path
bool addStoppingPlace(GNEAdditional *stoppingPlace, const bool shiftKeyPressed, const bool controlKeyPressed)
add stoppingPlace
void showPathCreatorModule(SumoXMLTag element, const bool firstElement, const bool consecutives)
show PathCreator for the given tag
PathLegend(GNEFrame *frameParent)
constructor
void hidePathLegendModule()
hide Legend modul
void showPathLegendModule()
show Legend modul
SelectorParent(GNEFrame *frameParent)
constructor
GNEFrame * myFrameParent
pointer to Frame Parent
void setIDSelected(const std::string &id)
select manually a element of the list
FXLabel * myParentsLabel
Label with parent name.
std::vector< SumoXMLTag > myParentTags
current parent additional tag
FXList * myParentsList
List of parents.
std::string getIdSelected() const
get currently parent additional selected
void refreshSelectorParentModule()
Refresh list of Additional Parents Module.
void hideSelectorParentModule()
hide SelectorParent Module
bool showSelectorParentModule(const std::vector< SumoXMLTag > &additionalTypeParents)
Show list of SelectorParent Module.
ACTemplate & operator=(const ACTemplate &src)=delete
Invalidated assignment operator.
ACTemplate(const ACTemplate &)=delete
Invalidated copy constructor.
GNEAttributeCarrier * getAC() const
get template AC
GNEAttributeCarrier * myAC
editedAC
ACTemplate(GNENet *net, const GNETagProperties tagProperty)
constructor
GNETagProperties::TagType myTagType
current tagType
void hideTagSelector()
hide item selector
long onCmdSelectTag(FXObject *, FXSelector, void *)
GNEAttributeCarrier * getTemplateAC(SumoXMLTag ACTag) const
get templateAC
void setCurrentTag(SumoXMLTag newTag, const bool notifyFrameParent=true)
set current type manually
void refreshTagSelector()
refresh tagSelector (used when frameParent is show)
GNEFrame * myFrameParent
pointer to Frame Parent
MFXIconComboBox * myTagsMatchBox
comboBox with the tags
void setCurrentTagType(GNETagProperties::TagType tagType, const bool onlyDrawables, const bool notifyFrameParent=true)
set current type manually
TagSelector(GNEFrame *frameParent, GNETagProperties::TagType type, SumoXMLTag tag, bool onlyDrawables=true)
FOX-declaration.
std::vector< ACTemplate * > myACTemplates
list with ACTemplates
GNEAttributeCarrier * getCurrentTemplateAC() const
get current templateAC
void showTagSelector()
show item selector
GNEAttributeCarrier * myCurrentTemplateAC
current templateAC;
static FXLabel * buildRainbow(FXComposite *parent)
build rainbow in frame modul
An Element which don't belongs to GNENet but has influency in the simulation.
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
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNETAZElement.h:45
class used to group all variables related with objects under cursor after a click over view
Stores the information about how to visualize structures.
ComboBox with icon.
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:37
A list of positions.