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-2023 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// ===========================================================================
28// class declaration
29// ===========================================================================
30
31class GNEEdgeType;
32
33// ===========================================================================
34// class definitions
35// ===========================================================================
41
42public:
43
44 // ===========================================================================
45 // class EdgeTypeSelector
46 // ===========================================================================
47
51
52 public:
54 EdgeTypeSelector(GNECreateEdgeFrame* createEdgeFrameParent);
55
58
61
63 void updateIDinComboBox(const std::string& oldID, const std::string& newID);
64
66 bool useEdgeTemplate() const;
67
69 bool useDefaultEdgeType() const;
70
73
76
79
81 bool isNoPedestriansEnabled() const;
82
84 bool isAddSidewalkEnabled() const;
85
88
90 void setCurrentEdgeType(const GNEEdgeType* edgeType);
91
93 void useTemplate();
94
98 long onCmdRadioButton(FXObject*, FXSelector, void*);
99
101 long onCmdAddEdgeType(FXObject*, FXSelector, void*);
102
104 long onCmdDeleteEdgeType(FXObject*, FXSelector, void*);
105
107 long onCmdSelectEdgeTypeOrTemplate(FXObject*, FXSelector, void*);
108
110 long onCmdCreateFromTemplate(FXObject*, FXSelector, void*);
111
113 long onUpdAddSideWalk(FXObject*, FXSelector, void*);
114
116
117 protected:
120
122 void fillComboBox();
123
124 private:
127
130
133
136
138 FXRadioButton* myUseDefaultEdgeType = nullptr;
139
141 FXCheckButton* myNoPedestriansCheckButton = nullptr;
142
144 FXCheckButton* myAddSidewalkCheckButton = nullptr;
145
147 FXRadioButton* myUseCustomEdgeType = nullptr;
148
150 FXComboBox* myEdgeTypesComboBox = nullptr;
151
153 FXButton* myAddEdgeTypeButton = nullptr;
154
156 FXButton* myDeleteEdgeTypeButton = nullptr;
157
159 FXButton* myCreateFromTemplate = nullptr;
160 };
161
162 // ===========================================================================
163 // class LaneTypeSelector
164 // ===========================================================================
165
169
170 public:
172 LaneTypeSelector(GNECreateEdgeFrame* createEdgeFrameParent);
173
176
179
182
185
189 long onCmdAddLaneType(FXObject*, FXSelector, void*);
190
192 long onCmdDeleteLaneType(FXObject*, FXSelector, void*);
193
195 long onCmdSelectLaneType(FXObject*, FXSelector, void*);
196
198
199 protected:
202
204 void updateComboBox();
205
206 private:
209
213 FXComboBox* myLaneTypesComboBox = nullptr;
214
216 FXButton* myAddLaneTypeButton = nullptr;
217
219 FXButton* myDeleteLaneTypeButton = nullptr;
220 };
221
222 // ===========================================================================
223 // class Legend
224 // ===========================================================================
225
226 class Legend : public MFXGroupBoxModule {
227
228 public:
230 Legend(GNECreateEdgeFrame* createEdgeFrameParent);
231
233 ~Legend();
234 };
235
240 GNECreateEdgeFrame(GNEViewParent* viewParent, GNEViewNet* viewNet);
241
244
251 void processClick(const Position& clickedPosition, const GNEViewNetHelper::ObjectsUnderCursor& objectsUnderCursor, const bool oppositeEdge, const bool chainEdge);
252
254 void abortEdgeCreation();
255
257 const GNEJunction* getJunctionSource() const;
258
260 void updateObjectsUnderSnappedCursor(const std::vector<GUIGlObject*>& GUIGlObjects);
261
263 void show();
264
266 void hide();
267
270
273
276
279
281 void setUseEdgeTemplate();
282
283protected:
286
289
292
295
298
300 void disablePedestrians(GNEEdge* edge) const;
301
303 void addSidewalk(GNEEdge* edge) const;
304
305private:
308
311};
GNEEdgeType * getEdgeTypeSelected() const
get edgeType selected
FXRadioButton * myUseCustomEdgeType
create custom edge
GNEEdgeType * getDefaultEdgeType() const
get default edgeType
FXComboBox * myEdgeTypesComboBox
ComboBox for edge types.
bool useEdgeTemplate() const
check if we have to use edge template
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.
long onUpdAddSideWalk(FXObject *, FXSelector, void *)
Called when add sidewalk check buton is updated.
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 * myUseDefaultEdgeType
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
FXComboBox * 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
void processClick(const Position &clickedPosition, const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor, const bool oppositeEdge, const bool chainEdge)
handle processClick and set the relative colouring
EdgeTypeSelector * getEdgeTypeSelector() const
get edgeType selector
void abortEdgeCreation()
abort current edge creation
void show()
show create edge frame
GNECreateEdgeFrame::LaneTypeSelector * myLaneTypeSelector
lane type selector
GNEAttributesCreator * getLaneTypeAttributes() const
get laneType attributes
void updateObjectsUnderSnappedCursor(const std::vector< GUIGlObject * > &GUIGlObjects)
update objects under snapped cursor
GNEAttributesCreator * myEdgeTypeAttributes
internal edgeType attributes
GNEAttributesCreator * getEdgeTypeAttributes() const
get edgeType attributes
const GNEJunction * getJunctionSource() const
get junction source for new edge
GNEAttributesCreator * myLaneTypeAttributes
internal laneType attributes
void disablePedestrians(GNEEdge *edge) const
disable pedestrians in the given edge (within undoRedo)
GNECreateEdgeFrame::Legend * myLegend
Legend.
GNEJunction * myCreateEdgeSource
source junction for new edge
GNEViewNetHelper::ObjectsUnderCursor myObjectsUnderSnappedCursor
objects under snapped cursor
void hide()
hide create edge frame
void addSidewalk(GNEEdge *edge) const
disable pedestrians in the given edge (within undoRedo)
EdgeTypeSelector * myEdgeTypeSelector
edge type selector
void setUseEdgeTemplate()
set default to using edge template
LaneTypeSelector * getLaneTypeSelector()
get lane type selector
A road/street connecting two junctions (netedit-version)
Definition GNEEdge.h:53
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