Eclipse SUMO - Simulation of Urban MObility
GNEHierarchicalParentElements Class Referenceabstract

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

#include <GNEHierarchicalParentElements.h>

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

Public Member Functions

template<>
void addParentElement (GNEEdge *edge)
 
template<>
void addParentElement (GNELane *lane)
 
template<typename T >
void addParentElement (T *element)
 add child More...
 
template<>
void addParentElement (GNEAdditional *additional)
 
template<>
void addParentElement (GNEShape *shape)
 
template<>
void addParentElement (GNETAZElement *TAZElement)
 
template<>
void addParentElement (GNEDemandElement *demandElement)
 
template<>
void addParentElement (GNEGenericData *genericData)
 
GNEJunctiongetFirstParentJunction () const
 get front parent junction More...
 
std::vector< GNEEdge * > getMiddleParentEdges () const
 get middle (via) parent edges More...
 
std::string getNewListOfParents (const GNENetworkElement *currentElement, const GNENetworkElement *newNextElement) const
 if use edge/parent lanes as a list of consecutive elements, obtain a list of IDs of elements after insert a new element More...
 
const std::vector< GNEAdditional * > & getParentAdditionals () const
 get parent additionals More...
 
const std::vector< GNEDemandElement * > & getParentDemandElements () const
 get parent demand elements More...
 
const std::vector< GNEEdge * > & getParentEdges () const
 get parent edges More...
 
const std::vector< GNEGenericData * > & getParentGenericDatas () const
 get parent demand elements More...
 
const std::vector< GNELane * > & getParentLanes () const
 get parent lanes More...
 
const std::vector< GNEShape * > & getParentShapes () const
 get parent shapes More...
 
const std::vector< GNETAZElement * > & getParentTAZElements () const
 get parent TAZElements More...
 
GNEJunctiongetSecondParentJunction () const
 remove parent junction More...
 
 GNEHierarchicalParentElements (const GNEAttributeCarrier *AC, const std::vector< GNEJunction *> &parentJunctions, const std::vector< GNEEdge *> &parentEdges, const std::vector< GNELane *> &parentLanes, const std::vector< GNEAdditional *> &parentAdditionals, const std::vector< GNEShape *> &parentShapes, const std::vector< GNETAZElement *> &parentTAZElements, const std::vector< GNEDemandElement *> &parentDemandElements, const std::vector< GNEGenericData *> &parentGenericDatas)
 Constructor used by elements that have another additionals as parent. More...
 
template<typename T >
void removeParentElement (T *element)
 remove child More...
 
template<>
void removeParentElement (GNEEdge *edge)
 
template<>
void removeParentElement (GNELane *lane)
 
template<>
void removeParentElement (GNEAdditional *additional)
 
template<>
void removeParentElement (GNEShape *shape)
 
template<>
void removeParentElement (GNETAZElement *TAZElement)
 
template<>
void removeParentElement (GNEDemandElement *demandElement)
 
template<>
void removeParentElement (GNEGenericData *genericData)
 
void updateFirstParentJunction (GNEJunction *junction)
 update front parent junction More...
 
void updateSecondParentJunction (GNEJunction *junction)
 update last parent junction More...
 
 ~GNEHierarchicalParentElements ()
 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

members and functions relative to changing parents
void replaceParentEdges (GNEShape *elementChild, const std::string &newEdgeIDs)
 replace the parent edges of a shape More...
 
void replaceParentEdges (GNEAdditional *elementChild, const std::string &newEdgeIDs)
 replace the parent edges of an additional More...
 
void replaceParentEdges (GNEDemandElement *elementChild, const std::string &newEdgeIDs)
 replace the parent edges of a demandElement More...
 
void replaceParentEdges (GNEDemandElement *elementChild, const std::vector< GNEEdge *> &newEdges)
 replace the parent edges of a demandElement (GNEEdge version) More...
 
void replaceParentEdges (GNEGenericData *elementChild, const std::vector< GNEEdge *> &newEdges)
 replace the parent edges of a generic data (GNEEdge version) More...
 
void replaceFirstParentEdge (GNEDemandElement *elementChild, GNEEdge *newFirstEdge)
 replace the first parent edge (used by demand elements) More...
 
void replaceFirstParentEdge (GNEGenericData *elementChild, GNEEdge *newFirstEdge)
 replace the first parent edge (used by generic data elements) More...
 
void replaceMiddleParentEdges (GNEDemandElement *elementChild, const std::vector< GNEEdge *> &newMiddleEdges, const bool updateChildReferences)
 replace middle (via) parent edges More...
 
void replaceLastParentEdge (GNEDemandElement *elementChild, GNEEdge *newLastEdge)
 replace the last parent edge (used by demand elements) More...
 
void replaceLastParentEdge (GNEGenericData *elementChild, GNEEdge *newLastEdge)
 replace the last parent edge (used by generic data elements) More...
 
void replaceParentLanes (GNEShape *elementChild, const std::string &newLaneIDs)
 replace the parent edges of a shape More...
 
void replaceParentLanes (GNEAdditional *elementChild, const std::string &newLaneIDs)
 replace the parent edges of an additional More...
 
void replaceParentLanes (GNEDemandElement *elementChild, const std::string &newLaneIDs)
 replace the parent edges of a demandElement More...
 
void replaceParentAdditional (GNEShape *shapeTobeChanged, const std::string &newParentAdditionalID, int additionalParentIndex)
 replace the parent additional of a shape More...
 
void replaceParentAdditional (GNEAdditional *additionalTobeChanged, const std::string &newParentAdditionalID, int additionalParentIndex)
 replace the parent additional of an additional More...
 
void replaceParentAdditional (GNEDemandElement *demandElementTobeChanged, const std::string &newParentAdditionalID, int additionalParentIndex)
 replace the parent additional of a demand element More...
 
void replaceFirstParentTAZElement (GNEGenericData *elementChild, GNETAZElement *newFirstTAZElement)
 replace the first parent TAZElement (used by generic data elements) More...
 
void replaceLastParentTAZElement (GNEGenericData *elementChild, GNETAZElement *newLastTAZElement)
 replace the last parent TAZElement (used by demand elements) More...
 
