![]() |
Eclipse SUMO - Simulation of Urban MObility
|
#include <GNEChange_Lane.h>
Public Member Functions | |
GNEChange_Lane (GNEEdge *edge, const NBEdge::Lane &laneAttrs) | |
Constructor for creating a lane. | |
GNEChange_Lane (GNEEdge *edge, GNELane *lane, const NBEdge::Lane &laneAttrs, bool forward, bool recomputeConnections=true) | |
Constructor for deleting a lane. | |
~GNEChange_Lane () | |
Destructor. | |
inherited from GNEChange | |
get undo Name | |
std::string | undoName () const |
return undoName | |
std::string | redoName () const |
get Redo name | |
void | undo () |
undo action | |
void | redo () |
redo action | |
Private Attributes | |
GNEEdge * | myEdge |
we need the edge because it is the target of our change commands | |
GNELane * | myLane |
we need to preserve the lane because it maybe the target of GNEChange_Attribute commands | |
const NBEdge::Lane | myLaneAttrs |
we need to preserve the attributes explicitly because they are not contained withing GNELane itself | |
bool | myRecomputeConnections |
whether to recompute connection when adding a new lane | |
friend class | |
GNEChange * | next |
virtual int | size () const |
Return the size of the command group. | |
Supermode | getSupermode () const |
get supermode | |
bool | canMerge () const |
Return TRUE if this command can be merged with previous undo commands. This is useful to combine e.g. multiple consecutive single-character text changes into a single block change. The default implementation returns FALSE. | |
bool | mergeWith (GNEChange *command) |
Called by the undo system to try and merge the new incoming command with this command; should return TRUE if merging was possible. The default implementation returns FALSE. | |
const Supermode | mySupermode |
supermode related with this change | |
const GNEHierarchicalStructureParents | myParents |
Hierarchical container with parents. | |
bool | myForward |
we group antagonistic commands (create junction/delete junction) and keep them apart by this flag | |
const bool | mySelectedElement |
flag for check if element is selected | |
template<typename T > | |
void | addElementInParentsAndChildren (T *element) |
add given element in parents and children | |
template<typename T > | |
void | removeElementFromParentsAndChildren (T *element) |
remove given element from parents and children | |
A network change in which a single lane is created or deleted
Definition at line 32 of file GNEChange_Lane.h.
GNEChange_Lane::GNEChange_Lane | ( | GNEEdge * | edge, |
const NBEdge::Lane & | laneAttrs | ||
) |
Constructor for creating a lane.
[in] | edge | The edge on which to apply changes |
[in] | laneAttrs | The attributes of the lane to be created/ |
Definition at line 38 of file GNEChange_Lane.cpp.
GNEChange_Lane::GNEChange_Lane | ( | GNEEdge * | edge, |
GNELane * | lane, | ||
const NBEdge::Lane & | laneAttrs, | ||
bool | forward, | ||
bool | recomputeConnections = true |
||
) |
Constructor for deleting a lane.
[in] | edge | The edge on which to apply changes |
[in] | lane | The lane to be deleted |
[in] | laneAttrs | The attributes of the lane to be deleted |
[in] | forward | Whether to delete (true/false) |
[in] | recomputeConnections | Whether to recompute all connections for the affected edge |
Definition at line 48 of file GNEChange_Lane.cpp.
References GNEReferenceCounter::incRef(), myEdge, and myLane.
GNEChange_Lane::~GNEChange_Lane | ( | ) |
Destructor.
Definition at line 60 of file GNEChange_Lane.cpp.
References GNEReferenceCounter::decRef(), GNEViewParent::getGNEAppWindows(), GNEAttributeCarrier::getNet(), GNENet::getViewNet(), GNEViewNet::getViewParent(), GNEApplicationWindow::isUndoRedoAllowed(), myEdge, myLane, and GNEReferenceCounter::unreferenced().
|
inlineprotectedinherited |
add given element in parents and children
Definition at line 121 of file GNEChange.h.
References GNEHierarchicalStructureParents::get(), GNEHierarchicalElement::insertChild(), and GNEChange::myParents.
Referenced by GNEChange_Additional::redo(), GNEChange_DemandElement::redo(), GNEChange_Edge::redo(), GNEChange_GenericData::redo(), GNEChange_Junction::redo(), GNEChange_TAZSourceSink::redo(), GNEChange_Additional::undo(), GNEChange_DemandElement::undo(), GNEChange_Edge::undo(), GNEChange_GenericData::undo(), GNEChange_Junction::undo(), and GNEChange_TAZSourceSink::undo().
|
inherited |
Return TRUE if this command can be merged with previous undo commands. This is useful to combine e.g. multiple consecutive single-character text changes into a single block change. The default implementation returns FALSE.
Definition at line 72 of file GNEChange.cpp.
Referenced by GNEUndoList::add().
|
inherited |
get supermode
Definition at line 66 of file GNEChange.cpp.
References GNEChange::mySupermode.
Referenced by GNEUndoList::getRedoSupermode(), and GNEUndoList::getUndoSupermode().
|
inherited |
Called by the undo system to try and merge the new incoming command with this command; should return TRUE if merging was possible. The default implementation returns FALSE.
Definition at line 78 of file GNEChange.cpp.
Referenced by GNEUndoList::add().
|
virtual |
redo action
Implements GNEChange.
Definition at line 101 of file GNEChange_Lane.cpp.
References GNEEdge::addLane(), GNEAttributeCarrier::getNet(), GNENet::getSavingStatus(), myEdge, GNEChange::myForward, myLane, myLaneAttrs, myRecomputeConnections, GNEChange::mySelectedElement, GNEEdge::removeLane(), GNENetHelper::SavingStatus::requireSaveNetwork(), GNEAttributeCarrier::selectAttributeCarrier(), and GNEAttributeCarrier::unselectAttributeCarrier().
|
virtual |
get Redo name
Implements GNEChange.
Definition at line 133 of file GNEChange_Lane.cpp.
References GNEAttributeCarrier::getID(), GNEChange::myForward, myLane, and TL.
|
inlineprotectedinherited |
remove given element from parents and children
Definition at line 148 of file GNEChange.h.
References GNEHierarchicalStructureParents::get(), GNEChange::myParents, and GNEHierarchicalElement::removeChild().
Referenced by GNEChange_Additional::redo(), GNEChange_DemandElement::redo(), GNEChange_Edge::redo(), GNEChange_GenericData::redo(), GNEChange_Junction::redo(), GNEChange_TAZSourceSink::redo(), GNEChange_Additional::undo(), GNEChange_DemandElement::undo(), GNEChange_Edge::undo(), GNEChange_GenericData::undo(), GNEChange_Junction::undo(), and GNEChange_TAZSourceSink::undo().
|
virtualinherited |
Return the size of the command group.
Reimplemented in GNEChangeGroup.
Definition at line 59 of file GNEChange.cpp.
Referenced by GNEUndoList::currentCommandGroupSize(), and GNEChangeGroup::size().
|
virtual |
undo action
Implements GNEChange.
Definition at line 79 of file GNEChange_Lane.cpp.
References GNEEdge::addLane(), GNEAttributeCarrier::getNet(), GNENet::getSavingStatus(), myEdge, GNEChange::myForward, myLane, myLaneAttrs, GNEChange::mySelectedElement, GNEEdge::removeLane(), GNENetHelper::SavingStatus::requireSaveNetwork(), GNEAttributeCarrier::selectAttributeCarrier(), and GNEAttributeCarrier::unselectAttributeCarrier().
|
virtual |
return undoName
Implements GNEChange.
Definition at line 123 of file GNEChange_Lane.cpp.
References GNEAttributeCarrier::getID(), GNEChange::myForward, myLane, and TL.
|
private |
we need the edge because it is the target of our change commands
Definition at line 71 of file GNEChange_Lane.h.
Referenced by GNEChange_Lane(), redo(), undo(), and ~GNEChange_Lane().
|
protectedinherited |
we group antagonistic commands (create junction/delete junction) and keep them apart by this flag
Definition at line 180 of file GNEChange.h.
Referenced by GNEChange_Additional::redo(), GNEChange_Children::redo(), GNEChange_Connection::redo(), GNEChange_Crossing::redo(), GNEChange_DataInterval::redo(), GNEChange_DataSet::redo(), GNEChange_DemandElement::redo(), GNEChange_Edge::redo(), GNEChange_EdgeType::redo(), GNEChange_GenericData::redo(), GNEChange_Junction::redo(), redo(), GNEChange_MeanData::redo(), GNEChange_TAZSourceSink::redo(), GNEChange_TLS::redo(), GNEChange_Additional::redoName(), GNEChange_Children::redoName(), GNEChange_Connection::redoName(), GNEChange_Crossing::redoName(), GNEChange_DataInterval::redoName(), GNEChange_DataSet::redoName(), GNEChange_DemandElement::redoName(), GNEChange_Edge::redoName(), GNEChange_EdgeType::redoName(), GNEChange_GenericData::redoName(), GNEChange_Junction::redoName(), redoName(), GNEChange_MeanData::redoName(), GNEChange_TAZSourceSink::redoName(), GNEChange_TLS::redoName(), GNEChange_Additional::undo(), GNEChange_Children::undo(), GNEChange_Connection::undo(), GNEChange_Crossing::undo(), GNEChange_DataInterval::undo(), GNEChange_DataSet::undo(), GNEChange_DemandElement::undo(), GNEChange_Edge::undo(), GNEChange_EdgeType::undo(), GNEChange_GenericData::undo(), GNEChange_Junction::undo(), undo(), GNEChange_MeanData::undo(), GNEChange_TAZSourceSink::undo(), GNEChange_TLS::undo(), GNEChange_Additional::undoName(), GNEChange_Children::undoName(), GNEChange_Connection::undoName(), GNEChange_Crossing::undoName(), GNEChange_DataInterval::undoName(), GNEChange_DataSet::undoName(), GNEChange_DemandElement::undoName(), GNEChange_Edge::undoName(), GNEChange_EdgeType::undoName(), GNEChange_GenericData::undoName(), GNEChange_Junction::undoName(), undoName(), GNEChange_MeanData::undoName(), GNEChange_TAZSourceSink::undoName(), and GNEChange_TLS::undoName().
|
private |
we need to preserve the lane because it maybe the target of GNEChange_Attribute commands
Definition at line 74 of file GNEChange_Lane.h.
Referenced by GNEChange_Lane(), redo(), redoName(), undo(), undoName(), and ~GNEChange_Lane().
|
private |
we need to preserve the attributes explicitly because they are not contained withing GNELane itself
Definition at line 77 of file GNEChange_Lane.h.
|
protectedinherited |
Hierarchical container with parents.
Definition at line 177 of file GNEChange.h.
Referenced by GNEChange::addElementInParentsAndChildren(), GNEChange_DemandElement::redo(), GNEChange::removeElementFromParentsAndChildren(), and GNEChange_DemandElement::undo().
|
private |
whether to recompute connection when adding a new lane
Definition at line 80 of file GNEChange_Lane.h.
Referenced by redo().
|
protectedinherited |
flag for check if element is selected
Definition at line 183 of file GNEChange.h.
Referenced by GNEChange_Additional::redo(), GNEChange_Connection::redo(), GNEChange_Crossing::redo(), GNEChange_DemandElement::redo(), GNEChange_Edge::redo(), GNEChange_GenericData::redo(), GNEChange_Junction::redo(), redo(), GNEChange_MeanData::redo(), GNEChange_TAZSourceSink::redo(), GNEChange_Additional::undo(), GNEChange_Connection::undo(), GNEChange_Crossing::undo(), GNEChange_DemandElement::undo(), GNEChange_Edge::undo(), GNEChange_GenericData::undo(), GNEChange_Junction::undo(), undo(), and GNEChange_MeanData::undo().
|
protectedinherited |
supermode related with this change
Definition at line 174 of file GNEChange.h.
Referenced by GNEChange::getSupermode().
|
privateinherited |
Definition at line 187 of file GNEChange.h.
Referenced by GNEUndoList::add(), GNEUndoList::clear(), GNEUndoList::cut(), GNEUndoList::end(), GNEChangeGroup::redo(), GNEUndoList::redo(), GNEChangeGroup::size(), GNEChangeGroup::undo(), GNEUndoList::undo(), and GNEChangeGroup::~GNEChangeGroup().