56 const std::vector<GNEJunction*>& parentJunctions,
57 const std::vector<GNEEdge*>& parentEdges,
58 const std::vector<GNELane*>& parentLanes,
59 const std::vector<GNEAdditional*>& parentAdditionals,
60 const std::vector<GNEShape*>& parentShapes,
61 const std::vector<GNETAZElement*>& parentTAZElements,
62 const std::vector<GNEDemandElement*>& parentDemandElements,
63 const std::vector<GNEGenericData*>& parentGenericDatas);
183 template<
typename T,
typename U>
187 parent->removeChildElement(elementChild);
193 parent->addChildElement(elementChild);
198 template<
typename T,
typename U>
202 child->removeChildElement(elementChild);
208 child->addChildElement(elementChild);
SumoXMLTag
Numbers representing SUMO-XML - element names.
An Element which don't belongs to GNENet but has influency in the simulation.
class to pack all variables and functions relative to connections between hierarchical element and th...
Hierarchical container (used for keep myParent and myChildren.
const T & getParents() const
get parents
const T & getChildren() const
get children
void setChildren(const T &newChildren)
set children
void setParents(const T &newParents)
set parents
const std::vector< GNEJunction * > & getParentJunctions() const
get parent junctions
void addChildElement(T *element)
add child element
void drawHierarchicalConnections(const GUIVisualizationSettings &s, const GNEAttributeCarrier *AC, const double exaggeration) const
Draw hierarchical connections between parent and children.
const std::vector< GNETAZElement * > & getChildTAZElements() const
get child TAZElements
const std::vector< GNEDemandElement * > & getChildDemandElements() const
return child demand elements
~GNEHierarchicalElement()
Destructor.
const std::vector< GNEGenericData * > & getParentGenericDatas() const
get parent demand elements
bool checkChildAdditionalsOverlapping() const
check if children are overlapped (Used by Rerouters)
const std::vector< GNELane * > & getChildLanes() const
get child lanes
void updateHierarchicalConnections()
update child connections
virtual void updateParentAdditional()
update parent after add or remove a child (can be reimplemented, for example used for statistics)
const GNEHierarchicalContainer & getHierarchicalContainer() const
get hierarchicalcontainer with parents and children
const std::vector< GNEDemandElement * > & getParentDemandElements() const
get parent demand elements
GNEHierarchicalContainer myHierarchicalContainer
hierarchical container with parents and children
bool checkChildDemandElementsOverlapping() const
check if childs demand elements are overlapped
GNEGeometry::HierarchicalConnections myHierarchicalConnections
hierarchical connections
const std::vector< GNEAdditional * > & getParentAdditionals() const
get parent additionals
void addParentElement(T *element)
add parent element
virtual Position getPositionInView() const =0
Returns position of hierarchical element in view.
const std::vector< GNEShape * > & getParentShapes() const
get parent shapes
const std::vector< GNEEdge * > & getChildEdges() const
get child edges
const std::vector< GNEEdge * > & getParentEdges() const
get parent edges
std::vector< GNEHierarchicalElement * > getAllHierarchicalElements() const
get all parents and children
void removeChildElement(T *element)
remove child element
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 in...
virtual void updateGeometry()=0
update pre-computed geometry information
GNEHierarchicalElement(const GNEHierarchicalElement &)=delete
Invalidated copy constructor.
const std::vector< GNEJunction * > & getChildJunctions() const
get child junctions
GNEHierarchicalElement(GNENet *net, SumoXMLTag tag, 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.
const std::vector< GNELane * > & getParentLanes() const
get parent lanes
const std::vector< GNEShape * > & getChildShapes() const
get child shapes
const std::vector< GNETAZElement * > & getParentTAZElements() const
get parent TAZElements
const std::vector< GNEAdditional * > & getChildAdditionals() const
return child additionals
void replaceParentElements(T *elementChild, const U &newParents)
replace parent elements
GNEHierarchicalElement & operator=(const GNEHierarchicalElement &)=delete
Invalidated assignment operator.
void replaceChildElements(T *elementChild, const U &newChildren)
replace child elements
const std::vector< GNEGenericData * > & getChildGenericDatas() const
return child generic data elements
void removeParentElement(T *element)
remove parent element
void restoreHierarchicalContainer(const GNEHierarchicalContainer &container)
restore hierarchical container
A NBNetBuilder extended by visualisation and editing capabilities.
Stores the information about how to visualize structures.
A point in 2D or 3D with translation and scaling methods.