Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GNECreateEdgeFrame.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-2025 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// The Widget for create edges (and junctions)
19/****************************************************************************/
20#pragma once
21#include <config.h>
22
25
26// ===========================================================================
27// class declaration
28// ===========================================================================
29
30class GNEEdgeType;
32
33// ===========================================================================
34// class definitions
35// ===========================================================================
36
38
39public:
40
41 // ===========================================================================
42 // class EdgeTypeSelector
43 // ===========================================================================
44
48
49 public:
51 EdgeTypeSelector(GNECreateEdgeFrame* createEdgeFrameParent);
52
55
58
60 void updateIDinComboBox(const std::string& oldID, const std::string& newID);
61
63 bool useDefaultEdgeType() const;
64
66 bool useDefaultEdgeTypeShort() const;
67
69 bool useEdgeTemplate() const;
70
73
76
79
81 bool isNoPedestriansEnabled() const;
82
84 bool isAddSidewalkEnabled() const;
85
87 bool isAddBikelaneEnabled() const;
88
91
93 void setCurrentEdgeType(const GNEEdgeType* edgeType);
94
96 void useTemplate();
97
101 long onCmdRadioButton(FXObject*, FXSelector, void*);
102
104 long onCmdAddEdgeType(FXObject*, FXSelector, void*);
105
107 long onCmdDeleteEdgeType(FXObject*, FXSelector, void*);
108
110 long onCmdSelectEdgeTypeOrTemplate(FXObject*, FXSelector, void*);
111
113 long onCmdCreateFromTemplate(FXObject*, FXSelector, void*);
114
116 long onUpdCheckButtons(FXObject*, FXSelector, void*);
117
119
120 protected:
123
125 void fillComboBox();
126
127 private:
130
133
136
139
141 FXRadioButton* myCreateDefaultEdgeType = nullptr;
142
144 FXRadioButton* myCreateDefaultShortEdgeType = nullptr;
145
147 FXCheckButton* myNoPedestriansCheckButton = nullptr;
148
150 FXCheckButton* myAddSidewalkCheckButton = nullptr;
151
153 FXCheckButton* myAddBikelaneCheckButton = nullptr;
154
156 FXRadioButton* myCreateCustomEdgeType = nullptr;
157
160
162 FXButton* myAddEdgeTypeButton = nullptr;
163
165 FXButton* myDeleteEdgeTypeButton = nullptr;
166
168 FXButton* myCreateFromTemplate = nullptr;
169 };
170
171 // ===========================================================================
172 // class LaneTypeSelector
173 // ===========================================================================
174
178
179 public:
181 LaneTypeSelector(GNECreateEdgeFrame* createEdgeFrameParent);
182
185
188
191
194
198 long onCmdAddLaneType(FXObject*, FXSelector, void*);
199
201 long onCmdDeleteLaneType(FXObject*, FXSelector, void*);
202
204 long onCmdSelectLaneType(FXObject*, FXSelector, void*);
205
207
208 protected:
211
213 void updateComboBox();
214
215 private:
218
223
225 FXButton* myAddLaneTypeButton = nullptr;
226
228 FXButton* myDeleteLaneTypeButton = nullptr;
229 };
230
231 // ===========================================================================
232 // class Legend
233 // ===========================================================================
234
235 class Legend : public MFXGroupBoxModule {
236
237 public:
239 Legend(GNECreateEdgeFrame* createEdgeFrameParent);
240
242 ~Legend();
243 };
244
249 GNECreateEdgeFrame(GNEViewParent* viewParent, GNEViewNet* viewNet);
250
253
260 void processClick(const Position& clickedPosition, const GNEViewNetHelper::ViewObjectsSelector& viewObjects, const bool oppositeEdge, const bool chainEdge);
261
263 void abortEdgeCreation();
264
266 const GNEJunction* getJunctionSource() const;
267
269 void show();
270
272 void hide();
273
276
279
282
285
287 void setUseEdgeTemplate();
288
289protected:
292
295
298
301
304
306 void disablePedestrians(GNEEdge* edge) const;
307
309 void addSidewalk(GNEEdge* edge, const std::string& sidewalkWidth) const;
310
312 void addBikelane(GNEEdge* edge, const std::string& bikelaneWidth) const;
313
314private:
317};
GNEEdgeType * getEdgeTypeSelected() const
get edgeType selected
FXRadioButton * myCreateDefaultShortEdgeType
create default edge short
GNEEdgeType * getDefaultEdgeType() const
get default edgeType
bool useEdgeTemplate() const
check if we have to use edge template
bool useDefaultEdgeTypeShort() const
check if we're using default edge type short
long onUpdCheckButtons(FXObject *, FXSelector, void *)
Called when check buttons are updated.
FXCheckButton * myAddBikelaneCheckButton
add bike check button
bool isAddBikelaneEnabled() const
check if add bikelane check button is enabled
void updateIDinComboBox(const std::string &oldID, const std::string &newID)
update id in comboBox
long onCmdAddEdgeType(FXObject *, FXSelector, void *)
Called when the user press button for add a new edge type.
void enableCheckBoxDisablePedestrians()
void enable checkbox for disable pedestrians
bool useDefaultEdgeType() const
check if we're using default edge type
FOX_CONSTRUCTOR(EdgeTypeSelector)
FOX need this.
FXButton * myDeleteEdgeTypeButton
button for delete edge type
long onCmdDeleteEdgeType(FXObject *, FXSelector, void *)
Called when the user press button for delete edge type.
GNEEdgeType * myDefaultEdgeType
default edge type
FXCheckButton * myAddSidewalkCheckButton
add sidewalk check button
long onCmdCreateFromTemplate(FXObject *, FXSelector, void *)
Called when the user press create edgeType from Template.
bool isAddSidewalkEnabled() const
check if add sidewalk check button is enabled
FXButton * myCreateFromTemplate
button for create edgeType from template
FXRadioButton * myCreateCustomEdgeType
create custom edge
MFXComboBoxIcon * myEdgeTypesComboBox
ComboBox for edge types.
FXRadioButton * myCreateDefaultEdgeType
create default edge
void refreshEdgeTypeSelector()
refresh edge type selector
FXCheckButton * myNoPedestriansCheckButton
no pedestrian check button
bool isNoPedestriansEnabled() const
check if no pedestrian check button is enabled
long onCmdRadioButton(FXObject *, FXSelector, void *)
GNEEdgeType * myEdgeTypeSelected
selected edgeType
GNECreateEdgeFrame * myCreateEdgeFrameParent
pointer to createEdgeFrameParent
void setCurrentEdgeType(const GNEEdgeType *edgeType)
set current edgeType
void clearEdgeTypeSelected()
clear edgeType selected
long onCmdSelectEdgeTypeOrTemplate(FXObject *, FXSelector, void *)
Called when the user press select an edgeType or template in comboBox.
FXButton * myAddEdgeTypeButton
button for create new edge type
GNECreateEdgeFrame * myCreateEdgeFrameParent
pointer to createEdgeFrameParent
FOX_CONSTRUCTOR(LaneTypeSelector)
FOX need this.
long onCmdSelectLaneType(FXObject *, FXSelector, void *)
Called when the user press select an laneType in comboBox.
FXButton * myDeleteLaneTypeButton
button for delete lane type
MFXComboBoxIcon * myLaneTypesComboBox
ComboBox for lane types.
void showLaneTypeSelector()
show lane type selector
void hideLaneTypeSelector()
hide lane type selector
long onCmdAddLaneType(FXObject *, FXSelector, void *)
FXButton * myAddLaneTypeButton
button for create new lane type
long onCmdDeleteLaneType(FXObject *, FXSelector, void *)
Called when the user press button for delete lane type.
void refreshLaneTypeSelector()
refresh LaneTypeSelector
EdgeTypeSelector * getEdgeTypeSelector() const
get edgeType selector
GNEJunction * myJunctionSource
source junction for new edge
void processClick(const Position &clickedPosition, const GNEViewNetHelper::ViewObjectsSelector &viewObjects, const bool oppositeEdge, const bool chainEdge)
handle processClick and set the relative coloring
void abortEdgeCreation()
abort current edge creation
void show()
show create edge frame
GNECreateEdgeFrame::LaneTypeSelector * myLaneTypeSelector
lane type selector
void addSidewalk(GNEEdge *edge, const std::string &sidewalkWidth) const
add sidewalk in the given edge
GNEAttributesEditor * getLaneTypeAttributes() const
get laneType attributes
const GNEJunction * getJunctionSource() const
get junction source for new edge
GNEAttributesEditor * getEdgeTypeAttributes() const
get edgeType attributes
GNEAttributesEditor * myLaneTypeAttributesEditor
internal laneType attributes
GNEAttributesEditor * myEdgeTypeAttributesEditor
internal edgeType attributes
void disablePedestrians(GNEEdge *edge) const
disable pedestrians in the given edge (within undoRedo)
GNECreateEdgeFrame::Legend * myLegend
Legend.
void addBikelane(GNEEdge *edge, const std::string &bikelaneWidth) const
add bikelane in the given edge
void hide()
hide create edge frame
EdgeTypeSelector * myEdgeTypeSelector
edge type selector
void setUseEdgeTemplate()
set default to using edge template
LaneTypeSelector * getLaneTypeSelector()
get lane type selector
class used to group all variables related with objects under cursor after a click over view
A single child window which contains a view of the simulation area.
MFXGroupBoxModule (based on FXGroupBox)
A point in 2D or 3D with translation and scaling methods.
Definition Position.h:37