Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/src/netedit/dialogs/fix/GNEFixAdditionalElementsDialog.h
169684 views
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
/****************************************************************************/
14
/// @file GNEFixAdditionalElementsDialog.h
15
/// @author Pablo Alvarez Lopez
16
/// @date Jul 2017
17
///
18
// Dialog used to fix additional elements
19
/****************************************************************************/
20
#pragma once
21
#include <config.h>
22
23
#include "GNEFixElementsDialog.h"
24
25
// ===========================================================================
26
// class declarations
27
// ===========================================================================
28
29
class GNEAdditional;
30
31
// ===========================================================================
32
// class definitions
33
// ===========================================================================
34
35
class GNEFixAdditionalElementsDialog : public GNEFixElementsDialog<GNEAdditional*> {
36
37
public:
38
/// @brief Position options
39
class PositionOptions : public GNEFixElementsDialog::FixOptions {
40
/// @brief FOX-declaration
41
FXDECLARE(PositionOptions)
42
43
public:
44
/// @brief build Position Options
45
PositionOptions(GNEFixAdditionalElementsDialog* fixAdditionalPositions);
46
47
/// @brief select internal test solution
48
void selectInternalTestSolution(const std::string& solution);
49
50
/// @brief apply selected fix option
51
bool applyFixOption();
52
53
/// @name FOX-callbacks
54
/// @{
55
56
/// @brief called when user select a option
57
long onCmdSelectOption(FXObject* obj, FXSelector, void*);
58
59
/// @}
60
61
protected:
62
/// @brief FOX needs this
63
FOX_CONSTRUCTOR(PositionOptions)
64
65
/// @brief Option "Activate friendlyPos and save"
66
FXRadioButton* myActivateFriendlyPosition;
67
68
/// @brief Option "Fix Positions and save"
69
FXRadioButton* myFixPositions;
70
71
/// @brief Option "Save invalid"
72
FXRadioButton* mySaveInvalids;
73
74
/// @brief Option "Select invalid stops and cancel"
75
FXRadioButton* mySelectInvalids;
76
77
private:
78
/// @brief Invalidated copy constructor.
79
PositionOptions(const PositionOptions&) = delete;
80
81
/// @brief Invalidated assignment operator.
82
PositionOptions& operator=(const PositionOptions&) = delete;
83
};
84
85
/// @brief fix consecutive lane options
86
class ConsecutiveLaneOptions : public GNEFixElementsDialog::FixOptions {
87
/// @brief FOX-declaration
88
FXDECLARE(ConsecutiveLaneOptions)
89
90
public:
91
/// @brief build consecutive lane Options
92
ConsecutiveLaneOptions(GNEFixAdditionalElementsDialog* fixAdditionalPositions);
93
94
/// @brief select internal test solution
95
void selectInternalTestSolution(const std::string& solution);
96
97
/// @brief apply selected fix option
98
bool applyFixOption();
99
100
/// @name FOX-callbacks
101
/// @{
102
103
/// @brief called when user select a option
104
long onCmdSelectOption(FXObject* obj, FXSelector, void*);
105
106
/// @}
107
108
protected:
109
/// @brief FOX needs this
110
FOX_CONSTRUCTOR(ConsecutiveLaneOptions)
111
112
/// @brief Option "build connections between lanes"
113
FXRadioButton* myBuildConnectionBetweenLanes;
114
115
/// @brief Option "remove invalid elements"
116
FXRadioButton* myRemoveInvalidElements;
117
118
/// @brief Option "Activate friendlyPos and save"
119
FXRadioButton* myActivateFriendlyPosition;
120
121
/// @brief Option "Fix Positions and save"
122
FXRadioButton* myFixPositions;
123
124
private:
125
/// @brief Invalidated copy constructor.
126
ConsecutiveLaneOptions(const ConsecutiveLaneOptions&) = delete;
127
128
/// @brief Invalidated assignment operator.
129
ConsecutiveLaneOptions& operator=(const ConsecutiveLaneOptions&) = delete;
130
};
131
132
/// @brief Constructor
133
GNEFixAdditionalElementsDialog(GNEApplicationWindow* mainWindow,
134
const std::vector<GNEAdditional*>& elements);
135
136
/// @brief destructor
137
~GNEFixAdditionalElementsDialog();
138
139
protected:
140
/// @brief position options
141
PositionOptions* myPositionOptions;
142
143
/// @brief consecutive lane options
144
ConsecutiveLaneOptions* myConsecutiveLaneOptions;
145
146
private:
147
/// @brief Invalidated copy constructor.
148
GNEFixAdditionalElementsDialog(const GNEFixAdditionalElementsDialog&) = delete;
149
150
/// @brief Invalidated assignment operator.
151
GNEFixAdditionalElementsDialog& operator=(const GNEFixAdditionalElementsDialog&) = delete;
152
};
153
154