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 /****************************************************************************/
15 // The Widget for add Crossing elements
16 /****************************************************************************/
17 #ifndef GNECrossingFrame_h
18 #define GNECrossingFrame_h
19 
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 #include "GNEFrame.h"
25 
26 // ===========================================================================
27 // class definitions
28 // ===========================================================================
33 class GNECrossingFrame : public GNEFrame {
34 
35 public:
36 
37  // ===========================================================================
38  // class CurrentJunction
39  // ===========================================================================
40 
41  class CurrentJunction : protected FXGroupBox {
42 
43  public:
45  CurrentJunction(GNECrossingFrame* crossingFrameParent);
46 
49 
51  void updateCurrentJunctionLabel(const std::string& junctionID);
52 
53  private:
56 
57  };
58 
59  // ===========================================================================
60  // class EdgesSelector
61  // ===========================================================================
62 
63  class EdgesSelector : protected FXGroupBox {
66 
67  public:
69  EdgesSelector(GNECrossingFrame* crossingFrameParent);
70 
73 
76 
78  void enableEdgeSelector(GNEJunction* currentJunction);
79 
81  void disableEdgeSelector();
82 
84  void restoreEdgeColors();
85 
89  long onCmdUseSelectedEdges(FXObject*, FXSelector, void*);
90 
92  long onCmdClearSelection(FXObject*, FXSelector, void*);
93 
95  long onCmdInvertSelection(FXObject*, FXSelector, void*);
97 
98  protected:
101 
102  private:
105 
108 
111 
114 
117  };
118 
119  // ===========================================================================
120  // class CrossingParameters
121  // ===========================================================================
122 
123  class CrossingParameters : protected FXGroupBox {
126 
127  public:
129  CrossingParameters(GNECrossingFrame* crossingFrameParent);
130 
133 
135  void enableCrossingParameters(bool hasTLS);
136 
139 
141  bool isCrossingParametersEnabled() const;
142 
144  void markEdge(GNEEdge* edge);
145 
147  void clearEdges();
148 
150  void invertEdges(GNEJunction* parentJunction);
151 
153  void useSelectedEdges(GNEJunction* parentJunction);
154 
156  std::vector<NBEdge*> getCrossingEdges() const;
157 
159  bool getCrossingPriority() const;
160 
162  double getCrossingWidth() const;
163 
165  bool isCurrentParametersValid() const;
166 
170  long onCmdSetAttribute(FXObject*, FXSelector, void*);
171 
173  long onCmdHelp(FXObject*, FXSelector, void*);
175 
176  protected:
179 
180  private:
183 
185  std::vector<GNEEdge*> myCurrentSelectedEdges;
186 
189 
191  FXTextField* myCrossingEdges;
192 
195 
198 
201 
203  FXTextField* myCrossingWidth;
204 
207 
210  };
211 
212  // ===========================================================================
213  // class CreateCrossing
214  // ===========================================================================
215 
216  class CreateCrossing : protected FXGroupBox {
219 
220  public:
222  CreateCrossing(GNECrossingFrame* crossingFrameParent);
223 
225  ~CreateCrossing();
226 
228  void setCreateCrossingButton(bool value);
229 
233  long onCmdCreateCrossing(FXObject*, FXSelector, void*);
235 
236  protected:
239 
240  private:
243 
246  };
247 
252  GNECrossingFrame(FXHorizontalFrame* horizontalFrameParent, GNEViewNet* viewNet);
253 
256 
258  void hide();
259 
263  void addCrossing(const GNEViewNetHelper::ObjectsUnderCursor& objectsUnderCursor);
264 
266  void createCrossingHotkey();
267 
268 protected:
271 
272 private:
275 
278 
281 
284 };
285 
286 
287 #endif
288 
289 /****************************************************************************/
GNECrossingFrame::CrossingParameters
Definition: GNECrossingFrame.h:123
GNECrossingFrame::CrossingParameters::isCrossingParametersEnabled
bool isCrossingParametersEnabled() const
check if currently the CrossingParameters is enabled
Definition: GNECrossingFrame.cpp:268
GNECrossingFrame::CrossingParameters::enableCrossingParameters
void enableCrossingParameters(bool hasTLS)
enable crossing parameters and set the default value of parameters
Definition: GNECrossingFrame.cpp:224
GNECrossingFrame::CrossingParameters::markEdge
void markEdge(GNEEdge *edge)
mark or dismark edge
Definition: GNECrossingFrame.cpp:274
GNECrossingFrame::CurrentJunction::updateCurrentJunctionLabel
void updateCurrentJunctionLabel(const std::string &junctionID)
set current junction label
Definition: GNECrossingFrame.cpp:80
GNECrossingFrame::myEdgeSelector
GNECrossingFrame::EdgesSelector * myEdgeSelector
edge selector modul
Definition: GNECrossingFrame.h:277
GNECrossingFrame
Definition: GNECrossingFrame.h:33
GNECrossingFrame::CreateCrossing::myCreateCrossingButton
FXButton * myCreateCrossingButton
@field FXButton for create Crossing
Definition: GNECrossingFrame.h:245
GNECrossingFrame::EdgesSelector::restoreEdgeColors
void restoreEdgeColors()
restore colors of all edges
Definition: GNECrossingFrame.cpp:152
GNECrossingFrame::CrossingParameters::isCurrentParametersValid
bool isCurrentParametersValid() const
check if current parameters are valid
Definition: GNECrossingFrame.cpp:354
GNECrossingFrame::EdgesSelector::myInvertEdgesSelection
FXButton * myInvertEdgesSelection
button for invert selection
Definition: GNECrossingFrame.h:113
GNECrossingFrame::CrossingParameters::onCmdHelp
long onCmdHelp(FXObject *, FXSelector, void *)
Called when help button is pressed.
Definition: GNECrossingFrame.cpp:445
GNEFrame
Definition: GNEFrame.h:35
GNEViewNet
Definition: GNEViewNet.h:43
GNECrossingFrame::CrossingParameters::clearEdges
void clearEdges()
clear edges
Definition: GNECrossingFrame.cpp:297
GNECrossingFrame::CrossingParameters::myCrossingFrameParent
GNECrossingFrame * myCrossingFrameParent
pointer to GNECrossingFrame parent
Definition: GNECrossingFrame.h:182
GNECrossingFrame::CreateCrossing::~CreateCrossing
~CreateCrossing()
destructor
Definition: GNECrossingFrame.cpp:463
GNECrossingFrame::EdgesSelector
Definition: GNECrossingFrame.h:63
GNEEdge
A road/street connecting two junctions (netedit-version)
Definition: GNEEdge.h:50
GNECrossingFrame::myCreateCrossing
GNECrossingFrame::CreateCrossing * myCreateCrossing
create crossing modul
Definition: GNECrossingFrame.h:283
GNECrossingFrame::CrossingParameters::myCurrentSelectedEdges
std::vector< GNEEdge * > myCurrentSelectedEdges
current selected edges
Definition: GNECrossingFrame.h:185
GNECrossingFrame::EdgesSelector::~EdgesSelector
~EdgesSelector()
destructor
Definition: GNECrossingFrame.cpp:108
GNECrossingFrame::CreateCrossing::CreateCrossing
CreateCrossing()
FOX needs this.
Definition: GNECrossingFrame.h:238
GNECrossingFrame::createCrossingHotkey
void createCrossingHotkey()
create crossing (used when user press ENTER key in Crossing mode)
Definition: GNECrossingFrame.cpp:570
GNECrossingFrame::CrossingParameters::getCrossingWidth
double getCrossingWidth() const
get crossing width
Definition: GNECrossingFrame.cpp:360
GNEViewNetHelper::ObjectsUnderCursor
class used to group all variables related with objects under cursor after a click over view
Definition: GNEViewNetHelper.h:149
GNECrossingFrame::hide
void hide()
hide crossing frame
Definition: GNECrossingFrame.cpp:534
GNECrossingFrame::CreateCrossing
Definition: GNECrossingFrame.h:216
GNECrossingFrame::CrossingParameters::disableCrossingParameters
void disableCrossingParameters()
disable crossing parameters and clear parameters
Definition: GNECrossingFrame.cpp:249
GNECrossingFrame::CrossingParameters::invertEdges
void invertEdges(GNEJunction *parentJunction)
invert edges
Definition: GNECrossingFrame.cpp:305
GNECrossingFrame::EdgesSelector::enableEdgeSelector
void enableEdgeSelector(GNEJunction *currentJunction)
enable edgeSelector
Definition: GNECrossingFrame.cpp:118
GNECrossingFrame::myCurrentJunction
GNECrossingFrame::CurrentJunction * myCurrentJunction
current junction modul
Definition: GNECrossingFrame.h:274
GNECrossingFrame::CrossingParameters::myCurrentParametersValid
bool myCurrentParametersValid
flag to check if current parameters are valid
Definition: GNECrossingFrame.h:209
GNECrossingFrame::CrossingParameters::CrossingParameters
CrossingParameters()
FOX needs this.
Definition: GNECrossingFrame.h:178
GNECrossingFrame::CurrentJunction::CurrentJunction
CurrentJunction(GNECrossingFrame *crossingFrameParent)
constructor
Definition: GNECrossingFrame.cpp:69
GNECrossingFrame::CreateCrossing::setCreateCrossingButton
void setCreateCrossingButton(bool value)
enable or disable button create crossing
Definition: GNECrossingFrame.cpp:491
GNECrossingFrame::CurrentJunction
Definition: GNECrossingFrame.h:41
GNECrossingFrame::CreateCrossing::onCmdCreateCrossing
long onCmdCreateCrossing(FXObject *, FXSelector, void *)
Definition: GNECrossingFrame.cpp:467
GNECrossingFrame::EdgesSelector::disableEdgeSelector
void disableEdgeSelector()
disable edgeSelector
Definition: GNECrossingFrame.cpp:139
GNECrossingFrame::EdgesSelector::getCurrentJunction
GNEJunction * getCurrentJunction() const
get current junction
Definition: GNECrossingFrame.cpp:112
GNECrossingFrame::EdgesSelector::myCrossingFrameParent
GNECrossingFrame * myCrossingFrameParent
pointer to GNECrossingFrame parent
Definition: GNECrossingFrame.h:104
GNECrossingFrame::EdgesSelector::myCurrentJunction
GNEJunction * myCurrentJunction
current Junction
Definition: GNECrossingFrame.h:116
GNECrossingFrame::EdgesSelector::onCmdClearSelection
long onCmdClearSelection(FXObject *, FXSelector, void *)
called when clear selection button is pressed
Definition: GNECrossingFrame.cpp:175
GNECrossingFrame::GNECrossingFrame
GNECrossingFrame()
FOX needs this.
Definition: GNECrossingFrame.h:270
GNECrossingFrame::myCrossingParameters
GNECrossingFrame::CrossingParameters * myCrossingParameters
crossing parameters modul
Definition: GNECrossingFrame.h:280
GNECrossingFrame::CrossingParameters::myCrossingPriorityLabel
FXLabel * myCrossingPriorityLabel
Label for Priority.
Definition: GNECrossingFrame.h:194
GNECrossingFrame::~GNECrossingFrame
~GNECrossingFrame()
Destructor.
Definition: GNECrossingFrame.cpp:529
GNECrossingFrame::EdgesSelector::EdgesSelector
EdgesSelector()
FOX needs this.
Definition: GNECrossingFrame.h:100
GNECrossingFrame::CreateCrossing::myCrossingFrameParent
GNECrossingFrame * myCrossingFrameParent
pointer to crossingFrame parent
Definition: GNECrossingFrame.h:242
GNECrossingFrame::CrossingParameters::myHelpCrossingAttribute
FXButton * myHelpCrossingAttribute
button for help
Definition: GNECrossingFrame.h:206
GNECrossingFrame::CrossingParameters::useSelectedEdges
void useSelectedEdges(GNEJunction *parentJunction)
use selected eges
Definition: GNECrossingFrame.cpp:319
GNECrossingFrame::EdgesSelector::onCmdInvertSelection
long onCmdInvertSelection(FXObject *, FXSelector, void *)
called when invert selection button is pressed
Definition: GNECrossingFrame.cpp:182
GNECrossingFrame::CrossingParameters::myCrossingPriorityCheckButton
FXCheckButton * myCrossingPriorityCheckButton
CheckBox for Priority.
Definition: GNECrossingFrame.h:197
GNECrossingFrame::CrossingParameters::onCmdSetAttribute
long onCmdSetAttribute(FXObject *, FXSelector, void *)
Definition: GNECrossingFrame.cpp:366
GNECrossingFrame::CurrentJunction::~CurrentJunction
~CurrentJunction()
destructor
Definition: GNECrossingFrame.cpp:76
GNECrossingFrame::CrossingParameters::~CrossingParameters
~CrossingParameters()
destructor
Definition: GNECrossingFrame.cpp:220
GNECrossingFrame::addCrossing
void addCrossing(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor)
add Crossing element
Definition: GNECrossingFrame.cpp:543
GNECrossingFrame::CrossingParameters::myCrossingEdges
FXTextField * myCrossingEdges
TextField for edges.
Definition: GNECrossingFrame.h:191
GNECrossingFrame::CrossingParameters::myCrossingWidth
FXTextField * myCrossingWidth
TextField for width.
Definition: GNECrossingFrame.h:203
GNECrossingFrame::CrossingParameters::myCrossingEdgesLabel
FXLabel * myCrossingEdgesLabel
Label for edges.
Definition: GNECrossingFrame.h:188
GNEJunction
Definition: GNEJunction.h:48
GNECrossingFrame::CrossingParameters::myCrossingWidthLabel
FXLabel * myCrossingWidthLabel
Label for width.
Definition: GNECrossingFrame.h:200
GNECrossingFrame::CrossingParameters::getCrossingPriority
bool getCrossingPriority() const
get crossing priority
Definition: GNECrossingFrame.cpp:344
GNEFrame.h
GNECrossingFrame::EdgesSelector::myClearEdgesSelection
FXButton * myClearEdgesSelection
button for clear selection
Definition: GNECrossingFrame.h:110
GNECrossingFrame::EdgesSelector::onCmdUseSelectedEdges
long onCmdUseSelectedEdges(FXObject *, FXSelector, void *)
Definition: GNECrossingFrame.cpp:168
GNECrossingFrame::EdgesSelector::myUseSelectedEdges
FXButton * myUseSelectedEdges
CheckBox for selected edges.
Definition: GNECrossingFrame.h:107
GNECrossingFrame::CurrentJunction::myCurrentJunctionLabel
FXLabel * myCurrentJunctionLabel
Label for current Junction.
Definition: GNECrossingFrame.h:55
GNECrossingFrame::CrossingParameters::getCrossingEdges
std::vector< NBEdge * > getCrossingEdges() const
get crossing NBedges
Definition: GNECrossingFrame.cpp:333