17 #ifndef GNEHierarchicalElementParents_h 18 #define GNEHierarchicalElementParents_h 64 const std::vector<GNEEdge*>& edgeParents,
65 const std::vector<GNELane*>& laneParents,
66 const std::vector<GNEShape*>& shapeParents,
67 const std::vector<GNEAdditional*>& additionalParents,
68 const std::vector<GNEDemandElement*>& demandElementParents);
void removeEdgeParent(GNEEdge *edge)
remove edge parent
struct for pack all variables and functions relative to connections between hierarchical element and ...
void addDemandElementParent(GNEDemandElement *demandElement)
std::vector< GNEAdditional * > myAdditionalParents
list of additional parents of this element
Stores the information about how to visualize structures.
void changeAdditionalParent(GNEShape *shapeTobeChanged, const std::string &newAdditionalParentID, int additionalParentIndex)
change additional parent of a shape
void addLaneParent(GNELane *lane)
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
GNEHierarchicalElementParents & operator=(const GNEHierarchicalElementParents &)=delete
Invalidated assignment operator.
void removeShapeParent(GNEShape *shape)
remove shape parent
void draw(const GUIVisualizationSettings &s, const GUIGlObjectType parentType) const
draw connections between Parent and childrens
ParentConnections myParentConnections
variable ParentConnections
GNEHierarchicalElementParents * myHierarchicalElement
pointer to hierarchical element parent
const std::vector< GNEEdge * > & getEdgeParents() const
get edge parents
const std::vector< GNEShape * > & getShapeParents() const
get shapes of VSS
An special type of Attribute carrier that owns hierarchical elements.
std::vector< GNELane * > myLaneParents
list of lane parents of this element
void addEdgeParent(GNEEdge *edge)
void addAdditionalParent(GNEAdditional *additional)
virtual Position getPositionInView() const =0
Returns position of hierarchical element in view.
A point in 2D or 3D with translation and scaling methods.
std::vector< std::pair< Position, double > > symbolsPositionAndRotation
position and rotation of every symbol over lane
void changeDemandElementParent(GNEShape *shapeTobeChanged, const std::string &newDemandElementParentID, int demandElementParentIndex)
change first demand element parent of a shape
const std::vector< GNELane * > & getLaneParents() const
get lanes of VSS
const std::vector< GNEAdditional * > & getAdditionalParents() const
return vector of additionals that have as Parent this edge (For example, Calibrators) ...
void removeLaneParent(GNELane *lane)
remove lane parent
GNEHierarchicalElementParents(GNEAttributeCarrier *AC, const std::vector< GNEEdge *> &edgeParents, const std::vector< GNELane *> &laneParents, const std::vector< GNEShape *> &shapeParents, const std::vector< GNEAdditional *> &additionalParents, const std::vector< GNEDemandElement *> &demandElementParents)
Constructor used by elements that have another additionals as parent.
ParentConnections(GNEHierarchicalElementParents *hierarchicalElement)
constructor
void addShapeParent(GNEShape *shape)
A road/street connecting two junctions (netedit-version)
const std::vector< GNEDemandElement * > & getDemandElementParents() const
return vector of demand elements that have as Parent this edge (For example, Calibrators) ...
void changeLaneParents(GNEShape *elementChild, const std::string &newLaneIDs)
change edge parents of a shape
std::vector< GNEShape * > myShapeParents
list of shape parents of this element
An Element which don't belongs to GNENet but has influency in the simulation.
void update()
update Connection's geometry
~GNEHierarchicalElementParents()
Destructor.
std::vector< GNEDemandElement * > myDemandElementParents
list of demand elements parents of this element
void changeEdgeParents(GNEShape *elementChild, const std::string &newEdgeIDs)
change edge parents of a shape
void removeAdditionalParent(GNEAdditional *additional)
remove additional parent from this additional
virtual void updateGeometry()=0
std::vector< GNEEdge * > myEdgeParents
list of edge parents of this element
std::vector< PositionVector > connectionPositions
Matrix with the Vertex's positions of connections between parents an their children.
void removeDemandElementParent(GNEDemandElement *demandElement)
remove demand element parent from this demand element
GNEAttributeCarrier * myAC
pointer to AC (needed to avoid diamond problem)
An Element which don't belongs to GNENet but has influency in the simulation.