Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GNEChange_Edge.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-2024 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// A network change in which a single edge is created or deleted
19/****************************************************************************/
20#pragma once
21#include <config.h>
22
23#include "GNEChange.h"
24
25// ===========================================================================
26// class definitions
27// ===========================================================================
32class GNEChange_Edge : public GNEChange {
33 // @brief FOX Declaration
34 FXDECLARE_ABSTRACT(GNEChange_Edge)
35
36public:
41 GNEChange_Edge(GNEEdge* edge, bool forward);
42
45
49 std::string undoName() const;
50
52 std::string redoName() const;
53
55 void undo();
56
58 void redo();
60
61protected:
63 void addEdgeLanes();
64
66 void removeEdgeLanes();
67
69 std::vector<std::vector<GNEAdditional*> > myLaneParentAdditionals;
70
72 std::vector<std::vector<GNEDemandElement*> > myLaneParentDemandElements;
73
75 std::vector<std::vector<GNEGenericData*> > myLaneParentGenericData;
76
78 std::vector<std::vector<GNEAdditional*> > myChildLaneAdditionals;
79
81 std::vector<std::vector<GNEDemandElement*> > myChildLaneDemandElements;
82
84 std::vector<std::vector<GNEGenericData*> > myChildLaneGenericData;
85
86private:
91};
void undo()
undo action
std::string redoName() const
get Redo name
void addEdgeLanes()
add given lane into parents and children
std::vector< std::vector< GNEDemandElement * > > myLaneParentDemandElements
vector of references to vector of parent demand elements (used by edge lanes)
void removeEdgeLanes()
remove given lane from parents and children
GNEEdge * myEdge
full information regarding the edge that is to be created/deleted
std::vector< std::vector< GNEAdditional * > > myLaneParentAdditionals
vector of references to vector of parent additionals (used by edge lanes)
void redo()
redo action
~GNEChange_Edge()
Destructor.
std::vector< std::vector< GNEGenericData * > > myChildLaneGenericData
vector of references to vector of child generic datas (used by edge lanes)
std::vector< std::vector< GNEDemandElement * > > myChildLaneDemandElements
vector of references to vector of child demand elements (used by edge lanes)
std::vector< std::vector< GNEGenericData * > > myLaneParentGenericData
vector of references to vector of parent generic datas (used by edge lanes)
std::vector< std::vector< GNEAdditional * > > myChildLaneAdditionals
vector of references to vector of child additional (used by edge lanes)
std::string undoName() const
return undoName
the function-object for an editing operation (abstract base)
Definition GNEChange.h:56
A road/street connecting two junctions (netedit-version)
Definition GNEEdge.h:53