void replaceParentDemandElement (GNEShape *shapeTobeChanged, const std::string &newParentDemandElementID, int demandElementParentIndex)
 replace the parent demand element of a shape More...
 
void replaceParentDemandElement (GNEAdditional *additionalTobeChanged, const std::string &newParentDemandElementID, int demandElementParentIndex)
 replace the parent demand element of an additional More...
 
void replaceParentDemandElement (GNEDemandElement *demandElementTobeChanged, const std::string &newParentDemandElementID, int demandElementParentIndex)
 change first parent demand element of demandElement More...
 

Protected Attributes

GNEGeometry::ParentConnections myParentConnections
 variable ParentConnections More...
 

Private Member Functions

 GNEHierarchicalParentElements (const GNEHierarchicalParentElements &)=delete
 Invalidated copy constructor. More...
 
GNEHierarchicalParentElementsoperator= (const GNEHierarchicalParentElements &)=delete
 Invalidated assignment operator. More...
 

Private Attributes

const GNEAttributeCarriermyAC
 pointer to AC (needed to avoid diamond problem) More...
 
std::vector< GNEAdditional * > myParentAdditionals
 vector of additional parents More...
 
std::vector< GNEDemandElement * > myParentDemandElements
 vector of demand elements parents More...
 
std::vector< GNEEdge * > myParentEdges
 vector of edge parents More...
 
std::vector< GNEGenericData * > myParentGenericDatas
 vector of generic datas parents More...
 
std::vector< GNEJunction * > myParentJunctions
 vector of junction parents More...
 
std::vector< GNELane * > myParentLanes
 vector of lane parents More...
 
std::vector< GNEShape * > myParentShapes
 vector of shape parents More...
 
std::vector< GNETAZElement * > myParentTAZElements
 vector of TAZElement parents 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 48 of file GNEHierarchicalParentElements.h.

Constructor & Destructor Documentation

◆ GNEHierarchicalParentElements() [1/2]

GNEHierarchicalParentElements::GNEHierarchicalParentElements ( const GNEAttributeCarrier AC,
const std::vector< GNEJunction *> &  parentJunctions,
const std::vector< GNEEdge *> &  parentEdges,
const std::vector< GNELane *> &  parentLanes,
const std::vector< GNEAdditional *> &  parentAdditionals,
const std::vector< GNEShape *> &  parentShapes,
const std::vector< GNETAZElement *> &  parentTAZElements,
const std::vector< GNEDemandElement *> &  parentDemandElements,
const std::vector< GNEGenericData *> &  parentGenericDatas 
)

Constructor used by elements that have another additionals as parent.

Parameters
[in]ACAttribute carrier
[in]parentJunctionsvector of parent junctions
[in]parentEdgesvector of parent edges
[in]parentLanesvector of parent lanes
[in]parentAdditionalsvector of parent additionals
[in]parentShapesvector of parent shapes
[in]parentTAZElementsvector of parent TAZs
[in]parentDemandElementsvector of parent demand elements
[in]parentGenericDatavector of parent generic data elements

Definition at line 44 of file GNEHierarchicalParentElements.cpp.

◆ ~GNEHierarchicalParentElements()

GNEHierarchicalParentElements::~GNEHierarchicalParentElements ( )

Destructor.

Definition at line 66 of file GNEHierarchicalParentElements.cpp.

◆ GNEHierarchicalParentElements() [2/2]

GNEHierarchicalParentElements::GNEHierarchicalParentElements ( const GNEHierarchicalParentElements )
privatedelete

Invalidated copy constructor.

Member Function Documentation

◆ addParentElement() [1/8]

template<>
void GNEHierarchicalParentElements::addParentElement ( GNEEdge edge)

◆ addParentElement() [2/8]

template<>
void GNEHierarchicalParentElements::addParentElement ( GNELane lane)

◆ addParentElement() [3/8]

template<typename T >
void GNEHierarchicalParentElements::addParentElement ( T *  element)

add child

◆ addParentElement() [4/8]

template<>
void GNEHierarchicalParentElements::addParentElement ( GNEAdditional additional)

◆ addParentElement() [5/8]

template<>
void GNEHierarchicalParentElements::addParentElement ( GNEShape shape)

◆ addParentElement() [6/8]

template<>
void GNEHierarchicalParentElements::addParentElement ( GNETAZElement TAZElement)

◆ addParentElement() [7/8]

template<>
void GNEHierarchicalParentElements::addParentElement ( GNEDemandElement demandElement)

◆ addParentElement() [8/8]

template<>
void GNEHierarchicalParentElements::addParentElement ( GNEGenericData genericData)

◆ getFirstParentJunction()

◆ getMiddleParentEdges()

std::vector< GNEEdge * > GNEHierarchicalParentElements::getMiddleParentEdges ( ) const

get middle (via) parent edges

Definition at line 364 of file GNEHierarchicalParentElements.cpp.

References myParentEdges.

Referenced by GNEVehicle::computePath(), and GNEVehicle::invalidatePath().

Here is the caller graph for this function:

◆ getNewListOfParents()

std::string GNEHierarchicalParentElements::getNewListOfParents ( const GNENetworkElement currentElement,
const GNENetworkElement newNextElement 
) const

if use edge/parent lanes as a list of consecutive elements, obtain a list of IDs of elements after insert a new element

Definition at line 289 of file GNEHierarchicalParentElements.cpp.

References GNENetworkElement::getID(), GNETagProperties::getTag(), GNEAttributeCarrier::getTagProperty(), myParentEdges, myParentLanes, SUMO_TAG_EDGE, SUMO_TAG_LANE, and toString().

Referenced by GNEDetector::splitEdgeGeometry(), GNERoute::splitEdgeGeometry(), and GNEWalk::splitEdgeGeometry().

Here is the caller graph for this function:

◆ getParentAdditionals()

const std::vector< GNEAdditional * > & GNEHierarchicalParentElements::getParentAdditionals ( ) const

get parent additionals

Definition at line 259 of file GNEHierarchicalParentElements.cpp.

References myParentAdditionals.

