Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GNEChange_Edge Class Reference

#include <GNEChange_Edge.h>

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

Public Member Functions

 GNEChange_Edge (GNEEdge *edge, bool forward)
 Constructor for creating/deleting an edge.
 
 ~GNEChange_Edge ()
 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
 

Protected Member Functions

void addEdgeLanes ()
 add given lane into parents and children
 
void removeEdgeLanes ()
 remove given lane from parents and children
 

Protected Attributes

std::vector< std::vector< GNEAdditional * > > myChildLaneAdditionals
 vector of references to vector of child additional (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 * > > myChildLaneGenericData
 vector of references to vector of child generic datas (used by edge lanes)
 
std::vector< std::vector< GNEAdditional * > > myLaneParentAdditionals
 vector of references to vector of parent additionals (used by edge lanes)
 
std::vector< std::vector< GNEDemandElement * > > myLaneParentDemandElements
 vector of references to vector of parent 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)
 

Private Attributes

GNEEdgemyEdge
 full information regarding the edge that is to be created/deleted
 

friend class

const Supermode mySupermode
 supermode related with this change
 
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
 
const GNEHierarchicalContainer myOriginalHierarchicalContainer
 Hierarchical container with parent and children.
 
std::map< GNEHierarchicalElement *, GNEHierarchicalContainermyHierarchicalContainers
 map with hierarchical container of all parent and children elements
 
GNEChangenext
 
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.
 
void restoreHierarchicalContainers ()
 restore container (only use in undo() function)
 
template<typename T >
void addElementInParentsAndChildren (T *element)
 add given element into parents and children (only use in redo() function)
 
template<typename T >
void removeElementFromParentsAndChildren (T *element)
 remove given element from parents and children (only use in redo() function)
 

Detailed Description

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

Definition at line 32 of file GNEChange_Edge.h.

Constructor & Destructor Documentation

◆ GNEChange_Edge()

GNEChange_Edge::GNEChange_Edge ( GNEEdge edge,
bool  forward 
)

Constructor for creating/deleting an edge.

constructor for creating an edge

Parameters
[in]edgeThe edge to be created/deleted
[in]forwardWhether to create/delete (true/false)

Definition at line 40 of file GNEChange_Edge.cpp.

◆ ~GNEChange_Edge()

Member Function Documentation

◆ addEdgeLanes()

void GNEChange_Edge::addEdgeLanes ( )
protected

add given lane into parents and children

Definition at line 160 of file GNEChange_Edge.cpp.

References GNEEdge::getLanes(), myChildLaneAdditionals, myChildLaneDemandElements, myChildLaneGenericData, myEdge, myLaneParentAdditionals, myLaneParentDemandElements, and myLaneParentGenericData.

Referenced by redo(), and undo().

Here is the caller graph for this function:

◆ 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 124 of file GNEChange.h.

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

Referenced by GNEChange_Additional::redo(), GNEChange_DemandElement::redo(), redo(), GNEChange_GenericData::redo(), and GNEChange_Lane::redo().

Here is the caller graph for this function:

◆ canMerge()

bool GNEChange::canMerge ( ) const
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 74 of file GNEChange.cpp.

Referenced by GNEUndoList::add().

Here is the caller graph for this function:

◆ getSupermode()

Supermode GNEChange::getSupermode ( ) const
inherited

get supermode

Definition at line 68 of file GNEChange.cpp.

References GNEChange::mySupermode.

Referenced by GNEUndoList::getRedoSupermode(), and GNEUndoList::getUndoSupermode().

Here is the caller graph for this function:

◆ mergeWith()

bool GNEChange::mergeWith ( GNEChange command)
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 80 of file GNEChange.cpp.

Referenced by GNEUndoList::add().

Here is the caller graph for this function:

◆ redo()

◆ redoName()

std::string GNEChange_Edge::redoName ( ) const
virtual

get Redo name

Implements GNEChange.

Definition at line 149 of file GNEChange_Edge.cpp.

References GNEAttributeCarrier::getID(), myEdge, GNEChange::myForward, and TL.

◆ removeEdgeLanes()

void GNEChange_Edge::removeEdgeLanes ( )
protected

remove given lane from parents and children

Definition at line 188 of file GNEChange_Edge.cpp.

References GNEEdge::getLanes(), myChildLaneAdditionals, myChildLaneDemandElements, myChildLaneGenericData, myEdge, myLaneParentAdditionals, myLaneParentDemandElements, and myLaneParentGenericData.

Referenced by redo(), and undo().

Here is the caller graph for this function:

◆ 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 167 of file GNEChange.h.

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

Referenced by GNEChange_Additional::redo(), GNEChange_DemandElement::redo(), redo(), GNEChange_GenericData::redo(), and GNEChange_Lane::redo().

Here is the caller graph for this function:

