64 const std::vector<GNEJunction*>& childJunctions,
65 const std::vector<GNEEdge*>& childEdges,
66 const std::vector<GNELane*>& childLanes,
67 const std::vector<GNEAdditional*>& childAdditionals,
68 const std::vector<GNEShape*>& childShapes,
69 const std::vector<GNETAZElement*>& childTAZElements,
70 const std::vector<GNEDemandElement*>& childDemandElements,
71 const std::vector<GNEGenericData*>& childGenericDataElements);
void changeChildEdges(GNEAdditional *elementChild, const std::string &newEdgeIDs)
change child edges of an additional
const std::vector< GNEShape * > & getChildShapes() const
get child shapes
Position myPosition
position
std::vector< GNEGeometry::Geometry > connectionsGeometries
geometry connections between parents an their children
SumoXMLTag
Numbers representing SUMO-XML - element names.
virtual Position getPositionInView() const =0
Returns position of hierarchical element in view.
ConnectionGeometry()
default constructor
const Position & getChildPosition(const GNELane *lane)
get child position calculated in ChildConnections
void updateChildConnections()
update child connections
An Element which don't belongs to GNENet but has influency in the simulation.
void changeChildLanes(GNEAdditional *elementChild, const std::string &newEdgeIDs)
change child edges of an additional
void update()
update Connection's geometry
virtual void updateGeometry()=0
bool checkChildAdditionalsOverlapping() const
check if children are overlapped (Used by Rerouters)
const GNEAttributeCarrier * myAC
pointer to AC (needed to avoid diamond problem)
Stores the information about how to visualize structures.
bool checkChildDemandElementsOverlapping() const
check if childs demand elements are overlapped
GNEHierarchicalChildElements * myHierarchicalElement
pointer to hierarchical element parent
An Element which don't belongs to GNENet but has influency in the simulation.
ChildConnections myChildConnections
variable ChildConnections
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
std::vector< GNEGenericData * > myChildGenericDataElements
vector with the generic data elements children
std::vector< GNELane * > myChildLanes
vector with the child lanes
void drawDottedConnection(const GUIVisualizationSettings &s, const double exaggeration) const
draw dotted connections between Parent and childrens
void drawChildDottedConnections(const GUIVisualizationSettings &s, const double exaggeration) const
Draw dotted connections between parent and children.
std::vector< ConnectionGeometry > symbolsPositionAndRotation
position and rotation of every symbol over lane
const Position & getPosition() const
get position
virtual void updateParentAdditional()
update parent after add or remove a child (can be reimplemented, for example used for statistics) ...
A point in 2D or 3D with translation and scaling methods.
class to pack all variables and functions relative to connections between hierarchical element and th...
const std::vector< GNEAdditional * > & getChildAdditionals() const
return child additionals
const std::vector< GNEDemandElement * > & getChildDemandElementsByType(SumoXMLTag tag) const
return child demand elements by type
ChildConnections(GNEHierarchicalChildElements *hierarchicalElement)
constructor
virtual void updateParentDemandElement()
update parent after add or remove a child (can be reimplemented, for example used for statistics) ...
const std::vector< GNEEdge * > & getChildEdges() const
get child edges
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.
std::map< SumoXMLTag, std::vector< GNEDemandElement *> > myDemandElementsByType
vector with the demand elements children sorted by type and filtered (to avoid duplicated ...
void addChildElement(T *element)
add child
std::vector< GNEAdditional * > myChildAdditionals
vector with the child additionas
const std::vector< GNEDemandElement * > & getChildDemandElements() const
return child demand elements
void drawChildConnections(const GUIVisualizationSettings &s, const GUIGlObjectType GLTypeParent, const double exaggeration) const
Draw connections between parent and children.
void sortChildAdditionals()
sort child additionals (used by Rerouters, VSS, TAZs...)
const std::vector< GNETAZElement * > & getChildTAZElements() const
get child TAZElements
GNEHierarchicalChildElements & operator=(const GNEHierarchicalChildElements &)=delete
Invalidated assignment operator.
An Element which don't belongs to GNENet but has influency in the simulation.
~GNEHierarchicalChildElements()
Destructor.
const std::vector< GNEGenericData * > & getChildGenericDatas() const
return child generic data elements
const GNELane * getLane() const
get lane
std::vector< GNEShape * > myChildShapes
vector with the child lanes
std::vector< GNETAZElement * > myChildTAZElements
vector with the child TAZ Elements
double getChildRotation(const GNELane *lane)
get child rotation calculated in ChildConnections
void drawConnection(const GUIVisualizationSettings &s, const GUIGlObjectType parentType, const double exaggeration) const
draw connections between Parent and childrens
GNEDemandElement * getPreviousChildDemandElement(const GNEDemandElement *demandElement) const
get previous child demand element to the given demand element
void sortChildDemandElements()
sort child demand elements
double getRotation() const
get rotation
std::vector< GNEJunction * > myChildJunctions
vector with the child junctions
std::vector< GNEDemandElement * > myChildDemandElements
vector with the demand elements children
void removeChildElement(T *element)
remove child
const std::vector< GNELane * > & getChildLanes() const
get child lanes
double myRotation
rotation
An special type of Attribute carrier that owns hierarchical elements.
An Element which don't belongs to GNENet but has influency in the simulation.
GNEDemandElement * getNextChildDemandElement(const GNEDemandElement *demandElement) const
get next child demand element to the given demand element
std::vector< GNEEdge * > myChildEdges
vector with the child edges