Eclipse SUMO - Simulation of Urban MObility
|
#include <GNEChange_TLS.h>
Public Member Functions | |
GNEChange_TLS (GNEJunction *junction, NBTrafficLightDefinition *tlDef, bool forward, bool forceInsert=false, const std::string tlID="") | |
Constructor for creating/deleting a TLS. | |
GNEChange_TLS (GNEJunction *junction, NBTrafficLightDefinition *tlDef, bool forward, TrafficLightType type, bool forceInsert=false, const std::string tlID="") | |
Constructor for creating/deleting a TLS. | |
GNEChange_TLS (GNEJunction *junction, NBTrafficLightDefinition *tlDef, const std::string &newID) | |
Constructor for renaming a TLS. | |
~GNEChange_TLS () | |
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 | |
const bool | myForceInsert |
check if forceInsert is enabled | |
GNEJunction * | myJunction |
we need the junction because it is the target of our change commands | |
const std::string | myNewID |
const std::string | myOldID |
variables used for renaming TLS | |
NBTrafficLightDefinition * | myTlDef |
the traffic light to be created/deleted. We assume no responsibility for the pointer | |
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 | |
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 *, GNEHierarchicalContainer > | myHierarchicalContainers |
map with hierarchical container of all parent and children elements | |
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) | |
A network change in which a traffic light is created or deleted
Definition at line 34 of file GNEChange_TLS.h.
GNEChange_TLS::GNEChange_TLS | ( | GNEJunction * | junction, |
NBTrafficLightDefinition * | tlDef, | ||
bool | forward, | ||
bool | forceInsert = false , |
||
const std::string | tlID = "" |
||
) |
Constructor for creating/deleting a TLS.
constructor for creating an edge
[in] | junction | The junction to which the traffic light belong |
[in] | tlDef | The traffic light definition (may be 0 on creation) |
[in] | forward | Whether to create/delete (true/false) |
[in] | tlID | The id for the newly created tlDef (set to junction id if * "" is given) |
Definition at line 43 of file GNEChange_TLS.cpp.
References StringBijection< T >::get(), OptionsCont::getOptions(), and SUMOXMLDefinitions::TrafficLightTypes.
GNEChange_TLS::GNEChange_TLS | ( | GNEJunction * | junction, |
NBTrafficLightDefinition * | tlDef, | ||
bool | forward, | ||
TrafficLightType | type, | ||
bool | forceInsert = false , |
||
const std::string | tlID = "" |
||
) |
Constructor for creating/deleting a TLS.
[in] | junction | The junction to which the traffic light belong |
[in] | tlDef | The traffic light definition (may be 0 on creation) |
[in] | forward | Whether to create/delete (true/false) |
[in] | tlID | The id for the newly created tlDef (set to junction id if * "" is given) |
[in] | type | TrafficLightType |
Definition at line 65 of file GNEChange_TLS.cpp.
References NBNode::getControllingTLS(), GUIGlObject::getMicrosimID(), GNEJunction::getNBNode(), GNEReferenceCounter::incRef(), NBNode::isTLControlled(), myJunction, and myTlDef.
GNEChange_TLS::GNEChange_TLS | ( | GNEJunction * | junction, |
NBTrafficLightDefinition * | tlDef, | ||
const std::string & | newID | ||
) |
Constructor for renaming a TLS.
[in] | junction | The junction to which the traffic light belong |
[in] | tlDef | The traffic light definition (may be 0 on creation) |
[in] | newID | new TL ID |
Definition at line 86 of file GNEChange_TLS.cpp.
References GNEReferenceCounter::incRef(), and myJunction.
GNEChange_TLS::~GNEChange_TLS | ( | ) |
Destructor.
Definition at line 97 of file GNEChange_TLS.cpp.
References GNEReferenceCounter::decRef(), GNEViewParent::getGNEAppWindows(), GNEAttributeCarrier::getID(), GNEAttributeCarrier::getNet(), GNEAttributeCarrier::getTagStr(), GNENet::getViewNet(), GNEViewNet::getViewParent(), GNEApplicationWindow::isUndoRedoAllowed(), myJunction, GNEReferenceCounter::unreferenced(), and WRITE_DEBUG.
|
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(), GNEChange_Edge::redo(), GNEChange_GenericData::redo(), and GNEChange_Lane::redo().
|
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().
|
inherited |
get supermode
Definition at line 68 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 80 of file GNEChange.cpp.
Referenced by GNEUndoList::add().
|
virtual |
redo action
Implements GNEChange.
Definition at line 143 of file GNEChange_TLS.cpp.
References GNEJunction::addTrafficLight(), GNEAttributeCarrier::getID(), GNEAttributeCarrier::getNet(), GNENet::getSavingStatus(), GNEAttributeCarrier::getTagStr(), GNENet::getTLLogicCont(), myForceInsert, GNEChange::myForward, myJunction, myNewID, myOldID, myTlDef, GNEJunction::removeTrafficLight(), NBTrafficLightLogicCont::rename(), GNENetHelper::SavingStatus::requireSaveNetwork(), and WRITE_DEBUG.
|
virtual |
get Redo name
Implements GNEChange.
Definition at line 185 of file GNEChange_TLS.cpp.
References GNEAttributeCarrier::getID(), GNEChange::myForward, myJunction, and TL.
|
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(), GNEChange_Edge::redo(), GNEChange_GenericData::redo(), and GNEChange_Lane::redo().
|
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(), GNEChange_Edge::undo(), GNEChange_GenericData::undo(), and GNEChange_Lane::undo().
|
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().
|
virtual |
undo action
Implements GNEChange.
Definition at line 111 of file GNEChange_TLS.cpp.
References GNEJunction::addTrafficLight(), GNEAttributeCarrier::getID(), GNEAttributeCarrier::getNet(), GNENet::getSavingStatus(), GNEAttributeCarrier::getTagStr(), GNENet::getTLLogicCont(), myForceInsert, GNEChange::myForward, myJunction, myNewID, myOldID, myTlDef, GNEJunction::removeTrafficLight(), NBTrafficLightLogicCont::rename(), GNENetHelper::SavingStatus::requireSaveNetwork(), and WRITE_DEBUG.
|
virtual |
return undoName
Implements GNEChange.
Definition at line 175 of file GNEChange_TLS.cpp.
References GNEAttributeCarrier::getID(), GNEChange::myForward, myJunction, and TL.
|
private |
check if forceInsert is enabled
Definition at line 94 of file GNEChange_TLS.h.
|
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(), GNEChange_Edge::redo(), GNEChange_EdgeType::redo(), GNEChange_GenericData::redo(), GNEChange_Junction::redo(), GNEChange_Lane::redo(), GNEChange_MeanData::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_MeanData::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_MeanData::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_MeanData::undoName(), and undoName().
|
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().
|
private |
we need the junction because it is the target of our change commands
Definition at line 86 of file GNEChange_TLS.h.
Referenced by GNEChange_TLS(), GNEChange_TLS(), redo(), redoName(), undo(), undoName(), and ~GNEChange_TLS().
|
private |
Definition at line 98 of file GNEChange_TLS.h.
|
private |
variables used for renaming TLS
Definition at line 97 of file GNEChange_TLS.h.
|
protectedinherited |
Hierarchical container with parent and children.
Definition at line 218 of file GNEChange.h.
Referenced by GNEChange::addElementInParentsAndChildren(), GNEChange_DemandElement::redo(), GNEChange::removeElementFromParentsAndChildren(), and GNEChange_DemandElement::undo().
|
protectedinherited |
flag for check if element is selected
Definition at line 215 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(), GNEChange_Lane::redo(), GNEChange_MeanData::redo(), GNEChange_Additional::undo(), GNEChange_Connection::undo(), GNEChange_Crossing::undo(), GNEChange_DemandElement::undo(), GNEChange_Edge::undo(), GNEChange_GenericData::undo(), GNEChange_Junction::undo(), GNEChange_Lane::undo(), and GNEChange_MeanData::undo().
|
protectedinherited |
supermode related with this change
Definition at line 209 of file GNEChange.h.
Referenced by GNEChange::getSupermode().
|
private |
the traffic light to be created/deleted. We assume no responsibility for the pointer
Definition at line 91 of file GNEChange_TLS.h.
Referenced by GNEChange_TLS(), redo(), and undo().
|
privateinherited |
Definition at line 225 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().