Eclipse SUMO - Simulation of Urban MObility
GNECrossingFrame.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-2019 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 /****************************************************************************/
14 // The Widget for add Crossing elements
15 /****************************************************************************/
16 #ifndef GNECrossingFrame_h
17 #define GNECrossingFrame_h
18 
19 
20 // ===========================================================================
21 // included modules
22 // ===========================================================================
23 #include "GNEFrame.h"
24 
25 // ===========================================================================
26 // class definitions
27 // ===========================================================================
32 class GNECrossingFrame : public GNEFrame {
33 
34 public:
35 
36  // ===========================================================================
37  // class CurrentJunction
38  // ===========================================================================
39 
40  class CurrentJunction : protected FXGroupBox {
41 
42  public:
44  CurrentJunction(GNECrossingFrame* crossingFrameParent);
45 
48 
50  void updateCurrentJunctionLabel(const std::string& junctionID);
51 
52  private:
55 
56  };
57 
58  // ===========================================================================
59  // class EdgesSelector
60  // ===========================================================================
61 
62  class EdgesSelector : protected FXGroupBox {
65 
66  public:
68  EdgesSelector(GNECrossingFrame* crossingFrameParent);
69 
72 
75 
77  void enableEdgeSelector(GNEJunction* currentJunction);
78 
80  void disableEdgeSelector();
81 
83  void restoreEdgeColors();
84 
88  long onCmdUseSelectedEdges(FXObject*, FXSelector, void*);
89 
91  long onCmdClearSelection(FXObject*, FXSelector, void*);
92 
94  long onCmdInvertSelection(FXObject*, FXSelector, void*);
96 
97  protected:
99 
100  private:
103 
106 
109 
112 
115  };
116 
117  // ===========================================================================
118  // class CrossingParameters
119  // ===========================================================================
120 
121  class CrossingParameters : protected FXGroupBox {
124 
125  public:
127  CrossingParameters(GNECrossingFrame* crossingFrameParent);
128 
131 
133  void enableCrossingParameters(bool hasTLS);
134 
137 
139  bool isCrossingParametersEnabled() const;
140 
142  void markEdge(GNEEdge* edge);
143 
145  void clearEdges();
146 
148  void invertEdges(GNEJunction* parentJunction);
149 
151  void useSelectedEdges(GNEJunction* parentJunction);
152 
154  std::vector<NBEdge*> getCrossingEdges() const;
155 
157  bool getCrossingPriority() const;
158 
160  double getCrossingWidth() const;
161 
163  bool isCurrentParametersValid() const;
164 
168  long onCmdSetAttribute(FXObject*, FXSelector, void*);
169 
171  long onCmdHelp(FXObject*, FXSelector, void*);
173 
174  protected:
176 
177  private:
180 
182  std::vector<GNEEdge*> myCurrentSelectedEdges;
183 
186 
188  FXTextField* myCrossingEdges;
189 
192 
195 
198 
200  FXTextField* myCrossingWidth;
201 
204 
207  };
208 
209  // ===========================================================================
210  // class CreateCrossing
211  // ===========================================================================
212 
213  class CreateCrossing : protected FXGroupBox {
216 
217  public:
219  CreateCrossing(GNECrossingFrame* crossingFrameParent);
220 
222  ~CreateCrossing();
223 
225  void setCreateCrossingButton(bool value);
226 
230  long onCmdCreateCrossing(FXObject*, FXSelector, void*);
232 
233  protected:
235 
236  private:
239 
242  };
243 
248  GNECrossingFrame(FXHorizontalFrame* horizontalFrameParent, GNEViewNet* viewNet);
249 
252 
254  void hide();
255 
259  void addCrossing(const GNEViewNetHelper::ObjectsUnderCursor& objectsUnderCursor);
260 
262  void createCrossingHotkey();
263 
264 protected:
266 
267 private:
270 
273 
276 
279 };
280 
281 
282 #endif
283 
284 /****************************************************************************/
GNECrossingFrame::CrossingParameters
Definition: GNECrossingFrame.h:121
GNECrossingFrame::CrossingParameters::isCrossingParametersEnabled
bool isCrossingParametersEnabled() const
check if currently the CrossingParameters is enabled
Definition: GNECrossingFrame.cpp:272
GNECrossingFrame::CrossingParameters::enableCrossingParameters
void enableCrossingParameters(bool hasTLS)
enable crossing parameters and set the default value of parameters
Definition: GNECrossingFrame.cpp:223
GNECrossingFrame::CrossingParameters::markEdge
void markEdge(GNEEdge *edge)
mark or dismark edge
Definition: GNECrossingFrame.cpp:278
GNECrossingFrame::CurrentJunction::updateCurrentJunctionLabel
void updateCurrentJunctionLabel(const std::string &junctionID)
set current junction label
Definition: GNECrossingFrame.cpp:79
GNECrossingFrame::myEdgeSelector
GNECrossingFrame::EdgesSelector * myEdgeSelector
edge selector modul
Definition: GNECrossingFrame.h:272
GNECrossingFrame
Definition: GNECrossingFrame.h:32
GNECrossingFrame::CreateCrossing::myCreateCrossingButton
FXButton * myCreateCrossingButton
@field FXButton for create Crossing
Definition: GNECrossingFrame.h:241
GNECrossingFrame::EdgesSelector::restoreEdgeColors
void restoreEdgeColors()
restore colors of all edges
Definition: GNECrossingFrame.cpp:151
GNECrossingFrame::CrossingParameters::isCurrentParametersValid
bool isCurrentParametersValid() const
check if current parameters are valid
Definition: GNECrossingFrame.cpp:358
GNECrossingFrame::EdgesSelector::myInvertEdgesSelection
FXButton * myInvertEdgesSelection
button for invert selection
Definition: GNECrossingFrame.h:111
GNECrossingFrame::CrossingParameters::onCmdHelp
long onCmdHelp(FXObject *, FXSelector, void *)
Called when help button is pressed.
Definition: GNECrossingFrame.cpp:449
GNEFrame
Definition: GNEFrame.h:34
GNEViewNet
Definition: GNEViewNet.h:42
GNECrossingFrame::CrossingParameters::clearEdges
void clearEdges()
clear edges
Definition: GNECrossingFrame.cpp:301
GNECrossingFrame::EdgesSelector::EdgesSelector
EdgesSelector(GNECrossingFrame *crossingFrameParent)
FOX-declaration.
Definition: GNECrossingFrame.cpp:91
GNECrossingFrame::CrossingParameters::CrossingParameters
CrossingParameters(GNECrossingFrame *crossingFrameParent)
FOX-declaration.
Definition: GNECrossingFrame.cpp:190
GNECrossingFrame::CrossingParameters::myCrossingFrameParent
GNECrossingFrame * myCrossingFrameParent
pointer to GNECrossingFrame parent
Definition: GNECrossingFrame.h:179
GNECrossingFrame::CreateCrossing::~CreateCrossing
~CreateCrossing()
destructor
Definition: GNECrossingFrame.cpp:467
GNECrossingFrame::EdgesSelector
Definition: GNECrossingFrame.h:62
GNEEdge
A road/street connecting two junctions (netedit-version)
Definition: GNEEdge.h:51
GNECrossingFrame::myCreateCrossing
GNECrossingFrame::CreateCrossing * myCreateCrossing
create crossing modul
Definition: GNECrossingFrame.h:278
GNECrossingFrame::CrossingParameters::myCurrentSelectedEdges
std::vector< GNEEdge * > myCurrentSelectedEdges
current selected edges
Definition: GNECrossingFrame.h:182
GNECrossingFrame::EdgesSelector::~EdgesSelector
~EdgesSelector()
destructor
Definition: GNECrossingFrame.cpp:107
GNECrossingFrame::createCrossingHotkey
void createCrossingHotkey()
create crossing (used when user press ENTER key in Crossing mode)
Definition: GNECrossingFrame.cpp:574
GNECrossingFrame::CrossingParameters::getCrossingWidth
double getCrossingWidth() const
get crossing width
Definition: GNECrossingFrame.cpp:364
GNECrossingFrame::CreateCrossing::CreateCrossing
CreateCrossing(GNECrossingFrame *crossingFrameParent)
FOX-declaration.
Definition: GNECrossingFrame.cpp:458
GNEViewNetHelper::ObjectsUnderCursor
class used to group all variables related with objects under cursor after a click over view
Definition: GNEViewNetHelper.h:148
GNECrossingFrame::hide
void hide()
hide crossing frame
Definition: GNECrossingFrame.cpp:538
GNECrossingFrame::CreateCrossing
Definition: GNECrossingFrame.h:213
GNECrossingFrame::CrossingParameters::disableCrossingParameters
void disableCrossingParameters()
disable crossing parameters and clear parameters
Definition: GNECrossingFrame.cpp:253
GNECrossingFrame::CrossingParameters::invertEdges
void invertEdges(GNEJunction *parentJunction)
invert edges
Definition: GNECrossingFrame.cpp:309
GNECrossingFrame::EdgesSelector::enableEdgeSelector
void enableEdgeSelector(GNEJunction *currentJunction)
enable edgeSelector
Definition: GNECrossingFrame.cpp:117
FOX_CONSTRUCTOR
#define FOX_CONSTRUCTOR(classname)
Definition: config.h:13
GNECrossingFrame::myCurrentJunction
GNECrossingFrame::CurrentJunction * myCurrentJunction
current junction modul
Definition: GNECrossingFrame.h:269
GNECrossingFrame::CrossingParameters::myCurrentParametersValid
bool myCurrentParametersValid
flag to check if current parameters are valid
Definition: GNECrossingFrame.h:206
GNECrossingFrame::GNECrossingFrame
GNECrossingFrame(FXHorizontalFrame *horizontalFrameParent, GNEViewNet *viewNet)
Constructor.
Definition: GNECrossingFrame.cpp:507
GNECrossingFrame::CurrentJunction::CurrentJunction
CurrentJunction(GNECrossingFrame *crossingFrameParent)
constructor
Definition: GNECrossingFrame.cpp:68
GNECrossingFrame::CreateCrossing::setCreateCrossingButton
void setCreateCrossingButton(bool value)
enable or disable button create crossing
Definition: GNECrossingFrame.cpp:495
GNECrossingFrame::CurrentJunction
Definition: GNECrossingFrame.h:40
GNECrossingFrame::CreateCrossing::onCmdCreateCrossing
long onCmdCreateCrossing(FXObject *, FXSelector, void *)
Definition: GNECrossingFrame.cpp:471
GNECrossingFrame::EdgesSelector::disableEdgeSelector
void disableEdgeSelector()
disable edgeSelector
Definition: GNECrossingFrame.cpp:138
GNECrossingFrame::EdgesSelector::getCurrentJunction
GNEJunction * getCurrentJunction() const
get current junction
Definition: GNECrossingFrame.cpp:111
GNECrossingFrame::EdgesSelector::myCrossingFrameParent
GNECrossingFrame * myCrossingFrameParent
pointer to GNECrossingFrame parent
Definition: GNECrossingFrame.h:102
GNECrossingFrame::EdgesSelector::myCurrentJunction
GNEJunction * myCurrentJunction
current Junction
Definition: GNECrossingFrame.h:114
GNECrossingFrame::EdgesSelector::onCmdClearSelection
long onCmdClearSelection(FXObject *, FXSelector, void *)
called when clear selection button is pressed
Definition: GNECrossingFrame.cpp:174
GNECrossingFrame::myCrossingParameters
GNECrossingFrame::CrossingParameters * myCrossingParameters
crossing parameters modul
Definition: GNECrossingFrame.h:275
GNECrossingFrame::CrossingParameters::myCrossingPriorityLabel
FXLabel * myCrossingPriorityLabel
Label for Priority.
Definition: GNECrossingFrame.h:191
GNECrossingFrame::~GNECrossingFrame
~GNECrossingFrame()
Destructor.
Definition: GNECrossingFrame.cpp:533
GNECrossingFrame::CreateCrossing::myCrossingFrameParent
GNECrossingFrame * myCrossingFrameParent
pointer to crossingFrame parent
Definition: GNECrossingFrame.h:238
GNECrossingFrame::CrossingParameters::myHelpCrossingAttribute
FXButton * myHelpCrossingAttribute
button for help
Definition: GNECrossingFrame.h:203
GNECrossingFrame::CrossingParameters::useSelectedEdges
void useSelectedEdges(GNEJunction *parentJunction)
use selected eges
Definition: GNECrossingFrame.cpp:323
GNECrossingFrame::EdgesSelector::onCmdInvertSelection
long onCmdInvertSelection(FXObject *, FXSelector, void *)
called when invert selection button is pressed
Definition: GNECrossingFrame.cpp:181
GNECrossingFrame::CrossingParameters::myCrossingPriorityCheckButton
FXCheckButton * myCrossingPriorityCheckButton
CheckBox for Priority.
Definition: GNECrossingFrame.h:194
GNECrossingFrame::CrossingParameters::onCmdSetAttribute
long onCmdSetAttribute(FXObject *, FXSelector, void *)
Definition: GNECrossingFrame.cpp:370
GNECrossingFrame::CurrentJunction::~CurrentJunction
~CurrentJunction()
destructor
Definition: GNECrossingFrame.cpp:75
GNECrossingFrame::CrossingParameters::~CrossingParameters
~CrossingParameters()
destructor
Definition: GNECrossingFrame.cpp:219
GNECrossingFrame::addCrossing
void addCrossing(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor)
add Crossing element
Definition: GNECrossingFrame.cpp:547
GNECrossingFrame::CrossingParameters::myCrossingEdges
FXTextField * myCrossingEdges
TextField for edges.
Definition: GNECrossingFrame.h:188
GNECrossingFrame::CrossingParameters::myCrossingWidth
FXTextField * myCrossingWidth
TextField for width.
Definition: GNECrossingFrame.h:200
GNECrossingFrame::CrossingParameters::myCrossingEdgesLabel
FXLabel * myCrossingEdgesLabel
Label for edges.
Definition: GNECrossingFrame.h:185
GNEJunction
Definition: GNEJunction.h:47
GNECrossingFrame::CrossingParameters::myCrossingWidthLabel
FXLabel * myCrossingWidthLabel
Label for width.
Definition: GNECrossingFrame.h:197
GNECrossingFrame::CrossingParameters::getCrossingPriority
bool getCrossingPriority() const
get crossing priority
Definition: GNECrossingFrame.cpp:348
GNEFrame.h
GNECrossingFrame::EdgesSelector::myClearEdgesSelection
FXButton * myClearEdgesSelection
button for clear selection
Definition: GNECrossingFrame.h:108
GNECrossingFrame::EdgesSelector::onCmdUseSelectedEdges
long onCmdUseSelectedEdges(FXObject *, FXSelector, void *)
Definition: GNECrossingFrame.cpp:167
GNECrossingFrame::EdgesSelector::myUseSelectedEdges
FXButton * myUseSelectedEdges
CheckBox for selected edges.
Definition: GNECrossingFrame.h:105
GNECrossingFrame::CurrentJunction::myCurrentJunctionLabel
FXLabel * myCurrentJunctionLabel
Label for current Junction.
Definition: GNECrossingFrame.h:54
GNECrossingFrame::CrossingParameters::getCrossingEdges
std::vector< NBEdge * > getCrossingEdges() const
get crossing NBedges
Definition: GNECrossingFrame.cpp:337