Referenced by GNEDemandElement::calculatePersonPlanLaneStartEndPos(), GNEPersonTrip::computePath(), GNERide::computePath(), GNEWalk::computePath(), GNELane::drawChildren(), GNEEdge::drawGL(), GNEEdge::endEdgeGeometryMoving(), GNELane::endGeometryMoving(), GNEClosingReroute::getAttribute(), GNERouteProbReroute::getAttribute(), GNEDestProbReroute::getAttribute(), GNEDetectorEntryExit::getAttribute(), GNEClosingLaneReroute::getAttribute(), GNEParkingAreaReroute::getAttribute(), GNECalibratorFlow::getAttribute(), GNEVariableSpeedSignStep::getAttribute(), GNEParkingSpace::getAttribute(), GNERerouterInterval::getAttribute(), GNEAccess::getAttribute(), GNEStop::getAttribute(), GNEPersonStop::getAttribute(), GNERide::getAttribute(), GNEPersonTrip::getAttribute(), GNEWalk::getAttribute(), GNERouteProbReroute::getCenteringBoundary(), GNEDestProbReroute::getCenteringBoundary(), GNEParkingAreaReroute::getCenteringBoundary(), GNEVariableSpeedSignStep::getCenteringBoundary(), GNECalibratorFlow::getCenteringBoundary(), GNERerouterInterval::getCenteringBoundary(), GNEPersonStop::getCenteringBoundary(), GNEStop::getCenteringBoundary(), GNEDemandElement::getFirstAllowedVehicleLane(), GNEDemandElement::getFirstPersonPlanEdge(), GNEParkingAreaReroute::getHierarchyName(), GNEStop::getHierarchyName(), GNEPersonStop::getHierarchyName(), GNERide::getHierarchyName(), GNEPersonTrip::getHierarchyName(), GNEWalk::getHierarchyName(), GNEDemandElement::getLastAllowedVehicleLane(), GNEClosingReroute::getParentName(), GNERouteProbReroute::getParentName(), GNEClosingLaneReroute::getParentName(), GNEDestProbReroute::getParentName(), GNEParkingAreaReroute::getParentName(), GNEVariableSpeedSignStep::getParentName(), GNEParkingSpace::getParentName(), GNECalibratorFlow::getParentName(), GNERerouterInterval::getParentName(), GNEAccess::getParentName(), GNEStop::getParentName(), GNEPersonStop::getParentName(), GNEFrameModuls::DemandElementSelector::getPersonPlanPreviousEdge(), GNEClosingReroute::getPositionInView(), GNEClosingLaneReroute::getPositionInView(), GNERouteProbReroute::getPositionInView(), GNEDestProbReroute::getPositionInView(), GNEParkingAreaReroute::getPositionInView(), GNEVariableSpeedSignStep::getPositionInView(), GNECalibratorFlow::getPositionInView(), GNERerouterInterval::getPositionInView(), GNEVariableSpeedSignStep::GNEVariableSpeedSignStep(), GNERide::invalidatePath(), GNEPersonTrip::invalidatePath(), GNEWalk::invalidatePath(), GNEVariableSpeedSignStep::isValid(), GNEAccess::isValid(), GNECalibratorFlowDialog::onCmdAccept(), GNERerouterIntervalDialog::onCmdAccept(), GNEAdditionalHandler::parseAndBuildRerouterInterval(), GNENet::replaceIncomingEdge(), GNERide::setAttribute(), GNEWalk::setAttribute(), GNEPersonTrip::setAttribute(), GNEFrameModuls::AttributeCarrierHierarchy::showAttributeCarrierParents(), GNEEdge::startEdgeGeometryMoving(), GNELane::startGeometryMoving(), GNEDeleteFrame::SubordinatedElements::SubordinatedElements(), GNEGeometry::ParentConnections::update(), GNEEdge::updateGeometry(), GNEDetectorEntryExit::updateGeometry(), GNEPersonStop::updateGeometry(), GNEStop::updateGeometry(), GNELane::updateGeometry(), GNEPersonTrip::writeDemandElement(), GNERide::writeDemandElement(), and GNEWalk::writeDemandElement().

◆ getParentDemandElements()

const std::vector< GNEDemandElement * > & GNEHierarchicalParentElements::getParentDemandElements ( ) const

get parent demand elements

Definition at line 277 of file GNEHierarchicalParentElements.cpp.

References myParentDemandElements.

