Path: blob/main/src/netedit/dialogs/fix/GNEFixAdditionalElementsDialog.h
169684 views
/****************************************************************************/1// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo2// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.3// This program and the accompanying materials are made available under the4// terms of the Eclipse Public License 2.0 which is available at5// https://www.eclipse.org/legal/epl-2.0/6// This Source Code may also be made available under the following Secondary7// Licenses when the conditions for such availability set forth in the Eclipse8// Public License 2.0 are satisfied: GNU General Public License, version 29// or later which is available at10// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html11// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later12/****************************************************************************/13/// @file GNEFixAdditionalElementsDialog.h14/// @author Pablo Alvarez Lopez15/// @date Jul 201716///17// Dialog used to fix additional elements18/****************************************************************************/19#pragma once20#include <config.h>2122#include "GNEFixElementsDialog.h"2324// ===========================================================================25// class declarations26// ===========================================================================2728class GNEAdditional;2930// ===========================================================================31// class definitions32// ===========================================================================3334class GNEFixAdditionalElementsDialog : public GNEFixElementsDialog<GNEAdditional*> {3536public:37/// @brief Position options38class PositionOptions : public GNEFixElementsDialog::FixOptions {39/// @brief FOX-declaration40FXDECLARE(PositionOptions)4142public:43/// @brief build Position Options44PositionOptions(GNEFixAdditionalElementsDialog* fixAdditionalPositions);4546/// @brief select internal test solution47void selectInternalTestSolution(const std::string& solution);4849/// @brief apply selected fix option50bool applyFixOption();5152/// @name FOX-callbacks53/// @{5455/// @brief called when user select a option56long onCmdSelectOption(FXObject* obj, FXSelector, void*);5758/// @}5960protected:61/// @brief FOX needs this62FOX_CONSTRUCTOR(PositionOptions)6364/// @brief Option "Activate friendlyPos and save"65FXRadioButton* myActivateFriendlyPosition;6667/// @brief Option "Fix Positions and save"68FXRadioButton* myFixPositions;6970/// @brief Option "Save invalid"71FXRadioButton* mySaveInvalids;7273/// @brief Option "Select invalid stops and cancel"74FXRadioButton* mySelectInvalids;7576private:77/// @brief Invalidated copy constructor.78PositionOptions(const PositionOptions&) = delete;7980/// @brief Invalidated assignment operator.81PositionOptions& operator=(const PositionOptions&) = delete;82};8384/// @brief fix consecutive lane options85class ConsecutiveLaneOptions : public GNEFixElementsDialog::FixOptions {86/// @brief FOX-declaration87FXDECLARE(ConsecutiveLaneOptions)8889public:90/// @brief build consecutive lane Options91ConsecutiveLaneOptions(GNEFixAdditionalElementsDialog* fixAdditionalPositions);9293/// @brief select internal test solution94void selectInternalTestSolution(const std::string& solution);9596/// @brief apply selected fix option97bool applyFixOption();9899/// @name FOX-callbacks100/// @{101102/// @brief called when user select a option103long onCmdSelectOption(FXObject* obj, FXSelector, void*);104105/// @}106107protected:108/// @brief FOX needs this109FOX_CONSTRUCTOR(ConsecutiveLaneOptions)110111/// @brief Option "build connections between lanes"112FXRadioButton* myBuildConnectionBetweenLanes;113114/// @brief Option "remove invalid elements"115FXRadioButton* myRemoveInvalidElements;116117/// @brief Option "Activate friendlyPos and save"118FXRadioButton* myActivateFriendlyPosition;119120/// @brief Option "Fix Positions and save"121FXRadioButton* myFixPositions;122123private:124/// @brief Invalidated copy constructor.125ConsecutiveLaneOptions(const ConsecutiveLaneOptions&) = delete;126127/// @brief Invalidated assignment operator.128ConsecutiveLaneOptions& operator=(const ConsecutiveLaneOptions&) = delete;129};130131/// @brief Constructor132GNEFixAdditionalElementsDialog(GNEApplicationWindow* mainWindow,133const std::vector<GNEAdditional*>& elements);134135/// @brief destructor136~GNEFixAdditionalElementsDialog();137138protected:139/// @brief position options140PositionOptions* myPositionOptions;141142/// @brief consecutive lane options143ConsecutiveLaneOptions* myConsecutiveLaneOptions;144145private:146/// @brief Invalidated copy constructor.147GNEFixAdditionalElementsDialog(const GNEFixAdditionalElementsDialog&) = delete;148149/// @brief Invalidated assignment operator.150GNEFixAdditionalElementsDialog& operator=(const GNEFixAdditionalElementsDialog&) = delete;151};152153154