38 const std::vector<GNEJunction*>& parentJunctions,
39 const std::vector<GNEEdge*>& parentEdges,
40 const std::vector<GNELane*>& parentLanes,
41 const std::vector<GNEAdditional*>& parentAdditionals,
42 const std::vector<GNEDemandElement*>& ParentDemandElements,
43 const std::vector<GNEGenericData*>& parentGenericDatas):
44 myParentJunctions(parentJunctions),
45 myParentEdges(parentEdges),
46 myParentLanes(parentLanes),
47 myParentAdditionals(parentAdditionals),
48 myParentDemandElements(ParentDemandElements),
49 myParentGenericDatas(parentGenericDatas) {
109 throw ProcessError(additional->
getTagStr() +
" with ID='" + additional->
getID() +
"' was already inserted in " + hierarchicalElement->
getTagStr() +
" with ID='" + hierarchicalElement->
getID() +
"'");
120 throw ProcessError(demandElement->
getTagStr() +
" with ID='" + demandElement->
getID() +
"' was already inserted in " + hierarchicalElement->
getTagStr() +
" with ID='" + hierarchicalElement->
getID() +
"'");
131 throw ProcessError(genericData->
getTagStr() +
" with ID='" + genericData->
getID() +
"' was already inserted in " + hierarchicalElement->
getTagStr() +
" with ID='" + hierarchicalElement->
getID() +
"'");
191 throw ProcessError(demandElement->
getTagStr() +
" with ID='" + demandElement->
getID() +
"' doesn't exist in " + hierarchicalElement->
getTagStr() +
" with ID='" + hierarchicalElement->
getID() +
"'");
247 throw ProcessError(additional->
getTagStr() +
" with ID='" + additional->
getID() +
"' was already inserted in " + hierarchicalElement->
getTagStr() +
" with ID='" + hierarchicalElement->
getID() +
"'");
273 throw ProcessError(genericData->
getTagStr() +
" with ID='" + genericData->
getID() +
"' was already inserted in " + hierarchicalElement->
getTagStr() +
" with ID='" + hierarchicalElement->
getID() +
"'");
333 throw ProcessError(demandElement->
getTagStr() +
" with ID='" + demandElement->
getID() +
"' doesn't exist in " + hierarchicalElement->
getTagStr() +
" with ID='" + hierarchicalElement->
getID() +
"'");
352template<>
const std::vector<GNEJunction*>&
358template<>
const std::vector<GNEEdge*>&
364template<>
const std::vector<GNELane*>&
370template<>
const std::vector<GNEAdditional*>&
376template<>
const std::vector<GNEDemandElement*>&
382template<>
const std::vector<GNEGenericData*>&
424template<>
const std::vector<GNEJunction*>&
430template<>
const std::vector<GNEEdge*>&
436template<>
const std::vector<GNELane*>&
442template<>
const std::vector<GNEAdditional*>&
448template<>
const std::vector<GNEDemandElement*>&
454template<>
const std::vector<GNEGenericData*>&
An Element which don't belong to GNENet but has influence in the simulation.
const std::string getID() const
get ID (all Attribute Carriers have one)
const std::string & getTagStr() const
get tag assigned to this object in string format
A road/street connecting two junctions (netedit-version)
An Element which don't belong to GNENet but has influence in the simulation.
std::vector< GNEEdge * > myChildEdges
vector with the child edges
std::vector< GNEDemandElement * > myChildDemandElements
vector with the child demand elements
std::vector< GNEDemandElement * > myParentDemandElements
vector of parent demand elements
GNEHierarchicalContainer()
default constructor
std::vector< GNELane * > myParentLanes
vector of parent lanes
void addParentElement(const GNEHierarchicalElement *hierarchicalElement, T *element)
add parent element
size_t getContainerSize() const
get container size
std::vector< GNEAdditional * > myChildAdditionals
vector with the child additional
const T & getChildren() const
get children
std::vector< GNEEdge * > myParentEdges
vector of parent edges
void addChildElement(const GNEHierarchicalElement *hierarchicalElement, T *element)
add child element
std::vector< GNEJunction * > myChildJunctions
vector with the child junctions
void removeParentElement(const GNEHierarchicalElement *hierarchicalElement, T *element)
remove parent element
std::vector< GNEJunction * > myParentJunctions
vector of parent junctions
std::vector< GNEAdditional * > myParentAdditionals
vector of parent additionals
std::vector< GNEGenericData * > myParentGenericDatas
vector of parent generic datas
static const bool checkContainer
flag for enable/disable check duplicate elements (only used for debug purposes)
std::vector< GNEGenericData * > myChildGenericDatas
vector with the generic child data elements
void setChildren(const T &newChildren)
set children
void setParents(const T &newParents)
set parents
void removeChildElement(const GNEHierarchicalElement *hierarchicalElement, T *element)
remove child element
const T & getParents() const
get parents
std::vector< GNELane * > myChildLanes
vector with the child lanes
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.