Referenced by GNEDemandElement::calculatePersonPlanLaneStartEndPos(), GNEWalk::computePath(), GNEFrameModuls::AttributeCarrierHierarchy::createPopUpMenu(), GNEPersonStop::drawGL(), GNEStop::drawGL(), GNEPerson::drawGL(), GNEVehicle::drawGL(), GNEDemandElement::drawPersonPlanPartialJunction(), GNEDemandElement::drawPersonPlanPartialLane(), GNEEdge::endEdgeGeometryMoving(), GNELane::endGeometryMoving(), GNEPersonStop::getAttribute(), GNEStop::getAttribute(), GNEPersonTrip::getAttribute(), GNERide::getAttribute(), GNEWalk::getAttribute(), GNEPerson::getAttribute(), GNEVehicle::getAttribute(), GNEVehicle::getAttributeDouble(), GNEPersonTrip::getColor(), GNERide::getColor(), GNEWalk::getColor(), GNEPersonTrip::getDemandElementProblem(), GNERide::getDemandElementProblem(), GNEWalk::getDemandElementProblem(), GNEVehicle::getDemandElementProblem(), GNEDemandElement::getFirstAllowedVehicleLane(), GNEDemandElement::getFirstPersonPlanEdge(), GNEWalk::getHierarchyName(), GNEDemandElement::getLastAllowedVehicleLane(), GNEPersonStop::getParentName(), GNEStop::getParentName(), GNERide::getParentName(), GNEPersonTrip::getParentName(), GNEWalk::getParentName(), GNEPerson::getParentName(), GNEVehicle::getParentName(), GNEFrameModuls::DemandElementSelector::getPersonPlanPreviousEdge(), GNEStop::getPositionInView(), GNEPersonStop::getPositionInView(), GNEStop::getVClass(), GNEPersonStop::getVClass(), GNEPersonTrip::getVClass(), GNERide::getVClass(), GNEWalk::getVClass(), GNEPerson::getVClass(), GNEVehicle::getVClass(), GNEWalk::invalidatePath(), GNEWalk::isDemandElementValid(), GNEVehicle::isDemandElementValid(), GNEVehicle::isValid(), GNEFrameModuls::AttributeCarrierHierarchy::onCmdDeleteItem(), GNEFrameModuls::AttributeCarrierHierarchy::onCmdMoveItemDown(), GNEFrameModuls::AttributeCarrierHierarchy::onCmdMoveItemUp(), GNEViewNet::onCmdToogleLockPerson(), GNEDeleteFrame::removeAttributeCarrier(), GNEVehicle::setAttribute(), GNEVehicle::setColor(), GNEFrameModuls::AttributeCarrierHierarchy::showAttributeCarrierParents(), GNEViewNetHelper::DemandViewOptions::showNonInspectedDemandElements(), GNEEdge::startEdgeGeometryMoving(), GNELane::startGeometryMoving(), GNEDeleteFrame::SubordinatedElements::SubordinatedElements(), GNERouteHandler::transformToFlow(), GNERouteHandler::transformToRouteFlow(), GNERouteHandler::transformToTrip(), GNERouteHandler::transformToVehicle(), GNEBusStop::updateGeometry(), GNEEdge::updateGeometry(), GNEStop::updateGeometry(), GNEPersonStop::updateGeometry(), GNELane::updateGeometry(), GNEWalk::updateGeometry(), GNEVehicle::updateGeometry(), GNEPersonTrip::writeDemandElement(), GNERide::writeDemandElement(), GNEWalk::writeDemandElement(), GNEPerson::writeDemandElement(), and GNEVehicle::writeDemandElement().

◆ getParentEdges()

const std::vector< GNEEdge * > & GNEHierarchicalParentElements::getParentEdges ( ) const

get parent edges

Definition at line 247 of file GNEHierarchicalParentElements.cpp.

References myParentEdges.

Referenced by GNEVehicleFrame::addVehicle(), GNERouteHandler::buildFlowOverRoute(), GNERouteHandler::buildVehicleOverRoute(), GNERouteHandler::PersonValue::checkPersonPlanValues(), GNERoute::computePath(), GNEWalk::computePath(), GNECalibrator::drawCalibratorSymbol(), GNEVaporizer::drawGL(), GNERouteProbe::drawGL(), GNEPersonStop::drawGL(), GNEEdgeData::drawPartialGL(), GNEEdgeRelData::drawPartialGL(), GNEPersonStop::enableAttribute(), GNERouteProbe::getAttribute(), GNETAZSourceSink::getAttribute(), GNEEdgeData::getAttribute(), GNEEdgeRelData::getAttribute(), GNECalibrator::getAttribute(), GNEPersonTrip::getAttribute(), GNERide::getAttribute(), GNERoute::getAttribute(), GNEWalk::getAttribute(), GNEVehicle::getAttribute(), GNEPersonStop::getAttributeDouble(), GNETAZSourceSink::getCenteringBoundary(), GNEEdgeData::getCenteringBoundary(), GNEEdgeRelData::getCenteringBoundary(), GNEPersonTrip::getCenteringBoundary(), GNERide::getCenteringBoundary(), GNERoute::getCenteringBoundary(), GNEWalk::getCenteringBoundary(), GNEPersonStop::getDemandElementProblem(), GNEPersonTrip::getDemandElementProblem(), GNERide::getDemandElementProblem(), GNERoute::getDemandElementProblem(), GNEWalk::getDemandElementProblem(), GNEVehicle::getDemandElementProblem(), GNEPersonStop::getEndGeometryPositionOverLane(), GNEDemandElement::getFirstAllowedVehicleLane(), GNEDemandElement::getFirstPersonPlanEdge(), GNEEdgeData::getHierarchyName(), GNEEdgeRelData::getHierarchyName(), GNEPersonTrip::getHierarchyName(), GNERide::getHierarchyName(), GNEWalk::getHierarchyName(), GNEPerson::getHierarchyName(), GNEVehicle::getHierarchyName(), GNEDemandElement::getLastAllowedVehicleLane(), GNERouteHandler::PersonPlansValues::getLastEdge(), GNEVaporizer::getParentName(), GNERouteProbe::getParentName(), GNECalibrator::getParentName(), GNERoute::getParentName(), GNEVehicle::getParentName(), GNEFrameModuls::DemandElementSelector::getPersonPlanPreviousEdge(), GNEEdgeData::getPositionInView(), GNEEdgeRelData::getPositionInView(), GNEVaporizer::getPositionInView(), GNERouteProbe::getPositionInView(), GNECalibrator::getPositionInView(), GNEPersonStop::getPositionInView(), GNEPersonStop::getStartGeometryPositionOverLane(), GNERoute::invalidatePath(), GNEWalk::invalidatePath(), GNEPersonStop::isDemandElementValid(), GNERide::isDemandElementValid(), GNEPersonTrip::isDemandElementValid(), GNERoute::isDemandElementValid(), GNEWalk::isDemandElementValid(), GNEVehicle::isDemandElementValid(), GNECalibrator::isValid(), GNEPersonStop::isValid(), GNEPersonStop::moveGeometry(), GNERide::moveGeometry(), GNEPersonTrip::moveGeometry(), GNEWalk::moveGeometry(), GNERoute::GNERoutePopupMenu::onCmdApplyDistance(), GNEFrameModuls::PathCreator::recalculatePath(), GNEVehicle::setAttribute(), GNEFrameModuls::AttributeCarrierHierarchy::showAttributeCarrierParents(), GNERouteHandler::transformToFlow(), GNERouteHandler::transformToRouteFlow(), GNERouteHandler::transformToTrip(), GNERouteHandler::transformToVehicle(), GNEGeometry::ParentConnections::update(), GNEEdgeData::updateGeometry(), GNEVaporizer::updateGeometry(), GNEEdgeRelData::updateGeometry(), GNERouteProbe::updateGeometry(), GNECalibrator::updateGeometry(), GNEPersonStop::updateGeometry(), GNEVehicle::updateGeometry(), GNEPersonTrip::writeDemandElement(), GNERide::writeDemandElement(), GNERoute::writeDemandElement(), GNEWalk::writeDemandElement(), GNEVehicle::writeDemandElement(), GNEEdgeData::writeGenericData(), GNEEdgeRelData::writeGenericData(), and GNETAZSourceSink::writeTAZElement().

