Eclipse SUMO - Simulation of Urban MObility
GNEChange_Lane Class Reference

#include <GNEChange_Lane.h>

Inheritance diagram for GNEChange_Lane:
[legend]
Collaboration diagram for GNEChange_Lane:
[legend]

Public Member Functions

 GNEChange_Lane (GNEEdge *edge, const NBEdge::Lane &laneAttrs)
 Constructor for creating a lane. More...
 
 GNEChange_Lane (GNEEdge *edge, GNELane *lane, const NBEdge::Lane &laneAttrs, bool forward, bool recomputeConnections=true)
 Constructor for deleting a lane. More...
 
virtual FXuint size () const
 return actual size More...
 
 ~GNEChange_Lane ()
 Destructor. More...
 
inherited from GNEChange

get undo Name

FXString undoName () const
 return undoName More...
 
FXString redoName () const
 get Redo name More...
 
void undo ()
 undo action More...
 
void redo ()
 redo action More...
 

Protected Member Functions

template<typename T >
void addElementInParentsAndChildren (T *element)
 add given element into parents and children (only use in redo() function) More...
 
template<typename T >
void removeElementFromParentsAndChildren (T *element)
 remove given element from parents and children (only use in redo() function) More...
 
void restoreHierarchicalContainers ()
 restore container (only use in undo() function) More...
 

Protected Attributes

bool myForward
 we group antagonistic commands (create junction/delete junction) and keep them apart by this flag More...
 
std::map< GNEHierarchicalElement *, GNEHierarchicalContainermyHierarchicalContainers
 map with hierarchical container of all parent and children elements More...
 
const GNEHierarchicalContainer myOriginalHierarchicalContainer
 Hierarchical container with parent and children. More...
 
const bool mySelectedElement
 flag for check if element is selected More...
 

Private Attributes

GNEEdgemyEdge
 we need the edge because it is the target of our change commands More...
 
GNELanemyLane
 we need to preserve the lane because it maybe the target of GNEChange_Attribute commands More...
 
const NBEdge::Lane myLaneAttrs
 we need to preserve the attributes explicitly because they are not contained withing GNELane itself More...
 
bool myRecomputeConnections
 @bried whether to recompute connection when adding a new lane More...
 

Detailed Description

A network change in which a single lane is created or deleted

Definition at line 32 of file GNEChange_Lane.h.

Constructor & Destructor Documentation

◆ GNEChange_Lane() [1/2]

GNEChange_Lane::GNEChange_Lane ( GNEEdge edge,
const NBEdge::Lane laneAttrs 
)

Constructor for creating a lane.

Parameters
[in]edgeThe edge on which to apply changes
[in]laneAttrsThe attributes of the lane to be created/

Definition at line 37 of file GNEChange_Lane.cpp.

◆ GNEChange_Lane() [2/2]

GNEChange_Lane::GNEChange_Lane ( GNEEdge edge,
GNELane lane,
const NBEdge::Lane laneAttrs,
bool  forward,
bool  recomputeConnections = true 
)

Constructor for deleting a lane.

Parameters
[in]edgeThe edge on which to apply changes
[in]laneThe lane to be deleted
[in]laneAttrsThe attributes of the lane to be deleted
[in]forwardWhether to delete (true/false)
[in]recomputeConnectionsWhether to recompute all connections for the affected edge

Definition at line 47 of file GNEChange_Lane.cpp.

References GNEReferenceCounter::incRef(), myEdge, and myLane.

◆ ~GNEChange_Lane()

Member Function Documentation

◆ addElementInParentsAndChildren()

template<typename T >
void GNEChange::addElementInParentsAndChildren ( T *  element)
inlineprotectedinherited

add given element into parents and children (only use in redo() function)

Definition at line 106 of file GNEChange.h.

References GNEHierarchicalContainer::getChildren(), GNEHierarchicalContainer::getParents(), and GNEChange::myOriginalHierarchicalContainer.

