Skip to content

Commit

Permalink
Updated PersonPlans. Refs #10607
Browse files Browse the repository at this point in the history
  • Loading branch information
palvarezlopez committed May 5, 2022
1 parent ea6b97e commit 3428d0b
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 6 deletions.
20 changes: 18 additions & 2 deletions src/netedit/elements/demand/GNEPersonTrip.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,7 @@ GNEPersonTrip::getAttribute(SumoXMLAttr key) const {
switch (key) {
// Common person plan attributes
case SUMO_ATTR_ID:
case GNE_ATTR_PARENT:
return getParentDemandElements().front()->getID();
case SUMO_ATTR_FROM:
return getParentEdges().front()->getID();
Expand Down Expand Up @@ -338,8 +339,6 @@ GNEPersonTrip::getAttribute(SumoXMLAttr key) const {
return toString(isAttributeCarrierSelected());
case GNE_ATTR_PARAMETERS:
return getParametersStr();
case GNE_ATTR_PARENT:
return getParentDemandElements().front()->getID();
default:
throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
}
Expand Down Expand Up @@ -398,6 +397,7 @@ GNEPersonTrip::setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoLi
case SUMO_ATTR_MODES:
case SUMO_ATTR_VTYPES:
case GNE_ATTR_SELECTED:
case GNE_ATTR_PARENT:
case GNE_ATTR_PARAMETERS:
undoList->changeAttribute(new GNEChange_Attribute(this, key, value));
break;
Expand Down Expand Up @@ -477,6 +477,14 @@ GNEPersonTrip::isValid(SumoXMLAttr key, const std::string& value) {
return canParse<bool>(value);
case GNE_ATTR_PARAMETERS:
return Parameterised::areParametersValid(value);
case GNE_ATTR_PARENT:
if (myNet->getAttributeCarriers()->retrieveDemandElement(SUMO_TAG_PERSON, value, false) != nullptr) {
return true;
} else if (myNet->getAttributeCarriers()->retrieveDemandElement(SUMO_TAG_PERSONFLOW, value, false) != nullptr) {
return true;
} else {
return false;
}
default:
throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
}
Expand Down Expand Up @@ -594,6 +602,14 @@ GNEPersonTrip::setAttribute(SumoXMLAttr key, const std::string& value) {
case GNE_ATTR_PARAMETERS:
setParametersStr(value);
break;
case GNE_ATTR_PARENT:
if (myNet->getAttributeCarriers()->retrieveDemandElement(SUMO_TAG_PERSON, value, false) != nullptr) {
replaceDemandElementParent(SUMO_TAG_ROUTE, value, 0);
} else if (myNet->getAttributeCarriers()->retrieveDemandElement(SUMO_TAG_PERSONFLOW, value, false) != nullptr) {
replaceDemandElementParent(SUMO_TAG_PERSONFLOW, value, 0);
}
updateGeometry();
break;
default:
throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
}
Expand Down
20 changes: 18 additions & 2 deletions src/netedit/elements/demand/GNERide.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,7 @@ GNERide::getAttribute(SumoXMLAttr key) const {
switch (key) {
// Common person plan attributes
case SUMO_ATTR_ID:
case GNE_ATTR_PARENT:
return getParentDemandElements().front()->getID();
case SUMO_ATTR_FROM:
return getParentEdges().front()->getID();
Expand All @@ -310,8 +311,6 @@ GNERide::getAttribute(SumoXMLAttr key) const {
return toString(isAttributeCarrierSelected());
case GNE_ATTR_PARAMETERS:
return getParametersStr();
case GNE_ATTR_PARENT:
return getParentDemandElements().front()->getID();
default:
throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
}
Expand Down Expand Up @@ -362,6 +361,7 @@ GNERide::setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* un
case SUMO_ATTR_ARRIVALPOS:
case SUMO_ATTR_LINES:
case GNE_ATTR_SELECTED:
case GNE_ATTR_PARENT:
case GNE_ATTR_PARAMETERS:
undoList->changeAttribute(new GNEChange_Attribute(this, key, value));
break;
Expand Down Expand Up @@ -432,6 +432,14 @@ GNERide::isValid(SumoXMLAttr key, const std::string& value) {
return canParse<bool>(value);
case GNE_ATTR_PARAMETERS:
return Parameterised::areParametersValid(value);
case GNE_ATTR_PARENT:
if (myNet->getAttributeCarriers()->retrieveDemandElement(SUMO_TAG_PERSON, value, false) != nullptr) {
return true;
} else if (myNet->getAttributeCarriers()->retrieveDemandElement(SUMO_TAG_PERSONFLOW, value, false) != nullptr) {
return true;
} else {
return false;
}
default:
throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
}
Expand Down Expand Up @@ -530,6 +538,14 @@ GNERide::setAttribute(SumoXMLAttr key, const std::string& value) {
case GNE_ATTR_PARAMETERS:
setParametersStr(value);
break;
case GNE_ATTR_PARENT:
if (myNet->getAttributeCarriers()->retrieveDemandElement(SUMO_TAG_PERSON, value, false) != nullptr) {
replaceDemandElementParent(SUMO_TAG_ROUTE, value, 0);
} else if (myNet->getAttributeCarriers()->retrieveDemandElement(SUMO_TAG_PERSONFLOW, value, false) != nullptr) {
replaceDemandElementParent(SUMO_TAG_PERSONFLOW, value, 0);
}
updateGeometry();
break;
default:
throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
}
Expand Down
20 changes: 18 additions & 2 deletions src/netedit/elements/demand/GNEWalk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,7 @@ GNEWalk::getAttribute(SumoXMLAttr key) const {
switch (key) {
// Common person plan attributes
case SUMO_ATTR_ID:
case GNE_ATTR_PARENT:
return getParentDemandElements().front()->getID();
case SUMO_ATTR_FROM:
if (myTagProperty.getTag() == GNE_TAG_WALK_ROUTE) {
Expand Down Expand Up @@ -382,8 +383,6 @@ GNEWalk::getAttribute(SumoXMLAttr key) const {
return toString(isAttributeCarrierSelected());
case GNE_ATTR_PARAMETERS:
return getParametersStr();
case GNE_ATTR_PARENT:
return getParentDemandElements().front()->getID();
default:
throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
}
Expand Down Expand Up @@ -444,6 +443,7 @@ GNEWalk::setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* un
case SUMO_ATTR_FROMJUNCTION:
case SUMO_ATTR_ARRIVALPOS:
case GNE_ATTR_SELECTED:
case GNE_ATTR_PARENT:
case GNE_ATTR_PARAMETERS:
undoList->changeAttribute(new GNEChange_Attribute(this, key, value));
break;
Expand Down Expand Up @@ -565,6 +565,14 @@ GNEWalk::isValid(SumoXMLAttr key, const std::string& value) {
return canParse<bool>(value);
case GNE_ATTR_PARAMETERS:
return Parameterised::areParametersValid(value);
case GNE_ATTR_PARENT:
if (myNet->getAttributeCarriers()->retrieveDemandElement(SUMO_TAG_PERSON, value, false) != nullptr) {
return true;
} else if (myNet->getAttributeCarriers()->retrieveDemandElement(SUMO_TAG_PERSONFLOW, value, false) != nullptr) {
return true;
} else {
return false;
}
default:
throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
}
Expand Down Expand Up @@ -690,6 +698,14 @@ GNEWalk::setAttribute(SumoXMLAttr key, const std::string& value) {
case GNE_ATTR_PARAMETERS:
setParametersStr(value);
break;
case GNE_ATTR_PARENT:
if (myNet->getAttributeCarriers()->retrieveDemandElement(SUMO_TAG_PERSON, value, false) != nullptr) {
replaceDemandElementParent(SUMO_TAG_ROUTE, value, 0);
} else if (myNet->getAttributeCarriers()->retrieveDemandElement(SUMO_TAG_PERSONFLOW, value, false) != nullptr) {
replaceDemandElementParent(SUMO_TAG_PERSONFLOW, value, 0);
}
updateGeometry();
break;
default:
throw InvalidArgument(getTagStr() + " doesn't have an attribute of type '" + toString(key) + "'");
}
Expand Down

0 comments on commit 3428d0b

Please sign in to comment.