◆ getParentGenericDatas()

const std::vector< GNEGenericData * > & GNEHierarchicalParentElements::getParentGenericDatas ( ) const

get parent demand elements

Definition at line 283 of file GNEHierarchicalParentElements.cpp.

References myParentGenericDatas.

Referenced by GNEDeleteFrame::SubordinatedElements::SubordinatedElements(), GNEEdge::updateGeometry(), and GNELane::updateGeometry().

Here is the caller graph for this function:

◆ getParentLanes()

const std::vector< GNELane * > & GNEHierarchicalParentElements::getParentLanes ( ) const

get parent lanes

Definition at line 253 of file GNEHierarchicalParentElements.cpp.

References myParentLanes.

Referenced by GNENetHelper::PathCalculator::busStopConnected(), GNEDetectorE2::checkE2MultilaneIntegrity(), GNEStop::commitGeometryMoving(), GNEPersonStop::commitGeometryMoving(), GNEDetectorE2::commitGeometryMoving(), GNEPOI::commitPOIGeometryMoving(), GNERide::computePath(), GNEPersonTrip::computePath(), GNEWalk::computePath(), GNECalibrator::drawCalibratorSymbol(), GNEPersonStop::drawGL(), GNEStop::drawGL(), GNEAdditional::drawPartialGL(), GNEStop::enableAttribute(), GNEStop::endGeometryMoving(), GNEPersonStop::endGeometryMoving(), GNEDetectorE1Instant::fixAdditionalProblem(), GNEDetectorE1::fixAdditionalProblem(), GNEDetectorEntryExit::fixAdditionalProblem(), GNEStoppingPlace::fixAdditionalProblem(), GNEDetectorE2::fixAdditionalProblem(), GNEDetectorE1Instant::getAdditionalProblem(), GNEDetectorE1::getAdditionalProblem(), GNEDetectorEntryExit::getAdditionalProblem(), GNEStoppingPlace::getAdditionalProblem(), GNEDetectorE2::getAdditionalProblem(), GNEBusStop::getAttribute(), GNEChargingStation::getAttribute(), GNEContainerStop::getAttribute(), GNEParkingArea::getAttribute(), GNEDetectorE1::getAttribute(), GNEDetectorEntryExit::getAttribute(), GNEDetectorE1Instant::getAttribute(), GNEAccess::getAttribute(), GNECalibrator::getAttribute(), GNEDetectorE2::getAttribute(), GNEPersonStop::getAttribute(), GNEStop::getAttribute(), GNEPOI::getAttribute(), GNEStop::getAttributeDouble(), GNEDetector::getCenteringBoundary(), GNEStop::getDemandElementProblem(), GNEAccess::getEdge(), GNEStoppingPlace::getEndGeometryPositionOverLane(), GNEPersonStop::getEndGeometryPositionOverLane(), GNEStop::getEndGeometryPositionOverLane(), GNEStoppingPlace::getEndPosition(), GNEDemandElement::getFirstPersonPlanEdge(), GNEAccess::getHierarchyName(), GNEDetector::getLane(), GNERouteHandler::PersonPlansValues::getLastEdge(), GNEStoppingPlace::getParentName(), GNECalibrator::getParentName(), GNEPersonStop::getParentName(), GNEStop::getParentName(), GNEPOI::getParentName(), GNEPOI::getPopUpMenu(), GNEAccess::getPositionInView(), GNEStoppingPlace::getPositionInView(), GNECalibrator::getPositionInView(), GNEPersonStop::getPositionInView(), GNEStop::getPositionInView(), GNEStoppingPlace::getStartGeometryPositionOverLane(), GNEPersonStop::getStartGeometryPositionOverLane(), GNEStop::getStartGeometryPositionOverLane(), GNEPersonTrip::invalidatePath(), GNERide::invalidatePath(), GNEWalk::invalidatePath(), GNEAccess::isAccessPositionFixed(), GNEDetectorE1Instant::isAdditionalValid(), GNEDetectorE1::isAdditionalValid(), GNEDetectorEntryExit::isAdditionalValid(), GNEStoppingPlace::isAdditionalValid(), GNEDetectorE2::isAdditionalValid(), GNEPersonStop::isDemandElementValid(), GNEStop::isDemandElementValid(), GNEChargingStation::isValid(), GNEBusStop::isValid(), GNEContainerStop::isValid(), GNEParkingArea::isValid(), GNEDetectorE1::isValid(), GNEDetectorEntryExit::isValid(), GNEDetectorE1Instant::isValid(), GNEAccess::isValid(), GNECalibrator::isValid(), GNEStop::isValid(), GNEPOI::isValid(), GNEAccess::moveGeometry(), GNEDetectorE1::moveGeometry(), GNEDetectorEntryExit::moveGeometry(), GNEDetectorE1Instant::moveGeometry(), GNEStoppingPlace::moveGeometry(), GNEPersonStop::moveGeometry(), GNEStop::moveGeometry(), GNEDetectorE2::moveGeometry(), GNEPOI::movePOIGeometry(), GNEFrameModuls::PathCreator::recalculatePath(), GNEPOI::setAttribute(), GNEStoppingPlace::setStoppingPlaceGeometry(), GNEFrameModuls::AttributeCarrierHierarchy::showAttributeCarrierParents(), GNEStoppingPlace::splitEdgeGeometry(), GNEPersonStop::startGeometryMoving(), GNEStop::startGeometryMoving(), GNEGeometry::ParentConnections::update(), GNEBusStop::updateGeometry(), GNEContainerStop::updateGeometry(), GNEParkingArea::updateGeometry(), GNEAccess::updateGeometry(), GNEDetectorE1::updateGeometry(), GNEDetectorEntryExit::updateGeometry(), GNEDetectorE1Instant::updateGeometry(), GNECalibrator::updateGeometry(), GNEStop::updateGeometry(), GNEDetectorE2::updateGeometry(), GNEPOI::updateGeometry(), and GNEPOI::writeShape().

