Eclipse SUMO - Simulation of Urban MObility
GNEHierarchicalChildElements Class Referenceabstract

An special type of Attribute carrier that owns hierarchical elements. More...

#include <GNEHierarchicalChildElements.h>

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

Data Structures

class  ChildConnections
 class to pack all variables and functions relative to connections between hierarchical element and their children More...
 

Public Member Functions

template<typename T >
void addChildElement (T *element)
 add child More...
 
template<>
void addChildElement (GNEEdge *edge)
 
template<>
void addChildElement (GNELane *lane)
 
template<>
void addChildElement (GNEAdditional *additional)
 
template<>
void addChildElement (GNEShape *shape)
 
template<>
void addChildElement (GNETAZElement *TAZElement)
 
template<>
void addChildElement (GNEDemandElement *demandElement)
 
template<>
void addChildElement (GNEGenericData *genericDataElement)
 
bool checkChildAdditionalsOverlapping () const
 check if children are overlapped (Used by Rerouters) More...
 
bool checkChildDemandElementsOverlapping () const
 check if childs demand elements are overlapped More...
 
void drawChildConnections (const GUIVisualizationSettings &s, const GUIGlObjectType GLTypeParent, const double exaggeration) const
 Draw connections between parent and children. More...
 
void drawChildDottedConnections (const GUIVisualizationSettings &s, const double exaggeration) const
 Draw dotted connections between parent and children. More...
 
const std::vector< GNEAdditional * > & getChildAdditionals () const
 return child additionals More...
 
const std::vector< GNEDemandElement * > & getChildDemandElements () const
 return child demand elements More...
 
const std::vector< GNEDemandElement * > & getChildDemandElementsByType (SumoXMLTag tag) const
 return child demand elements by type More...
 
const std::vector< GNEEdge * > & getChildEdges () const
 get child edges More...
 
const std::vector< GNEGenericData * > & getChildGenericDatas () const
 return child generic data elements More...
 
const std::vector< GNELane * > & getChildLanes () const
 get child lanes More...
 
const PositiongetChildPosition (const GNELane *lane)
 get child position calculated in ChildConnections More...
 
double getChildRotation (const GNELane *lane)
 get child rotation calculated in ChildConnections More...
 
const std::vector< GNEShape * > & getChildShapes () const
 get child shapes More...
 
const std::vector< GNETAZElement * > & getChildTAZElements () const
 get child TAZElements More...
 
GNEDemandElementgetNextChildDemandElement (const GNEDemandElement *demandElement) const
 get next child demand element to the given demand element More...
 
GNEDemandElementgetPreviousChildDemandElement (const GNEDemandElement *demandElement) const
 get previous child demand element to the given demand element More...
 
 GNEHierarchicalChildElements (const GNEAttributeCarrier *AC, const std::vector< GNEJunction *> &childJunctions, const std::vector< GNEEdge *> &childEdges, const std::vector< GNELane *> &childLanes, const std::vector< GNEAdditional *> &childAdditionals, const std::vector< GNEShape *> &childShapes, const std::vector< GNETAZElement *> &childTAZElements, const std::vector< GNEDemandElement *> &childDemandElements, const std::vector< GNEGenericData *> &childGenericDataElements)
 Parameter Constructor. More...
 
template<typename T >
void removeChildElement (T *element)
 remove child More...
 
template<>
void removeChildElement (GNEEdge *edge)
 
template<>
void removeChildElement (GNELane *lane)
 
template<>
void removeChildElement (GNEAdditional *additional)
 
template<>
void removeChildElement (GNEShape *shape)
 
template<>
void removeChildElement (GNETAZElement *TAZElement)
 
template<>
void removeChildElement (GNEDemandElement *demandElement)
 
template<>
void removeChildElement (GNEGenericData *genericDataElement)
 
void sortChildAdditionals ()
 sort child additionals (used by Rerouters, VSS, TAZs...) More...
 
void sortChildDemandElements ()
 sort child demand elements More...
 
void updateChildConnections ()
 update child connections More...
 
virtual void updateParentAdditional ()
 update parent after add or remove a child (can be reimplemented, for example used for statistics) More...
 
virtual void updateParentDemandElement ()
 update parent after add or remove a child (can be reimplemented, for example used for statistics) More...
 
 ~GNEHierarchicalChildElements ()
 Destructor. More...
 
