Skip to content

Commit

Permalink
Renamed GNEHierarchicalElement functions. Refs #16067
Browse files Browse the repository at this point in the history
  • Loading branch information
palvarezlopez committed Feb 7, 2025
1 parent 1569b82 commit 0b20e05
Show file tree
Hide file tree
Showing 8 changed files with 186 additions and 172 deletions.
28 changes: 14 additions & 14 deletions src/netedit/changes/GNEChange.h
Original file line number Diff line number Diff line change
Expand Up @@ -120,25 +120,25 @@ class GNEChange : public FXObject {
template<typename T>
void addElementInParentsAndChildren(T* element) {
// add element in children
for (const auto& junction : myParents.getParents<GNEJunction*>()) {
for (const auto& junction : myParents.get<GNEJunction*>()) {
GNEHierarchicalElement::insertChild(junction, element);
}
for (const auto& edge : myParents.getParents<GNEEdge*>()) {
for (const auto& edge : myParents.get<GNEEdge*>()) {
GNEHierarchicalElement::insertChild(edge, element);
}
for (const auto& lane : myParents.getParents<GNELane*>()) {
for (const auto& lane : myParents.get<GNELane*>()) {
GNEHierarchicalElement::insertChild(lane, element);
}
for (const auto& additional : myParents.getParents<GNEAdditional*>()) {
for (const auto& additional : myParents.get<GNEAdditional*>()) {
GNEHierarchicalElement::insertChild(additional, element);
}
for (const auto& sourceSink : myParents.getParents<GNETAZSourceSink*>()) {
for (const auto& sourceSink : myParents.get<GNETAZSourceSink*>()) {
GNEHierarchicalElement::insertChild(sourceSink, element);
}
for (const auto& demandElement : myParents.getParents<GNEDemandElement*>()) {
for (const auto& demandElement : myParents.get<GNEDemandElement*>()) {
GNEHierarchicalElement::insertChild(demandElement, element);
}
for (const auto& genericData : myParents.getParents<GNEGenericData*>()) {
for (const auto& genericData : myParents.get<GNEGenericData*>()) {
GNEHierarchicalElement::insertChild(genericData, element);
}
}
Expand All @@ -147,25 +147,25 @@ class GNEChange : public FXObject {
template<typename T>
void removeElementFromParentsAndChildren(T* element) {
// Remove element from parents
for (const auto& junction : myParents.getParents<GNEJunction*>()) {
for (const auto& junction : myParents.get<GNEJunction*>()) {
GNEHierarchicalElement::removeChild(junction, element);
}
for (const auto& edge : myParents.getParents<GNEEdge*>()) {
for (const auto& edge : myParents.get<GNEEdge*>()) {
GNEHierarchicalElement::removeChild(edge, element);
}
for (const auto& lane : myParents.getParents<GNELane*>()) {
for (const auto& lane : myParents.get<GNELane*>()) {
GNEHierarchicalElement::removeChild(lane, element);
}
for (const auto& additional : myParents.getParents<GNEAdditional*>()) {
for (const auto& additional : myParents.get<GNEAdditional*>()) {
GNEHierarchicalElement::removeChild(additional, element);
}
for (const auto& sourceSink : myParents.getParents<GNETAZSourceSink*>()) {
for (const auto& sourceSink : myParents.get<GNETAZSourceSink*>()) {
GNEHierarchicalElement::removeChild(sourceSink, element);
}
for (const auto& demandElement : myParents.getParents<GNEDemandElement*>()) {
for (const auto& demandElement : myParents.get<GNEDemandElement*>()) {
GNEHierarchicalElement::removeChild(demandElement, element);
}
for (const auto& genericData : myParents.getParents<GNEGenericData*>()) {
for (const auto& genericData : myParents.get<GNEGenericData*>()) {
GNEHierarchicalElement::removeChild(genericData, element);
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/netedit/changes/GNEChange_DemandElement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ GNEChange_DemandElement::undo() {
myDemandElement->getNet()->getViewNet()->getViewParent()->getTypeFrame()->getTypeSelector()->refreshTypeSelector(true);
}
// update stack labels
const auto parentEdges = myParents.getParents<GNEEdge*>();
const auto parentEdges = myParents.get<GNEEdge*>();
if (parentEdges.size() > 0) {
parentEdges.front()->updateVehicleStackLabels();
parentEdges.front()->updatePersonStackLabels();
Expand Down Expand Up @@ -122,7 +122,7 @@ GNEChange_DemandElement::redo() {
myDemandElement->getNet()->getViewNet()->getViewParent()->getTypeFrame()->getTypeSelector()->refreshTypeSelector(true);
}
// update stack labels
const auto parentEdges = myParents.getParents<GNEEdge*>();
const auto parentEdges = myParents.get<GNEEdge*>();
if (parentEdges.size() > 0) {
parentEdges.front()->updateVehicleStackLabels();
parentEdges.front()->updatePersonStackLabels();
Expand Down
26 changes: 13 additions & 13 deletions src/netedit/elements/GNEHierarchicalElement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,25 +66,25 @@ GNEHierarchicalElement::clearParents() {

const GNEHierarchicalContainerParents<GNEJunction*>&
GNEHierarchicalElement::getParentJunctions() const {
return myHierarchicalStructureParents.getParents<GNEJunction*>();
return myHierarchicalStructureParents.get<GNEJunction*>();
}


const GNEHierarchicalContainerParents<GNEEdge*>&
GNEHierarchicalElement::getParentEdges() const {
return myHierarchicalStructureParents.getParents<GNEEdge*>();
return myHierarchicalStructureParents.get<GNEEdge*>();
}


const GNEHierarchicalContainerParents<GNELane*>&
GNEHierarchicalElement::getParentLanes() const {
return myHierarchicalStructureParents.getParents<GNELane*>();
return myHierarchicalStructureParents.get<GNELane*>();
}


const GNEHierarchicalContainerParents<GNEAdditional*>&
GNEHierarchicalElement::getParentAdditionals() const {
return myHierarchicalStructureParents.getParents<GNEAdditional*>();
return myHierarchicalStructureParents.get<GNEAdditional*>();
}


Expand Down Expand Up @@ -114,55 +114,55 @@ GNEHierarchicalElement::getParentTAZs() const {

const GNEHierarchicalContainerParents<GNEDemandElement*>&
GNEHierarchicalElement::getParentDemandElements() const {
return myHierarchicalStructureParents.getParents<GNEDemandElement*>();
return myHierarchicalStructureParents.get<GNEDemandElement*>();
}


const GNEHierarchicalContainerParents<GNEGenericData*>&
GNEHierarchicalElement::getParentGenericDatas() const {
return myHierarchicalStructureParents.getParents<GNEGenericData*>();
return myHierarchicalStructureParents.get<GNEGenericData*>();
}


const GNEHierarchicalContainerChildren<GNEJunction*>&
GNEHierarchicalElement::getChildJunctions() const {
return myHierarchicalStructureChildren.getChildren<GNEJunction*>();
return myHierarchicalStructureChildren.get<GNEJunction*>();
}


const GNEHierarchicalContainerChildren<GNEEdge*>&
GNEHierarchicalElement::getChildEdges() const {
return myHierarchicalStructureChildren.getChildren<GNEEdge*>();
return myHierarchicalStructureChildren.get<GNEEdge*>();
}


const GNEHierarchicalContainerChildren<GNELane*>&
GNEHierarchicalElement::getChildLanes() const {
return myHierarchicalStructureChildren.getChildren<GNELane*>();
return myHierarchicalStructureChildren.get<GNELane*>();
}


const GNEHierarchicalContainerChildren<GNEAdditional*>&
GNEHierarchicalElement::getChildAdditionals() const {
return myHierarchicalStructureChildren.getChildren<GNEAdditional*>();
return myHierarchicalStructureChildren.get<GNEAdditional*>();
}


const GNEHierarchicalContainerChildren<GNETAZSourceSink*>&
GNEHierarchicalElement::getChildTAZSourceSinks() const {
return myHierarchicalStructureChildren.getChildren<GNETAZSourceSink*>();
return myHierarchicalStructureChildren.get<GNETAZSourceSink*>();
}


const GNEHierarchicalContainerChildren<GNEDemandElement*>&
GNEHierarchicalElement::getChildDemandElements() const {
return myHierarchicalStructureChildren.getChildren<GNEDemandElement*>();
return myHierarchicalStructureChildren.get<GNEDemandElement*>();
}


const GNEHierarchicalContainerChildren<GNEGenericData*>&
GNEHierarchicalElement::getChildGenericDatas() const {
return myHierarchicalStructureChildren.getChildren<GNEGenericData*>();
return myHierarchicalStructureChildren.get<GNEGenericData*>();
}


Expand Down
44 changes: 22 additions & 22 deletions src/netedit/elements/GNEHierarchicalElement.h
Original file line number Diff line number Diff line change
Expand Up @@ -136,70 +136,70 @@ class GNEHierarchicalElement : public GNEAttributeCarrier {
/// @brief insert parent element
template<typename T, typename U>
static void insertParent(T* element, U* parent, const int index = -1) {
element->myHierarchicalStructureParents.addParentElement(parent, index);
parent->myHierarchicalStructureChildren.addChildElement(element);
element->myHierarchicalStructureParents.add(parent, index);
parent->myHierarchicalStructureChildren.add(element);
}

/// @brief remove parent element
template<typename T, typename U>
static void removeParent(T* element, U* parent) {
element->myHierarchicalStructureParents.removeParentElement(parent);
parent->myHierarchicalStructureChildren.removeChildElement(element);
element->myHierarchicalStructureParents.remove(parent);
parent->myHierarchicalStructureChildren.remove(element);
}

/// @brief update single parent element
template<typename T, typename U>
static void updateParent(T element, const int index, U newParent) {
// remove element from old parent
auto oldParent = element->myHierarchicalStructureParents.at<U>(index);
oldParent->myHierarchicalStructureChildren.removeChildElement(element);
oldParent->myHierarchicalStructureChildren.remove(element);
// update parent
element->myHierarchicalStructureParents.updateParentElement(index, newParent);
element->myHierarchicalStructureParents.replaceSingle(index, newParent);
// insert child in new parent
newParent->myHierarchicalStructureChildren.addChildElement(element);
newParent->myHierarchicalStructureChildren.add(element);
}

/// @brief update all parent elements
template<typename T, typename U>
static void updateParents(T element, GNEHierarchicalContainerParents<U> newParents) {
// remove children
for (const auto parent : element->myHierarchicalStructureParents.getParents<U>()) {
parent->myHierarchicalStructureChildren.removeChildElement(element);
for (const auto parent : element->myHierarchicalStructureParents.get<U>()) {
parent->myHierarchicalStructureChildren.remove(element);
}
// update parents
element->myHierarchicalStructureParents.updateParents(newParents);
element->myHierarchicalStructureParents.replaceAll(newParents);
// restore children
for (const auto parent : element->myHierarchicalStructureParents.getParents<U>()) {
parent->myHierarchicalStructureChildren.addChildElement(element);
for (const auto parent : element->myHierarchicalStructureParents.get<U>()) {
parent->myHierarchicalStructureChildren.add(element);
}
}

/// @brief insert child element
template<typename T, typename U>
static void insertChild(T element, U child) {
element->myHierarchicalStructureChildren.addChildElement(child);
child->myHierarchicalStructureParents.addParentElement(element);
element->myHierarchicalStructureChildren.add(child);
child->myHierarchicalStructureParents.add(element);
}

/// @brief remove child element
template<typename T, typename U>
static void removeChild(T element, U child) {
element->myHierarchicalStructureChildren.removeChildElement(child);
child->myHierarchicalStructureParents.removeParentElement(element);
element->myHierarchicalStructureChildren.remove(child);
child->myHierarchicalStructureParents.remove(element);
}

/// @brief update all children elements
template<typename T, typename U>
static void updateChildren(T element, GNEHierarchicalContainerChildren<U> newChildren) {
// remove children
for (const auto children : element->myHierarchicalStructureChildren.getChildren<U>()) {
children->myHierarchicalStructureParents.removeParentElement(element);
for (const auto children : element->myHierarchicalStructureChildren.get<U>()) {
children->myHierarchicalStructureParents.remove(element);
}
// update children
element->myHierarchicalStructureChildren.updateChildren(newChildren);
element->myHierarchicalStructureChildren.replaceAll(newChildren);
// restore children
for (const auto children : element->myHierarchicalStructureChildren.getChildren<U>()) {
children->myHierarchicalStructureParents.addParentElement(element);
for (const auto children : element->myHierarchicalStructureChildren.get<U>()) {
children->myHierarchicalStructureParents.add(element);
}
}

Expand All @@ -208,7 +208,7 @@ class GNEHierarchicalElement : public GNEAttributeCarrier {
/// @brief add child without updating parent (ONLY used if we're creating elements without undo-redo)
template<typename T>
void addChildElement(T* element) {
myHierarchicalStructureChildren.addChildElement(element);
myHierarchicalStructureChildren.add(element);
}

/// @name specific get functions
Expand Down
Loading

0 comments on commit 0b20e05

Please sign in to comment.