◆ getParentShapes()

const std::vector< GNEShape * > & GNEHierarchicalParentElements::getParentShapes ( ) const

get parent shapes

Definition at line 265 of file GNEHierarchicalParentElements.cpp.

References myParentShapes.

Referenced by GNEDeleteFrame::SubordinatedElements::SubordinatedElements(), and GNELane::updateGeometry().

Here is the caller graph for this function:

◆ getParentTAZElements()

const std::vector< GNETAZElement * > & GNEHierarchicalParentElements::getParentTAZElements ( ) const

◆ getPositionInView()

◆ getSecondParentJunction()

GNEJunction * GNEHierarchicalParentElements::getSecondParentJunction ( ) const

remove parent junction

Definition at line 334 of file GNEHierarchicalParentElements.cpp.

References myParentJunctions.

Referenced by GNEEdge::addLane(), GNENet::addReversedEdge(), GNEConnectorFrame::buildConnection(), GNEProhibitionFrame::buildProhibition(), GNENetHelper::PathCalculator::calculateReachability(), GNEEdge::clickedOverShapeEnd(), GNENet::deleteConnection(), GNENet::deleteEdge(), GNENet::deleteLane(), GNENetHelper::AttributeCarriers::deleteSingleEdge(), GNELane::drawArrows(), GNEEdge::drawEdgeGeometryPoints(), GNELane::drawStartEndShapePoints(), GNEEdge::editEndpoint(), GNEEdge::getAttribute(), GNEConnection::getBoundary(), GNEEdge::getGNECrossings(), GNEPathElements::PathElement::getJunction(), GNEGeometry::SegmentGeometry::Segment::getJunction(), GNEEdge::getOppositeEdge(), GNEConnectorFrame::initTargets(), GNERoute::isRouteValid(), GNEEdge::isValid(), GNENet::joinSelectedJunctions(), GNENet::mergeJunctions(), GNEEdge::moveEdgeShape(), GNENetHelper::AttributeCarriers::registerEdge(), GNEEdge::removeLane(), GNENet::replaceIncomingEdge(), GNEEdge::resetEndpoint(), GNENet::reverseEdge(), GNENet::selectRoundabout(), GNEEdge::setAttribute(), GNEEdge::setGeometry(), GNEEdge::setNumLanes(), GNEFrameModuls::AttributeCarrierHierarchy::showAttributeCarrierParents(), GNENet::splitEdge(), GNENet::splitJunction(), and GNEGeometry::Lane2laneConnection::updateLane2laneConnection().

Here is the caller graph for this function:

◆ operator=()

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

Invalidated assignment operator.

◆ removeParentElement() [1/8]

template<typename T >
void GNEHierarchicalParentElements::removeParentElement ( T *  element)

remove child

◆ removeParentElement() [2/8]

template<>
void GNEHierarchicalParentElements::removeParentElement ( GNEEdge edge)

◆ removeParentElement() [3/8]

template<>
void GNEHierarchicalParentElements::removeParentElement ( GNELane lane)

◆ removeParentElement() [4/8]

template<>
void GNEHierarchicalParentElements::removeParentElement ( GNEAdditional additional)

◆ removeParentElement() [5/8]

template<>
void GNEHierarchicalParentElements::removeParentElement ( GNEShape shape)

◆ removeParentElement() [6/8]

template<>
void GNEHierarchicalParentElements::removeParentElement ( GNETAZElement TAZElement)

◆ removeParentElement() [7/8]

template<>
void GNEHierarchicalParentElements::removeParentElement ( GNEDemandElement demandElement)

◆ removeParentElement() [8/8]

template<>
void GNEHierarchicalParentElements::removeParentElement ( GNEGenericData genericData)

◆ replaceFirstParentEdge() [1/2]

void GNEHierarchicalParentElements::replaceFirstParentEdge ( GNEDemandElement elementChild,
GNEEdge newFirstEdge 
)
protected

replace the first parent edge (used by demand elements)

Definition at line 483 of file GNEHierarchicalParentElements.cpp.

References myParentEdges.

Referenced by GNEEdgeRelData::setAttribute(), GNERide::setAttribute(), GNEWalk::setAttribute(), GNEPersonTrip::setAttribute(), and GNEVehicle::setAttribute().

Here is the caller graph for this function:

◆ replaceFirstParentEdge() [2/2]

void GNEHierarchicalParentElements::replaceFirstParentEdge ( GNEGenericData elementChild,
GNEEdge newFirstEdge 
)
protected

replace the first parent edge (used by generic data elements)

Definition at line 499 of file GNEHierarchicalParentElements.cpp.

References myParentEdges.

◆ replaceFirstParentTAZElement()

void GNEHierarchicalParentElements::replaceFirstParentTAZElement ( GNEGenericData elementChild,
GNETAZElement newFirstTAZElement 
)
protected

replace the first parent TAZElement (used by generic data elements)

Definition at line 685 of file GNEHierarchicalParentElements.cpp.

References myParentTAZElements.

Referenced by GNETAZRelData::setAttribute().

Here is the caller graph for this function:

◆ replaceLastParentEdge() [1/2]

void GNEHierarchicalParentElements::replaceLastParentEdge ( GNEDemandElement elementChild,
GNEEdge newLastEdge 
)
protected

replace the last parent edge (used by demand elements)

Definition at line 540 of file GNEHierarchicalParentElements.cpp.

References myParentEdges.

Referenced by GNEEdgeRelData::setAttribute(), GNERide::setAttribute(), GNEWalk::setAttribute(), GNEPersonTrip::setAttribute(), and GNEVehicle::setAttribute().

Here is the caller graph for this function:

◆ replaceLastParentEdge() [2/2]

void GNEHierarchicalParentElements::replaceLastParentEdge ( GNEGenericData elementChild,
GNEEdge newLastEdge 
)
protected

replace the last parent edge (used by generic data elements)

Definition at line 557 of file GNEHierarchicalParentElements.cpp.

References myParentEdges.

◆ replaceLastParentTAZElement()

void GNEHierarchicalParentElements::replaceLastParentTAZElement ( GNEGenericData elementChild,
GNETAZElement newLastTAZElement 
)
protected

replace the last parent TAZElement (used by demand elements)

Definition at line 701 of file GNEHierarchicalParentElements.cpp.

References myParentTAZElements.

Referenced by GNETAZRelData::setAttribute().

Here is the caller graph for this function:

◆ replaceMiddleParentEdges()

void GNEHierarchicalParentElements::replaceMiddleParentEdges ( GNEDemandElement elementChild,
const std::vector< GNEEdge *> &  newMiddleEdges,
const bool  updateChildReferences 
)
protected

replace middle (via) parent edges

Definition at line 515 of file GNEHierarchicalParentElements.cpp.

References myParentEdges, and replaceParentEdges().

Referenced by GNEVehicle::GNEVehicle(), and GNEVehicle::setAttribute().

Here is the caller graph for this function:

◆ replaceParentAdditional() [1/3]

void GNEHierarchicalParentElements::replaceParentAdditional ( GNEShape shapeTobeChanged,
const std::string &  newParentAdditionalID,
int  additionalParentIndex 
)
protected

replace the parent additional of a shape

Exceptions
exceptionif this shape doesn't have previously a defined Additional parent
exceptionif shape with ID newParentAdditionalID doesn't exist

Definition at line 634 of file GNEHierarchicalParentElements.cpp.

References GNEAttributeCarrier::getID(), GNEAttributeCarrier::getNet(), GNEAttributeCarrier::getTagStr(), myAC, myParentAdditionals, GNENet::retrieveAdditional(), toString(), and GNEShape::updateGeometry().

Referenced by GNEDetectorEntryExit::setAttribute(), GNEParkingAreaReroute::setAttribute(), GNEParkingSpace::setAttribute(), GNEPersonStop::setAttribute(), GNEStop::setAttribute(), GNERide::setAttribute(), GNEWalk::setAttribute(), and GNEPersonTrip::setAttribute().

Here is the caller graph for this function:

◆ replaceParentAdditional() [2/3]

void GNEHierarchicalParentElements::replaceParentAdditional ( GNEAdditional additionalTobeChanged,
const std::string &  newParentAdditionalID,
int  additionalParentIndex 
)
protected

replace the parent additional of an additional

Exceptions
exceptionif this additional doesn't have previously a defined Additional parent
exceptionif additional with ID newParentAdditionalID doesn't exist

Definition at line 651 of file GNEHierarchicalParentElements.cpp.

References GNEAttributeCarrier::getID(), GNEAttributeCarrier::getNet(), GNEAttributeCarrier::getTagStr(), myAC, myParentAdditionals, GNENet::retrieveAdditional(), toString(), and GNEAdditional::updateGeometry().

◆ replaceParentAdditional() [3/3]

void GNEHierarchicalParentElements::replaceParentAdditional ( GNEDemandElement demandElementTobeChanged,
const std::string &  newParentAdditionalID,
int  additionalParentIndex 
)
protected

replace the parent additional of a demand element

Exceptions
exceptionif this additional doesn't have previously a defined Additional parent
exceptionif additional with ID newParentAdditionalID doesn't exist

Definition at line 668 of file GNEHierarchicalParentElements.cpp.

References GNEAttributeCarrier::getID(), GNEAttributeCarrier::getNet(), GNEAttributeCarrier::getTagStr(), myAC, myParentAdditionals, GNENet::retrieveAdditional(), toString(), and GNEDemandElement::updateGeometry().

◆ replaceParentDemandElement() [1/3]

void GNEHierarchicalParentElements::replaceParentDemandElement ( GNEShape shapeTobeChanged,
const std::string &  newParentDemandElementID,
int  demandElementParentIndex 
)
protected

replace the parent demand element of a shape

Exceptions
exceptionif this demand element doesn't have previously a defined DemandElement parent
exceptionif demand element with ID newParentDemandElementID doesn't exist

Definition at line 718 of file GNEHierarchicalParentElements.cpp.

References GNEAttributeCarrier::getID(), GNEAttributeCarrier::getNet(), GNEAttributeCarrier::getTagStr(), myAC, myParentDemandElements, GNENet::retrieveDemandElement(), toString(), and GNEShape::updateGeometry().

Referenced by GNEWalk::setAttribute(), GNEPerson::setAttribute(), and GNEVehicle::setAttribute().

Here is the caller graph for this function:

◆ replaceParentDemandElement() [2/3]

void GNEHierarchicalParentElements::replaceParentDemandElement ( GNEAdditional additionalTobeChanged,
const std::string &  newParentDemandElementID,
int  demandElementParentIndex 
)
protected

replace the parent demand element of an additional

Exceptions
exceptionif this demand element doesn't have previously a defined DemandElement parent
exceptionif demand element with ID newParentDemandElementID doesn't exist

Definition at line 735 of file GNEHierarchicalParentElements.cpp.

References GNEAttributeCarrier::getID(), GNEAttributeCarrier::getNet(), GNEAttributeCarrier::getTagStr(), myAC, myParentDemandElements, GNENet::retrieveDemandElement(), toString(), and GNEAdditional::updateGeometry().

◆ replaceParentDemandElement() [3/3]

void GNEHierarchicalParentElements::replaceParentDemandElement ( GNEDemandElement demandElementTobeChanged,
const std::string &  newParentDemandElementID,
int  demandElementParentIndex 
)
protected

change first parent demand element of demandElement

Exceptions
exceptionif this demand element doesn't have previously a defined DemandElement parent
exceptionif demand element with ID newParentDemandElementID doesn't exist

Definition at line 752 of file GNEHierarchicalParentElements.cpp.

References GNEAttributeCarrier::getID(), GNEAttributeCarrier::getNet(), GNEAttributeCarrier::getTagStr(), myAC, myParentDemandElements, GNENet::retrieveDemandElement(), toString(), and GNEDemandElement::updateGeometry().