Functions related with geometry of element

update pre-computed geometry information

virtual void updateGeometry ()=0
 
virtual Position getPositionInView () const =0
 Returns position of hierarchical element in view. More...
 

Protected Member Functions

void changeChildEdges (GNEAdditional *elementChild, const std::string &newEdgeIDs)
 change child edges of an additional More...
 
void changeChildLanes (GNEAdditional *elementChild, const std::string &newEdgeIDs)
 change child edges of an additional More...
 

Protected Attributes

ChildConnections myChildConnections
 variable ChildConnections More...
 

Private Member Functions

 GNEHierarchicalChildElements (const GNEHierarchicalChildElements &)=delete
 Invalidated copy constructor. More...
 
GNEHierarchicalChildElementsoperator= (const GNEHierarchicalChildElements &)=delete
 Invalidated assignment operator. More...
 

Private Attributes

const GNEAttributeCarriermyAC
 pointer to AC (needed to avoid diamond problem) More...
 
std::vector< GNEAdditional * > myChildAdditionals
 vector with the child additionas More...
 
std::vector< GNEDemandElement * > myChildDemandElements
 vector with the demand elements children More...
 
std::vector< GNEEdge * > myChildEdges
 vector with the child edges More...
 
std::vector< GNEGenericData * > myChildGenericDataElements
 vector with the generic data elements children More...
 
std::vector< GNEJunction * > myChildJunctions
 vector with the child junctions More...
 
std::vector< GNELane * > myChildLanes
 vector with the child lanes More...
 
std::vector< GNEShape * > myChildShapes
 vector with the child lanes More...
 
std::vector< GNETAZElement * > myChildTAZElements
 vector with the child TAZ Elements More...
 