Referenced by GNEChange_Additional::redo(), GNEChange_DemandElement::redo(), GNEChange_Edge::redo(), GNEChange_GenericData::redo(), redo(), GNEChange_Shape::redo(), and GNEChange_TAZElement::redo().

Here is the caller graph for this function:

◆ redo()

◆ redoName()

FXString GNEChange_Lane::redoName ( ) const
virtual

get Redo name

Reimplemented from GNEChange.

Definition at line 166 of file GNEChange_Lane.cpp.

References GNEChange::myForward, SUMO_TAG_LANE, and toString().

◆ removeElementFromParentsAndChildren()

template<typename T >
void GNEChange::removeElementFromParentsAndChildren ( T *  element)
inlineprotectedinherited

remove given element from parents and children (only use in redo() function)

Definition at line 161 of file GNEChange.h.

References GNEHierarchicalContainer::getChildren(), GNEHierarchicalContainer::getParents(), and GNEChange::myOriginalHierarchicalContainer.

Referenced by GNEChange_Additional::redo(), GNEChange_DemandElement::redo(), GNEChange_Edge::redo(), GNEChange_GenericData::redo(), redo(), GNEChange_Shape::redo(), and GNEChange_TAZElement::redo().

Here is the caller graph for this function:

◆ restoreHierarchicalContainers()

void GNEChange::restoreHierarchicalContainers ( )
protectedinherited

restore container (only use in undo() function)

Definition at line 82 of file GNEChange.cpp.

References GNEChange::myHierarchicalContainers.

Referenced by GNEChange_Additional::undo(), GNEChange_DemandElement::undo(), GNEChange_Edge::undo(), GNEChange_GenericData::undo(), undo(), GNEChange_Shape::undo(), and GNEChange_TAZElement::undo().

Here is the caller graph for this function:

◆ size()

FXuint GNEChange::size ( ) const
virtualinherited

return actual size

Definition at line 56 of file GNEChange.cpp.

◆ undo()

◆ undoName()

FXString GNEChange_Lane::undoName ( ) const
virtual

return undoName

Reimplemented from GNEChange.

Definition at line 156 of file GNEChange_Lane.cpp.

References GNEChange::myForward, SUMO_TAG_LANE, and toString().

Field Documentation

◆ myEdge

GNEEdge* GNEChange_Lane::myEdge
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().

◆ myForward

bool GNEChange::myForward
protectedinherited

we group antagonistic commands (create junction/delete junction) and keep them apart by this flag

Definition at line 215 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_LaneType::redo(), GNEChange_Shape::redo(), GNEChange_TAZElement::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_LaneType::redoName(), GNEChange_Shape::redoName(), GNEChange_TAZElement::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_LaneType::undo(), GNEChange_Shape::undo(), GNEChange_TAZElement::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_LaneType::undoName(), GNEChange_Shape::undoName(), GNEChange_TAZElement::undoName(), and GNEChange_TLS::undoName().

◆ myHierarchicalContainers

std::map<GNEHierarchicalElement*, GNEHierarchicalContainer> GNEChange::myHierarchicalContainers
protectedinherited

map with hierarchical container of all parent and children elements

Definition at line 224 of file GNEChange.h.

Referenced by GNEChange::GNEChange(), and GNEChange::restoreHierarchicalContainers().

◆ myLane

GNELane* GNEChange_Lane::myLane
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(), undo(), and ~GNEChange_Lane().

◆ myLaneAttrs

const NBEdge::Lane GNEChange_Lane::myLaneAttrs
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.

Referenced by redo(), and undo().

◆ myOriginalHierarchicalContainer

const GNEHierarchicalContainer GNEChange::myOriginalHierarchicalContainer
protectedinherited

◆ myRecomputeConnections

bool GNEChange_Lane::myRecomputeConnections
private

@bried whether to recompute connection when adding a new lane

Definition at line 80 of file GNEChange_Lane.h.

Referenced by redo().

◆ mySelectedElement


The documentation for this class was generated from the following files: