 |
Eclipse SUMO - Simulation of Urban MObility
|
Go to the documentation of this file.
16 #ifndef GNEHierarchicalChildElements_h
17 #define GNEHierarchicalChildElements_h
60 const std::vector<GNEEdge*>& childEdges,
61 const std::vector<GNELane*>& childLanes,
62 const std::vector<GNEShape*>& childShapes,
63 const std::vector<GNEAdditional*>& childAdditionals,
64 const std::vector<GNEDemandElement*>& childDemandElements);
void addChildAdditional(GNEAdditional *additional)
An Element which don't belongs to GNENet but has influency in the simulation.
An Element which don't belongs to GNENet but has influency in the simulation.
void removeChildLane(GNELane *lane)
remove child lane
void removeChildEdge(GNEEdge *edge)
remove child edge
GNEHierarchicalChildElements(const GNEHierarchicalChildElements &)=delete
Invalidated copy constructor.
const std::vector< GNEDemandElement * > & getChildDemandElements() const
return child demand elements
struct for pack all variables and functions relative to connections between hierarchical element and ...
const std::vector< GNEEdge * > & getChildEdges() const
get child edges
void addChildEdge(GNEEdge *edge)
virtual void updateParentDemandElement()
update parent after add or remove a child (can be reimplemented, for example used for statistics)
void drawChildConnections(const GUIVisualizationSettings &s, const GUIGlObjectType GLTypeParent) const
void addChildDemandElement(GNEDemandElement *demandElement)
std::vector< GNEAdditional * > myChildAdditionals
vector with the child additional
~GNEHierarchicalChildElements()
Destructor.
void sortChildAdditionals()
sort child additionals (used by Rerouters, VSS, TAZs...)
GNEHierarchicalChildElements * myHierarchicalElement
pointer to hierarchical element parent
GNEHierarchicalChildElements & operator=(const GNEHierarchicalChildElements &)=delete
Invalidated assignment operator.
SumoXMLTag
Numbers representing SUMO-XML - element names.
An special type of Attribute carrier that owns hierarchical elements.
std::vector< GNEShape * > myChildShapes
vector with the child lanes of this element
virtual std::string generateChildID(SumoXMLTag childTag)=0
gererate a new ID for an element child
A road/street connecting two junctions (netedit-version)
const std::vector< GNELane * > & getChildLanes() const
get child lanes
double getChildRotation(const GNELane *lane)
get child rotation calculated in ChildConnections
void addChildLane(GNELane *lane)
void update()
update Connection's geometry
GNEDemandElement * getPreviousChildDemandElement(const GNEDemandElement *demandElement) const
get previous child demand element to the given demand element
GNEHierarchicalChildElements(GNEAttributeCarrier *AC, const std::vector< GNEEdge * > &childEdges, const std::vector< GNELane * > &childLanes, const std::vector< GNEShape * > &childShapes, const std::vector< GNEAdditional * > &childAdditionals, const std::vector< GNEDemandElement * > &childDemandElements)
Parameter Constructor.
void sortChildDemandElements()
sort child demand elements
void removeChildShape(GNEShape *shape)
remove child shape
const std::vector< GNEShape * > & getChildShapes() const
get child shapes
std::vector< GNEDemandElement * > myChildDemandElements
vector with the demand elements children
void draw(const GUIVisualizationSettings &s, const GUIGlObjectType parentType) const
draw connections between Parent and childrens
ChildConnections(GNEHierarchicalChildElements *hierarchicalElement)
constructor
virtual Position getPositionInView() const =0
Returns position of hierarchical element in view.
ConnectionGeometry()
default constructor
GNEDemandElement * getNextChildDemandElement(const GNEDemandElement *demandElement) const
get next child demand element to the given demand element
A point in 2D or 3D with translation and scaling methods.
std::vector< GNEEdge * > myChildEdges
vector with the child edges of this element
void updateChildConnections()
update child connections
void removeChildAdditional(GNEAdditional *additional)
remove child additional
void changeChildEdges(GNEAdditional *elementChild, const std::string &newEdgeIDs)
change child edges of an additional
void changeChildLanes(GNEAdditional *elementChild, const std::string &newEdgeIDs)
change child edges of an additional
void removeChildDemandElement(GNEDemandElement *demandElement)
remove child demand element
GNEAttributeCarrier * myAC
pointer to AC (needed to avoid diamond problem)
virtual void updateGeometry()=0
bool checkChildDemandElementsOverlapping() const
check if childs demand elements are overlapped
const Position & getChildPosition(const GNELane *lane)
get child position calculated in ChildConnections
const std::set< GNEDemandElement * > & getChildDemandElementsSortedByType(SumoXMLTag tag) const
return child demand elements sorted by type
bool checkChildAdditionalsOverlapping() const
check if children are overlapped (Used by Rerouters)
ChildConnections myChildConnections
variable ChildConnections
std::vector< ConnectionGeometry > symbolsPositionAndRotation
position and rotation of every symbol over lane
std::vector< GNELane * > myChildLanes
vector with the child lanes of this element
void addChildShape(GNEShape *shape)
Stores the information about how to visualize structures.
virtual void updateParentAdditional()
update parent after add or remove a child (can be reimplemented, for example used for statistics)
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
std::map< SumoXMLTag, std::set< GNEDemandElement * > > mySortedChildDemandElementsByType
vector with the demand elements children sorted by type and filtered (to avoid duplicated
const std::vector< GNEAdditional * > & getChildAdditionals() const
return child additionals
std::vector< PositionVector > connectionPositions
Matrix with the Vertex's positions of connections between parents an their children.