◆ replaceParentEdges() [1/5]

void GNEHierarchicalParentElements::replaceParentEdges ( GNEShape elementChild,
const std::string &  newEdgeIDs 
)
protected

replace the parent edges of a shape

Definition at line 383 of file GNEHierarchicalParentElements.cpp.

References GNEAttributeCarrier::getNet(), and myParentEdges.

Referenced by replaceMiddleParentEdges(), GNEVaporizer::setAttribute(), GNERouteProbe::setAttribute(), GNECalibrator::setAttribute(), GNEWalk::setAttribute(), and GNERoute::setAttribute().

Here is the caller graph for this function:

◆ replaceParentEdges() [2/5]

void GNEHierarchicalParentElements::replaceParentEdges ( GNEAdditional elementChild,
const std::string &  newEdgeIDs 
)
protected

replace the parent edges of an additional

Definition at line 403 of file GNEHierarchicalParentElements.cpp.

References GNEAttributeCarrier::getNet(), and myParentEdges.

◆ replaceParentEdges() [3/5]

void GNEHierarchicalParentElements::replaceParentEdges ( GNEDemandElement elementChild,
const std::string &  newEdgeIDs 
)
protected

replace the parent edges of a demandElement

Definition at line 423 of file GNEHierarchicalParentElements.cpp.

References GNEAttributeCarrier::getNet(), and myParentEdges.

◆ replaceParentEdges() [4/5]

void GNEHierarchicalParentElements::replaceParentEdges ( GNEDemandElement elementChild,
const std::vector< GNEEdge *> &  newEdges 
)
protected

replace the parent edges of a demandElement (GNEEdge version)

Definition at line 443 of file GNEHierarchicalParentElements.cpp.

References myParentEdges.

◆ replaceParentEdges() [5/5]

void GNEHierarchicalParentElements::replaceParentEdges ( GNEGenericData elementChild,
const std::vector< GNEEdge *> &  newEdges 
)
protected

replace the parent edges of a generic data (GNEEdge version)

Definition at line 463 of file GNEHierarchicalParentElements.cpp.

References myParentEdges.

◆ replaceParentLanes() [1/3]

void GNEHierarchicalParentElements::replaceParentLanes ( GNEShape elementChild,
const std::string &  newLaneIDs 
)
protected

◆ replaceParentLanes() [2/3]

void GNEHierarchicalParentElements::replaceParentLanes ( GNEAdditional elementChild,
const std::string &  newLaneIDs 
)
protected

replace the parent edges of an additional

Definition at line 574 of file GNEHierarchicalParentElements.cpp.

References GNEAttributeCarrier::getNet(), and myParentLanes.

◆ replaceParentLanes() [3/3]

void GNEHierarchicalParentElements::replaceParentLanes ( GNEDemandElement elementChild,
const std::string &  newLaneIDs 
)
protected

replace the parent edges of a demandElement

Definition at line 594 of file GNEHierarchicalParentElements.cpp.

References GNEAttributeCarrier::getNet(), and myParentLanes.

◆ updateFirstParentJunction()

void GNEHierarchicalParentElements::updateFirstParentJunction ( GNEJunction junction)

update front parent junction

Definition at line 344 of file GNEHierarchicalParentElements.cpp.

References myParentJunctions.

Referenced by GNEEdge::setAttribute().

Here is the caller graph for this function:

◆ updateGeometry()

◆ updateSecondParentJunction()

void GNEHierarchicalParentElements::updateSecondParentJunction ( GNEJunction junction)

update last parent junction

Definition at line 354 of file GNEHierarchicalParentElements.cpp.

References myParentJunctions.

Referenced by GNEEdge::setAttribute().

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ GNEChange_Children

friend class GNEChange_Children
friend

declare GNEChange_Children as friend class

Definition at line 53 of file GNEHierarchicalParentElements.h.

Field Documentation

◆ myAC

const GNEAttributeCarrier* GNEHierarchicalParentElements::myAC
private

pointer to AC (needed to avoid diamond problem)

Definition at line 251 of file GNEHierarchicalParentElements.h.

Referenced by addParentElement(), removeParentElement(), replaceParentAdditional(), and replaceParentDemandElement().

◆ myParentAdditionals

std::vector<GNEAdditional*> GNEHierarchicalParentElements::myParentAdditionals
private

vector of additional parents

Definition at line 236 of file GNEHierarchicalParentElements.h.

Referenced by addParentElement(), getParentAdditionals(), removeParentElement(), and replaceParentAdditional().

◆ myParentConnections

GNEGeometry::ParentConnections GNEHierarchicalParentElements::myParentConnections
protected

variable ParentConnections

Definition at line 223 of file GNEHierarchicalParentElements.h.

◆ myParentDemandElements

std::vector<GNEDemandElement*> GNEHierarchicalParentElements::myParentDemandElements
private

vector of demand elements parents

Definition at line 245 of file GNEHierarchicalParentElements.h.

Referenced by addParentElement(), getParentDemandElements(), removeParentElement(), and replaceParentDemandElement().

◆ myParentEdges

std::vector<GNEEdge*> GNEHierarchicalParentElements::myParentEdges
private

◆ myParentGenericDatas

std::vector<GNEGenericData*> GNEHierarchicalParentElements::myParentGenericDatas
private

vector of generic datas parents

Definition at line 248 of file GNEHierarchicalParentElements.h.

Referenced by addParentElement(), getParentGenericDatas(), and removeParentElement().

◆ myParentJunctions

std::vector<GNEJunction*> GNEHierarchicalParentElements::myParentJunctions
private

◆ myParentLanes

std::vector<GNELane*> GNEHierarchicalParentElements::myParentLanes
private

◆ myParentShapes

std::vector<GNEShape*> GNEHierarchicalParentElements::myParentShapes
private

vector of shape parents

Definition at line 239 of file GNEHierarchicalParentElements.h.

Referenced by addParentElement(), getParentShapes(), and removeParentElement().

◆ myParentTAZElements

std::vector<GNETAZElement*> GNEHierarchicalParentElements::myParentTAZElements
private

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