◆ restoreHierarchicalContainers()

void GNEChange::restoreHierarchicalContainers ( )
protectedinherited

restore container (only use in undo() function)

Definition at line 94 of file GNEChange.cpp.

References GNEChange::myHierarchicalContainers.

Referenced by GNEChange_Additional::undo(), GNEChange_DemandElement::undo(), undo(), GNEChange_GenericData::undo(), and GNEChange_Lane::undo().

Here is the caller graph for this function:

◆ size()

int GNEChange::size ( ) const
virtualinherited

Return the size of the command group.

Reimplemented in GNEChangeGroup.

Definition at line 61 of file GNEChange.cpp.

Referenced by GNEUndoList::currentCommandGroupSize(), and GNEChangeGroup::size().

Here is the caller graph for this function:

◆ undo()

◆ undoName()

std::string GNEChange_Edge::undoName ( ) const
virtual

return undoName

Implements GNEChange.

Definition at line 139 of file GNEChange_Edge.cpp.

References GNEAttributeCarrier::getID(), myEdge, GNEChange::myForward, and TL.

Field Documentation

◆ myChildLaneAdditionals

std::vector<std::vector<GNEAdditional*> > GNEChange_Edge::myChildLaneAdditionals
protected

vector of references to vector of child additional (used by edge lanes)

Definition at line 78 of file GNEChange_Edge.h.

Referenced by addEdgeLanes(), and removeEdgeLanes().

◆ myChildLaneDemandElements

std::vector<std::vector<GNEDemandElement*> > GNEChange_Edge::myChildLaneDemandElements
protected

vector of references to vector of child demand elements (used by edge lanes)

Definition at line 81 of file GNEChange_Edge.h.

Referenced by addEdgeLanes(), and removeEdgeLanes().

◆ myChildLaneGenericData

std::vector<std::vector<GNEGenericData*> > GNEChange_Edge::myChildLaneGenericData
protected

vector of references to vector of child generic datas (used by edge lanes)

Definition at line 84 of file GNEChange_Edge.h.

Referenced by addEdgeLanes(), and removeEdgeLanes().

◆ myEdge

GNEEdge* GNEChange_Edge::myEdge
private

full information regarding the edge that is to be created/deleted

Note
we assume shared responsibility for the pointer (via reference counting)

Definition at line 90 of file GNEChange_Edge.h.

Referenced by addEdgeLanes(), redo(), redoName(), removeEdgeLanes(), undo(), undoName(), and ~GNEChange_Edge().

◆ myForward

bool GNEChange::myForward
protectedinherited

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

Definition at line 212 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(), redo(), GNEChange_EdgeType::redo(), GNEChange_GenericData::redo(), GNEChange_Junction::redo(), GNEChange_Lane::redo(), GNEChange_MeanData::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(), redoName(), GNEChange_EdgeType::redoName(), GNEChange_GenericData::redoName(), GNEChange_Junction::redoName(), GNEChange_Lane::redoName(), GNEChange_MeanData::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(), undo(), GNEChange_EdgeType::undo(), GNEChange_GenericData::undo(), GNEChange_Junction::undo(), GNEChange_Lane::undo(), GNEChange_MeanData::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(), undoName(), GNEChange_EdgeType::undoName(), GNEChange_GenericData::undoName(), GNEChange_Junction::undoName(), GNEChange_Lane::undoName(), GNEChange_MeanData::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 221 of file GNEChange.h.

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

◆ myLaneParentAdditionals

std::vector<std::vector<GNEAdditional*> > GNEChange_Edge::myLaneParentAdditionals
protected

vector of references to vector of parent additionals (used by edge lanes)

Definition at line 69 of file GNEChange_Edge.h.

Referenced by addEdgeLanes(), and removeEdgeLanes().

◆ myLaneParentDemandElements

std::vector<std::vector<GNEDemandElement*> > GNEChange_Edge::myLaneParentDemandElements
protected

vector of references to vector of parent demand elements (used by edge lanes)

Definition at line 72 of file GNEChange_Edge.h.

Referenced by addEdgeLanes(), and removeEdgeLanes().

◆ myLaneParentGenericData

std::vector<std::vector<GNEGenericData*> > GNEChange_Edge::myLaneParentGenericData
protected

vector of references to vector of parent generic datas (used by edge lanes)

Definition at line 75 of file GNEChange_Edge.h.

Referenced by addEdgeLanes(), and removeEdgeLanes().

◆ myOriginalHierarchicalContainer

const GNEHierarchicalContainer GNEChange::myOriginalHierarchicalContainer
protectedinherited

◆ mySelectedElement

◆ mySupermode

const Supermode GNEChange::mySupermode
protectedinherited

supermode related with this change

Definition at line 209 of file GNEChange.h.

Referenced by GNEChange::getSupermode().

◆ next


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