Eclipse SUMO - Simulation of Urban MObility
GNEChange_TLS Class Reference

#include <GNEChange_TLS.h>

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

Public Member Functions

 GNEChange_TLS (GNEJunction *junction, NBTrafficLightDefinition *tlDef, bool forward, bool forceInsert=false, const std::string tlID="")
 Constructor for creating/deleting an edge. More...
 
virtual FXuint size () const
 return actual size More...
 
 ~GNEChange_TLS ()
 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

bool myForceInsert
 check if forceInsert is enabled More...
 
GNEJunctionmyJunction
 we need the junction because it is the target of our change commands More...
 
NBTrafficLightDefinitionmyTlDef
 the traffic light to be created/deleted. We assume no responsiblity for the pointer More...
 

Detailed Description

A network change in which a traffic light is created or deleted

Definition at line 34 of file GNEChange_TLS.h.

Constructor & Destructor Documentation

◆ GNEChange_TLS()

GNEChange_TLS::GNEChange_TLS ( GNEJunction junction,
NBTrafficLightDefinition tlDef,
bool  forward,
bool  forceInsert = false,
const std::string  tlID = "" 
)

Constructor for creating/deleting an edge.

constructor for creating an edge

Parameters
[in]junctionThe junction to which the traffic light belong
[in]tlDefThe traffic light definition (may be 0 on creation)
[in]forwardWhether to create/delete (true/false)
[in]tlIDThe id for the newly created tlDef (set to junction id if * "" is given)

Definition at line 41 of file GNEChange_TLS.cpp.

◆ ~GNEChange_TLS()

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(), GNEChange_Lane::redo(), GNEChange_Shape::redo(), and GNEChange_TAZElement::redo().

Here is the caller graph for this function:

◆ redo()

◆ redoName()

FXString GNEChange_TLS::redoName ( ) const
virtual

get Redo name

Reimplemented from GNEChange.

Definition at line 117 of file GNEChange_TLS.cpp.

References GNEChange::myForward, SUMO_TAG_TRAFFIC_LIGHT, 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(), GNEChange_Lane::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(), GNEChange_Lane::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_TLS::undoName ( ) const
virtual

return undoName

Reimplemented from GNEChange.

Definition at line 107 of file GNEChange_TLS.cpp.

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

Field Documentation

◆ myForceInsert

bool GNEChange_TLS::myForceInsert
private

check if forceInsert is enabled

Definition at line 77 of file GNEChange_TLS.h.

Referenced by redo(), and undo().

◆ 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(), GNEChange_Lane::redo(), GNEChange_LaneType::redo(), GNEChange_Shape::redo(), GNEChange_TAZElement::redo(), 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(), GNEChange_Lane::redoName(), GNEChange_LaneType::redoName(), GNEChange_Shape::redoName(), GNEChange_TAZElement::redoName(), 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(), GNEChange_Lane::undo(), GNEChange_LaneType::undo(), GNEChange_Shape::undo(), GNEChange_TAZElement::undo(), 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(), GNEChange_Lane::undoName(), GNEChange_LaneType::undoName(), GNEChange_Shape::undoName(), GNEChange_TAZElement::undoName(), and 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().

◆ myJunction

GNEJunction* GNEChange_TLS::myJunction
private

we need the junction because it is the target of our change commands

Note
we assume shared responsiblity for the junction via reference counting

Definition at line 69 of file GNEChange_TLS.h.

Referenced by redo(), undo(), and ~GNEChange_TLS().

◆ myOriginalHierarchicalContainer

const GNEHierarchicalContainer GNEChange::myOriginalHierarchicalContainer
protectedinherited

◆ mySelectedElement

◆ myTlDef

NBTrafficLightDefinition* GNEChange_TLS::myTlDef
private

the traffic light to be created/deleted. We assume no responsiblity for the pointer

Note
since it is hard to track by which NBnodes a tlDef is used (may be more than one).

Definition at line 74 of file GNEChange_TLS.h.

Referenced by redo(), and undo().


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