 |
Eclipse SUMO - Simulation of Urban MObility
|
Go to the documentation of this file.
17 #ifndef GNEHierarchicalElementChildren_h
18 #define GNEHierarchicalElementChildren_h
61 const std::vector<GNEEdge*>& edgeChildren,
62 const std::vector<GNELane*>& laneChildren,
63 const std::vector<GNEShape*>& shapeChildren,
64 const std::vector<GNEAdditional*>& additionalChildren,
65 const std::vector<GNEDemandElement*>& demandElementChildren);
void removeAdditionalChild(GNEAdditional *additional)
remove additional child from this additional
An Element which don't belongs to GNENet but has influency in the simulation.
void changeEdgeChildren(GNEAdditional *elementChild, const std::string &newEdgeIDs)
change edge children of an additional
An Element which don't belongs to GNENet but has influency in the simulation.
void removeEdgeChild(GNEEdge *edge)
remove edge child
~GNEHierarchicalElementChildren()
Destructor.
void addEdgeChild(GNEEdge *edge)
virtual std::string generateChildID(SumoXMLTag childTag)=0
gererate a new ID for an element child
virtual Position getPositionInView() const =0
Returns position of hierarchical element in view.
ChildConnections myChildConnections
variable ChildConnections
virtual void updateDemandElementParent()
update parent after add or remove a child (can be reimplemented, for example used for statistics)
struct for pack all variables and functions relative to connections between hierarchical element and ...
void addShapeChild(GNEShape *shape)
void removeShapeChild(GNEShape *shape)
remove shape child
void removeDemandElementChild(GNEDemandElement *demandElement)
remove demand element child from this demand element
void removeLaneChild(GNELane *lane)
remove lane child
SumoXMLTag
Numbers representing SUMO-XML - element names.
GNEHierarchicalElementChildren(GNEAttributeCarrier *AC, const std::vector< GNEEdge * > &edgeChildren, const std::vector< GNELane * > &laneChildren, const std::vector< GNEShape * > &shapeChildren, const std::vector< GNEAdditional * > &additionalChildren, const std::vector< GNEDemandElement * > &demandElementChildren)
Parameter Constructor.
GNEDemandElement * getNextDemandElement(const GNEDemandElement *demandElement) const
get next demand element to the given demand element
bool checkDemandElementChildrenOverlapping() const
check if children are overlapped (Used by Rerouters)
A road/street connecting two junctions (netedit-version)
std::vector< ConnectionGeometry > symbolsPositionAndRotation
position and rotation of every symbol over lane
bool checkAdditionalChildrenOverlapping() const
check if children are overlapped (Used by Rerouters)
const std::vector< GNELane * > & getLaneChildren() const
get lanes of VSS
ChildConnections(GNEHierarchicalElementChildren *hierarchicalElement)
constructor
const std::vector< GNEEdge * > & getEdgeChildren() const
get edge chidls
void addDemandElementChild(GNEDemandElement *demandElement)
ConnectionGeometry()
default constructor
void drawChildConnections(const GUIVisualizationSettings &s, const GUIGlObjectType GLTypeParent) const
GNEDemandElement * getPreviousemandElement(const GNEDemandElement *demandElement) const
get previous demand element to the given demand element
double getChildRotation(const GNELane *lane)
get child rotation calculated in ChildConnections
A point in 2D or 3D with translation and scaling methods.
void changeLaneChildren(GNEAdditional *elementChild, const std::string &newEdgeIDs)
change edge children of an additional
const std::vector< GNEShape * > & getShapeChildren() const
get shapes of VSS
std::map< SumoXMLTag, std::set< GNEDemandElement * > > mySortedDemandElementChildrenByType
vector with the demand elements children sorted by type and filtered (to avoid duplicated
std::vector< GNEEdge * > myEdgeChildren
vector with the edge children of this element
std::vector< PositionVector > connectionPositions
Matrix with the Vertex's positions of connections between parents an their children.
void draw(const GUIVisualizationSettings &s, const GUIGlObjectType parentType) const
draw connections between Parent and childrens
std::vector< GNEShape * > myShapeChildren
vector with the lane children of this element
std::vector< GNEDemandElement * > myDemandElementChildren
vector with the demand elements children
GNEHierarchicalElementChildren * myHierarchicalElement
pointer to hierarchical element parent
void addLaneChild(GNELane *lane)
const std::vector< GNEAdditional * > & getAdditionalChildren() const
return vector of additionals that have as Parent this edge (For example, Calibrators)
virtual void updateGeometry()=0
void updateChildConnections()
update child connections
void addAdditionalChild(GNEAdditional *additional)
virtual void updateAdditionalParent()
update parent after add or remove a child (can be reimplemented, for example used for statistics)
GNEAttributeCarrier * myAC
pointer to AC (needed to avoid diamond problem)
const Position & getChildPosition(const GNELane *lane)
get child position calculated in ChildConnections
void sortDemandElementChildren()
sort children (used by Rerouters, VSS, TAZs...)
void update()
update Connection's geometry
Stores the information about how to visualize structures.
const std::set< GNEDemandElement * > & getSortedDemandElementChildrenByType(SumoXMLTag tag) const
return vector of demand elements that have as Parent this edge (For example, Calibrators)
void sortAdditionalChildren()
sort children (used by Rerouters, VSS, TAZs...)
const std::vector< GNEDemandElement * > & getDemandElementChildren() const
return vector of demand elements that have as Parent this edge (For example, Calibrators)
GNEHierarchicalElementChildren & operator=(const GNEHierarchicalElementChildren &)=delete
Invalidated assignment operator.
std::vector< GNELane * > myLaneChildren
vector with the lane children of this element
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
An special type of Attribute carrier that owns hierarchical elements.
std::vector< GNEAdditional * > myAdditionalChildren
vector with the additional children