std::map< SumoXMLTag, std::vector< GNEDemandElement *> > myDemandElementsByType
 vector with the demand elements children sorted by type and filtered (to avoid duplicated More...
 

Friends

class GNEChange_Children
 declare GNEChange_Children as friend class More...
 

Detailed Description

An special type of Attribute carrier that owns hierarchical elements.

Definition at line 45 of file GNEHierarchicalChildElements.h.

Constructor & Destructor Documentation

◆ GNEHierarchicalChildElements() [1/2]

GNEHierarchicalChildElements::GNEHierarchicalChildElements ( const GNEAttributeCarrier AC,
const std::vector< GNEJunction *> &  childJunctions,
const std::vector< GNEEdge *> &  childEdges,
const std::vector< GNELane *> &  childLanes,
const std::vector< GNEAdditional *> &  childAdditionals,
const std::vector< GNEShape *> &  childShapes,
const std::vector< GNETAZElement *> &  childTAZElements,
const std::vector< GNEDemandElement *> &  childDemandElements,
const std::vector< GNEGenericData *> &  childGenericDataElements 
)

Parameter Constructor.

Parameters
[in]ACAttribute carrier
[in]childJunctionsvector of child junctions
[in]childEdgesvector of child edges
[in]childLanesvector of child lanes
[in]childAdditionalsvector of child additional
[in]childShapesvector of child shapes
[in]childTAZElementsvector of child TAZs
[in]childDemandElementsvector of child demand elements
[in]childGenericDataElementsvector of child generic data elements

Definition at line 40 of file GNEHierarchicalChildElements.cpp.

References GNEAttributeCarrier::allowedTagsByCategory(), and myDemandElementsByType.

◆ ~GNEHierarchicalChildElements()

GNEHierarchicalChildElements::~GNEHierarchicalChildElements ( )

Destructor.

Definition at line 67 of file GNEHierarchicalChildElements.cpp.

◆ GNEHierarchicalChildElements() [2/2]

GNEHierarchicalChildElements::GNEHierarchicalChildElements ( const GNEHierarchicalChildElements )
privatedelete

Invalidated copy constructor.

Member Function Documentation

◆ addChildElement() [1/8]

template<typename T >
void GNEHierarchicalChildElements::addChildElement ( T *  element)

add child

Referenced by GNENetHelper::AttributeCarriers::addPOI(), GNEAdditionalHandler::buildAccess(), GNEAdditionalHandler::buildBusStop(), GNEAdditionalHandler::buildCalibrator(), GNEAdditionalHandler::buildCalibratorFlow(), GNEAdditionalHandler::buildChargingStation(), GNEAdditionalHandler::buildClosingLaneReroute(), GNEAdditionalHandler::buildClosingReroute(), GNEAdditionalHandler::buildContainerStop(), GNEAdditionalHandler::buildDetectorE1(), GNEAdditionalHandler::buildDetectorE1Instant(), GNEAdditionalHandler::buildDetectorEntry(), GNEAdditionalHandler::buildDetectorExit(), GNEDataHandler::buildEdgeData(), GNEDataHandler::buildEdgeRelationData(), GNEAdditionalHandler::builDestProbReroute(), GNERouteHandler::buildFlow(), GNERouteHandler::buildFlowEmbeddedRoute(), GNERouteHandler::buildFlowOverRoute(), GNEAdditionalHandler::buildMultiLaneDetectorE2(), GNEAdditionalHandler::buildParkingArea(), GNEAdditionalHandler::buildParkingSpace(), GNERouteHandler::buildPerson(), GNERouteHandler::buildPersonFlow(), GNERouteHandler::buildPersonStop(), GNERouteHandler::buildPersonTrip(), GNEAdditionalHandler::buildRerouterInterval(), GNERouteHandler::buildRide(), GNEAdditionalHandler::buildRouteProbe(), GNEAdditionalHandler::buildRouteProbReroute(), GNEAdditionalHandler::buildSingleLaneDetectorE2(), GNERouteHandler::buildStop(), GNEAdditionalHandler::buildTAZ(), GNEDataHandler::buildTAZRelationData(), GNERouteHandler::buildTrip(), GNEAdditionalHandler::buildVaporizer(), GNEAdditionalHandler::buildVariableSpeedSignStep(), GNERouteHandler::buildVehicleEmbeddedRoute(), GNERouteHandler::buildVehicleOverRoute(), GNERouteHandler::buildWalk(), GNEAdditionalHandler::builParkingAreaReroute(), and GNERouteHandler::closeRoute().

Here is the caller graph for this function:

◆ addChildElement() [2/8]

template<>
void GNEHierarchicalChildElements::addChildElement ( GNEEdge edge)

◆ addChildElement() [3/8]

template<>
void GNEHierarchicalChildElements::addChildElement ( GNELane lane)

◆ addChildElement() [4/8]

◆ addChildElement() [5/8]

template<>
void GNEHierarchicalChildElements::addChildElement ( GNEShape shape)

◆ addChildElement() [6/8]

template<>
void GNEHierarchicalChildElements::addChildElement ( GNETAZElement TAZElement)

◆ addChildElement() [7/8]

◆ addChildElement() [8/8]

template<>
void GNEHierarchicalChildElements::addChildElement ( GNEGenericData genericDataElement)

◆ changeChildEdges()

void GNEHierarchicalChildElements::changeChildEdges ( GNEAdditional elementChild,
const std::string &  newEdgeIDs 
)
protected

change child edges of an additional

Definition at line 549 of file GNEHierarchicalChildElements.cpp.

References GNEAttributeCarrier::getNet(), myChildConnections, myChildEdges, and GNEHierarchicalChildElements::ChildConnections::update().

Referenced by GNERerouter::setAttribute().

Here is the caller graph for this function:

◆ changeChildLanes()

void GNEHierarchicalChildElements::changeChildLanes ( GNEAdditional elementChild,
const std::string &  newEdgeIDs 
)
protected

change child edges of an additional

Definition at line 566 of file GNEHierarchicalChildElements.cpp.

References GNEAttributeCarrier::getNet(), myChildConnections, myChildLanes, and GNEHierarchicalChildElements::ChildConnections::update().

Referenced by GNEVariableSpeedSign::setAttribute().

Here is the caller graph for this function:

◆ checkChildAdditionalsOverlapping()

bool GNEHierarchicalChildElements::checkChildAdditionalsOverlapping ( ) const

check if children are overlapped (Used by Rerouters)

Definition at line 449 of file GNEHierarchicalChildElements.cpp.

References GNEAdditional::getAttributeDouble(), myChildAdditionals, SUMO_ATTR_BEGIN, SUMO_ATTR_END, and SUMO_ATTR_TIME.

Referenced by GNERerouterDialog::onCmdAccept().

Here is the caller graph for this function:

◆ checkChildDemandElementsOverlapping()

bool GNEHierarchicalChildElements::checkChildDemandElementsOverlapping ( ) const

check if childs demand elements are overlapped

Definition at line 502 of file GNEHierarchicalChildElements.cpp.

◆ drawChildConnections()

void GNEHierarchicalChildElements::drawChildConnections ( const GUIVisualizationSettings s,
const GUIGlObjectType  GLTypeParent,
const double  exaggeration 
) const

Draw connections between parent and children.

Definition at line 99 of file GNEHierarchicalChildElements.cpp.

References GNEHierarchicalChildElements::ChildConnections::drawConnection(), GUIVisualizationSettings::drawForRectangleSelection, and myChildConnections.

Referenced by GNEDetectorE3::drawGL(), GNEVariableSpeedSign::drawGL(), GNERerouter::drawGL(), GNEEdge::drawRerouterSymbol(), and GNELane::drawVSSSymbol().

Here is the caller graph for this function:

◆ drawChildDottedConnections()

void GNEHierarchicalChildElements::drawChildDottedConnections ( const GUIVisualizationSettings s,
const double  exaggeration 
) const

Draw dotted connections between parent and children.

Definition at line 108 of file GNEHierarchicalChildElements.cpp.

References GNEHierarchicalChildElements::ChildConnections::drawDottedConnection(), GUIVisualizationSettings::drawForRectangleSelection, and myChildConnections.

Referenced by GNEDetectorE3::drawGL(), GNEVariableSpeedSign::drawGL(), and GNERerouter::drawGL().

Here is the caller graph for this function:

◆ getChildAdditionals()

const std::vector< GNEAdditional * > & GNEHierarchicalChildElements::getChildAdditionals ( ) const

return child additionals

Definition at line 341 of file GNEHierarchicalChildElements.cpp.

References myChildAdditionals.

Referenced by GNEAdditionalHandler::accessCanBeCreated(), GNEEdge::addConnection(), GNENetHelper::PathCalculator::busStopConnected(), GNEDetectorE3::checkChildAdditionalRestriction(), GNEAdditionalHandler::checkOverlappingRerouterIntervals(), GNENet::deleteAdditional(), GNENet::deleteEdge(), GNENet::deleteLane(), GNELane::drawChildren(), GNEBusStop::drawConnectionAccess(), GNEEdge::drawGL(), GNEEdge::endEdgeGeometryMoving(), GNELane::endGeometryMoving(), GNEAdditional::generateAdditionalChildID(), GNETAZ::getAttribute(), GNEEdge::getRouteProbeRelativePosition(), GNEVariableSpeedSignStep::GNEVariableSpeedSignStep(), GNEAdditionalHandler::myEndElement(), GNECalibratorDialog::onCmdClickedFlow(), GNERerouterDialog::onCmdClickedInterval(), GNECalibratorDialog::onCmdClickedRoute(), GNEVariableSpeedSignDialog::onCmdClickedStep(), GNECalibratorDialog::onCmdClickedVehicleType(), GNEVariableSpeedSignDialog::onCmdEditStep(), GNEEdge::removeConnection(), GNENet::replaceIncomingEdge(), GNEEdge::retrieveGNEConnection(), GNEBusStop::setAttribute(), GNEParkingArea::setAttribute(), GNEDetectorE3::setAttribute(), GNERerouterInterval::setAttribute(), GNEVariableSpeedSign::setAttribute(), GNERerouter::setAttribute(), GNEFrameModuls::AttributeCarrierHierarchy::showAttributeCarrierChildren(), GNENet::splitEdge(), GNEEdge::startEdgeGeometryMoving(), GNELane::startGeometryMoving(), GNEDeleteFrame::SubordinatedElements::SubordinatedElements(), GNECalibratorDialog::updateFlowTable(), GNEEdge::updateGeometry(), GNELane::updateGeometry(), GNERerouterDialog::updateIntervalTable(), GNETAZ::updateParentAdditional(), GNETAZFrame::TAZCommonStatistics::updateStatistics(), GNEVariableSpeedSignDialog::updateTableSteps(), and GNEAdditional::writeAdditional().

Here is the caller graph for this function:

◆ getChildDemandElements()

const std::vector< GNEDemandElement * > & GNEHierarchicalChildElements::getChildDemandElements ( ) const

return child demand elements

Definition at line 359 of file GNEHierarchicalChildElements.cpp.

References myChildDemandElements.

Referenced by GNENet::deleteAdditional(), GNENet::deleteDemandElement(), GNENet::deleteEdge(), GNENet::deleteGenericData(), GNENet::deleteLane(), GNENet::deleteTAZElement(), GNELane::drawChildren(), GNEBusStop::drawGL(), GNEChargingStation::drawGL(), GNEContainerStop::drawGL(), GNEParkingArea::drawGL(), GNEPersonStop::drawGL(), GNEStop::drawGL(), GNEEdge::drawGL(), GNEPerson::drawGL(), GNEJunction::drawJunctionChildren(), GNEDemandElement::drawPersonPlanPartialLane(), GNEEdge::endEdgeGeometryMoving(), GNELane::endGeometryMoving(), GNEAdditional::endGeometryMoving(), GNEPerson::getCenteringBoundary(), GNEVehicle::getDemandElementProblem(), GNEDemandElement::getFirstAllowedVehicleLane(), GNEFrameModuls::DemandElementSelector::getPersonPlanPreviousEdge(), GNEPerson::getPositionInView(), GNEEdge::getVehiclesOverEdgeMap(), GNEVehicle::isDemandElementValid(), GNEPersonTypeFrame::PersonTypeEditor::onCmdDeletePersonType(), GNEVehicleTypeFrame::VehicleTypeEditor::onCmdDeleteVehicleType(), GNEConnectorFrame::ConnectionModifications::onCmdSaveModifications(), GNEDeleteFrame::removeAttributeCarrier(), GNENet::replaceIncomingEdge(), GNEVehicle::setAttribute(), GNEFrameModuls::AttributeCarrierHierarchy::showAttributeCarrierChildren(), GNEViewNetHelper::DemandViewOptions::showNonInspectedDemandElements(), GNENet::splitEdge(), GNEEdge::startEdgeGeometryMoving(), GNELane::startGeometryMoving(), GNEAdditional::startGeometryMoving(), GNEDeleteFrame::SubordinatedElements::SubordinatedElements(), GNERouteHandler::transformToFlow(), GNERouteHandler::transformToRouteFlow(), GNERouteHandler::transformToTrip(), GNERouteHandler::transformToVehicle(), GNENetHelper::AttributeCarriers::updateDemandElementID(), GNEBusStop::updateGeometry(), GNEEdge::updateGeometry(), GNEVehicleType::updateGeometry(), GNELane::updateGeometry(), GNEPersonTrip::updateGeometry(), GNERide::updateGeometry(), GNERoute::updateGeometry(), GNEWalk::updateGeometry(), GNEPerson::updateGeometry(), GNEVehicle::updateGeometry(), GNEDemandElement::updatePartialGeometry(), GNERoute::writeDemandElement(), GNEPerson::writeDemandElement(), and GNEVehicle::writeDemandElement().

◆ getChildDemandElementsByType()

const std::vector< GNEDemandElement * > & GNEHierarchicalChildElements::getChildDemandElementsByType ( SumoXMLTag  tag) const

return child demand elements by type

Definition at line 490 of file GNEHierarchicalChildElements.cpp.

References myDemandElementsByType.

Referenced by GNEFrameModuls::AttributeCarrierHierarchy::showAttributeCarrierChildren().

Here is the caller graph for this function:

◆ getChildEdges()

const std::vector< GNEEdge * > & GNEHierarchicalChildElements::getChildEdges ( ) const

get child edges

Definition at line 329 of file GNEHierarchicalChildElements.cpp.

References myChildEdges.

Referenced by GNERerouter::getAttribute(), and GNEFrameModuls::AttributeCarrierHierarchy::showAttributeCarrierChildren().

Here is the caller graph for this function:

◆ getChildGenericDatas()

const std::vector< GNEGenericData * > & GNEHierarchicalChildElements::getChildGenericDatas ( ) const

◆ getChildLanes()

const std::vector< GNELane * > & GNEHierarchicalChildElements::getChildLanes ( ) const

get child lanes

Definition at line 335 of file GNEHierarchicalChildElements.cpp.

References myChildLanes.

Referenced by GNEVariableSpeedSign::getAttribute(), and GNEFrameModuls::AttributeCarrierHierarchy::showAttributeCarrierChildren().

Here is the caller graph for this function:

◆ getChildPosition()

const Position & GNEHierarchicalChildElements::getChildPosition ( const GNELane lane)

get child position calculated in ChildConnections

Definition at line 71 of file GNEHierarchicalChildElements.cpp.

References myChildConnections, and GNEHierarchicalChildElements::ChildConnections::symbolsPositionAndRotation.

Referenced by GNEEdge::drawRerouterSymbol(), and GNELane::drawVSSSymbol().

Here is the caller graph for this function:

◆ getChildRotation()

double GNEHierarchicalChildElements::getChildRotation ( const GNELane lane)

get child rotation calculated in ChildConnections

Definition at line 82 of file GNEHierarchicalChildElements.cpp.

References myChildConnections, and GNEHierarchicalChildElements::ChildConnections::symbolsPositionAndRotation.

Referenced by GNEEdge::drawRerouterSymbol(), and GNELane::drawVSSSymbol().

Here is the caller graph for this function:

◆ getChildShapes()

const std::vector< GNEShape * > & GNEHierarchicalChildElements::getChildShapes ( ) const

get child shapes

Definition at line 347 of file GNEHierarchicalChildElements.cpp.

References myChildShapes.

Referenced by GNENet::deleteEdge(), GNENet::deleteLane(), GNELane::drawChildren(), GNENet::replaceIncomingEdge(), GNEFrameModuls::AttributeCarrierHierarchy::showAttributeCarrierChildren(), GNEDeleteFrame::SubordinatedElements::SubordinatedElements(), and GNELane::updateGeometry().

Here is the caller graph for this function:

◆ getChildTAZElements()

const std::vector< GNETAZElement * > & GNEHierarchicalChildElements::getChildTAZElements ( ) const

get child TAZElements

Definition at line 353 of file GNEHierarchicalChildElements.cpp.

References myChildTAZElements.

Referenced by GNEAdditionalHandler::buildTAZSink(), GNEAdditionalHandler::buildTAZSource(), GNENet::deleteTAZElement(), GNETAZElement::generateChildID(), GNETAZFrame::TAZCurrent::refreshTAZEdges(), GNEFrameModuls::AttributeCarrierHierarchy::showAttributeCarrierChildren(), and GNETAZ::writeTAZElement().

Here is the caller graph for this function:

◆ getNextChildDemandElement()

GNEDemandElement * GNEHierarchicalChildElements::getNextChildDemandElement ( const GNEDemandElement demandElement) const

get next child demand element to the given demand element

Definition at line 523 of file GNEHierarchicalChildElements.cpp.

References myChildDemandElements.

◆ getPositionInView()

◆ getPreviousChildDemandElement()

GNEDemandElement * GNEHierarchicalChildElements::getPreviousChildDemandElement ( const GNEDemandElement demandElement) const

get previous child demand element to the given demand element

Definition at line 508 of file GNEHierarchicalChildElements.cpp.

References myChildDemandElements.

Referenced by GNEPersonTrip::writeDemandElement(), GNERide::writeDemandElement(), and GNEWalk::writeDemandElement().

Here is the caller graph for this function:

◆ operator=()

GNEHierarchicalChildElements& GNEHierarchicalChildElements::operator= ( const GNEHierarchicalChildElements )
privatedelete

Invalidated assignment operator.

◆ removeChildElement() [1/8]

template<typename T >
void GNEHierarchicalChildElements::removeChildElement ( T *  element)

remove child

◆ removeChildElement() [2/8]

template<>
void GNEHierarchicalChildElements::removeChildElement ( GNEEdge edge)

◆ removeChildElement() [3/8]

template<>
void GNEHierarchicalChildElements::removeChildElement ( GNELane lane)

◆ removeChildElement() [4/8]

◆ removeChildElement() [5/8]

template<>
void GNEHierarchicalChildElements::removeChildElement ( GNEShape shape)

◆ removeChildElement() [6/8]

template<>
void GNEHierarchicalChildElements::removeChildElement ( GNETAZElement TAZElement)

◆ removeChildElement() [7/8]

◆ removeChildElement() [8/8]

template<>
void GNEHierarchicalChildElements::removeChildElement ( GNEGenericData genericDataElement)

◆ sortChildAdditionals()

void GNEHierarchicalChildElements::sortChildAdditionals ( )

◆ sortChildDemandElements()

void GNEHierarchicalChildElements::sortChildDemandElements ( )

sort child demand elements

Definition at line 496 of file GNEHierarchicalChildElements.cpp.

Referenced by addChildElement(), and removeChildElement().

Here is the caller graph for this function:

◆ updateChildConnections()

void GNEHierarchicalChildElements::updateChildConnections ( )

update child connections

Definition at line 93 of file GNEHierarchicalChildElements.cpp.

References myChildConnections, and GNEHierarchicalChildElements::ChildConnections::update().

◆ updateGeometry()

◆ updateParentAdditional()

void GNEHierarchicalChildElements::updateParentAdditional ( )
virtual

update parent after add or remove a child (can be reimplemented, for example used for statistics)

Reimplemented in GNETAZ, and GNEDetectorE3.

Definition at line 538 of file GNEHierarchicalChildElements.cpp.

Referenced by addChildElement(), GNEAdditionalHandler::buildTAZ(), and removeChildElement().

Here is the caller graph for this function:

◆ updateParentDemandElement()

void GNEHierarchicalChildElements::updateParentDemandElement ( )
virtual

update parent after add or remove a child (can be reimplemented, for example used for statistics)

Definition at line 543 of file GNEHierarchicalChildElements.cpp.

Friends And Related Function Documentation

◆ GNEChange_Children

friend class GNEChange_Children
friend

declare GNEChange_Children as friend class

Definition at line 50 of file GNEHierarchicalChildElements.h.

Field Documentation

◆ myAC

const GNEAttributeCarrier* GNEHierarchicalChildElements::myAC
private

pointer to AC (needed to avoid diamond problem)

Definition at line 256 of file GNEHierarchicalChildElements.h.

Referenced by addChildElement(), removeChildElement(), and sortChildAdditionals().

◆ myChildAdditionals

std::vector<GNEAdditional*> GNEHierarchicalChildElements::myChildAdditionals
private

◆ myChildConnections

◆ myChildDemandElements

std::vector<GNEDemandElement*> GNEHierarchicalChildElements::myChildDemandElements
private

◆ myChildEdges

std::vector<GNEEdge*> GNEHierarchicalChildElements::myChildEdges
private

◆ myChildGenericDataElements

std::vector<GNEGenericData*> GNEHierarchicalChildElements::myChildGenericDataElements
private

vector with the generic data elements children

Definition at line 250 of file GNEHierarchicalChildElements.h.

Referenced by addChildElement(), getChildGenericDatas(), and removeChildElement().

◆ myChildJunctions

std::vector<GNEJunction*> GNEHierarchicalChildElements::myChildJunctions
private

vector with the child junctions

Definition at line 229 of file GNEHierarchicalChildElements.h.

◆ myChildLanes

std::vector<GNELane*> GNEHierarchicalChildElements::myChildLanes
private

◆ myChildShapes

std::vector<GNEShape*> GNEHierarchicalChildElements::myChildShapes
private

vector with the child lanes

Definition at line 241 of file GNEHierarchicalChildElements.h.

Referenced by addChildElement(), getChildShapes(), and removeChildElement().

◆ myChildTAZElements

std::vector<GNETAZElement*> GNEHierarchicalChildElements::myChildTAZElements
private

vector with the child TAZ Elements

Definition at line 244 of file GNEHierarchicalChildElements.h.

Referenced by addChildElement(), getChildTAZElements(), and removeChildElement().

◆ myDemandElementsByType

std::map<SumoXMLTag, std::vector<GNEDemandElement* > > GNEHierarchicalChildElements::myDemandElementsByType
private

vector with the demand elements children sorted by type and filtered (to avoid duplicated

Definition at line 253 of file GNEHierarchicalChildElements.h.

Referenced by addChildElement(), getChildDemandElementsByType(), GNEHierarchicalChildElements(), and removeChildElement().


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