85 TAZSource(_TAZSource),
89 sourcePlusSinkColor(0),
90 sourceMinusSinkColor(0),
91 myTAZCurrentParent(TAZCurrentParent)
100 sourceColor = GNEAttributeCarrier::parse<int>(TAZSource->getAttribute(
GNE_ATTR_TAZCOLOR));
101 sinkColor = GNEAttributeCarrier::parse<int>(TAZSink->getAttribute(
GNE_ATTR_TAZCOLOR));
103 double sourcePlusSinkWeight = TAZSource->getDepartWeight() + TAZSink->getDepartWeight();
105 if ((myTAZCurrentParent->myMaxSourcePlusSinkWeight - myTAZCurrentParent->myMinSourcePlusSinkWeight) == 0) {
106 sourcePlusSinkColor = 0;
109 double percentage = (sourcePlusSinkWeight - myTAZCurrentParent->myMinSourcePlusSinkWeight) /
110 (myTAZCurrentParent->myMaxSourcePlusSinkWeight - myTAZCurrentParent->myMinSourcePlusSinkWeight);
112 if (percentage >= 1) {
113 sourcePlusSinkColor = 9;
114 }
else if (percentage < 0) {
115 sourcePlusSinkColor = 0;
117 sourcePlusSinkColor = (int)(percentage * 10);
121 double sourceMinusSinkWeight = TAZSource->getDepartWeight() - TAZSink->getDepartWeight();
123 if ((myTAZCurrentParent->myMaxSourceMinusSinkWeight - myTAZCurrentParent->myMinSourceMinusSinkWeight) == 0) {
124 sourceMinusSinkColor = 0;
127 double percentage = (sourceMinusSinkWeight - myTAZCurrentParent->myMinSourceMinusSinkWeight) /
128 (myTAZCurrentParent->myMaxSourceMinusSinkWeight - myTAZCurrentParent->myMinSourceMinusSinkWeight);
130 if (percentage >= 1) {
131 sourceMinusSinkColor = 9;
132 }
else if (percentage < 0) {
133 sourceMinusSinkColor = 0;
135 sourceMinusSinkColor = (int)(percentage * 10);
160 myEditedTAZ = editedTAZ;
162 if (myEditedTAZ !=
nullptr) {
163 myTAZCurrentLabel->setText((
"Current TAZ: " + myEditedTAZ->getID()).c_str());
167 mySelectedEdges = myTAZFrameParent->myViewNet->getNet()->retrieveEdges(
true);
171 myTAZFrameParent->myTAZParameters->hideTAZParametersModul();
173 myTAZFrameParent->myNeteditAttributes->hideNeteditAttributesModul();
175 myTAZFrameParent->myDrawingShape->hideDrawingShape();
177 myTAZFrameParent->myTAZCommonStatistics->showTAZCommonStatisticsModul();
179 myTAZFrameParent->myTAZSaveChanges->showTAZSaveChangesModul();
181 myTAZFrameParent->myTAZChildDefaultParameters->showTAZChildDefaultParametersModul();
183 myTAZFrameParent->myTAZEdgesGraphic->showTAZEdgesGraphicModul();
186 myTAZFrameParent->myTAZParameters->showTAZParametersModul();
190 myTAZFrameParent->myDrawingShape->showDrawingShape();
192 myTAZFrameParent->myTAZCommonStatistics->hideTAZCommonStatisticsModul();
194 myTAZFrameParent->myTAZChildDefaultParameters->hideTAZChildDefaultParametersModul();
196 myTAZFrameParent->myTAZEdgesGraphic->hideTAZEdgesGraphicModul();
198 myTAZFrameParent->myTAZSaveChanges->hideTAZSaveChangesModul();
200 myTAZCurrentLabel->setText(
"No TAZ selected");
204 mySelectedEdges.clear();
206 myMaxSourcePlusSinkWeight = 0;
207 myMinSourcePlusSinkWeight = -1;
208 myMaxSourceMinusSinkWeight = 0;
209 myMinSourceMinusSinkWeight = -1;
223 for (
const auto& i : myTAZEdges) {
224 if (i.edge == edge) {
233 const std::vector<GNEEdge*>&
239 const std::vector<GNEEdge*>&
241 return mySelectedEdges;
245 const std::vector<GNETAZFrame::TAZCurrent::TAZEdge>&
256 myMaxSourcePlusSinkWeight = 0;
257 myMinSourcePlusSinkWeight = -1;
258 myMaxSourceMinusSinkWeight = 0;
259 myMinSourceMinusSinkWeight = -1;
263 for (
const auto& i : myEditedTAZ->getAdditionalChildren()) {
264 addTAZChild(dynamic_cast<GNETAZSourceSink*>(i));
267 for (
auto& i : myTAZEdges) {
271 myTAZFrameParent->myTAZEdgesGraphic->updateEdgeColors();
282 bool createTAZEdge =
true;
283 for (
auto& i : myTAZEdges) {
284 if (i.edge == edge) {
285 createTAZEdge =
false;
288 i.TAZSource = sourceSink;
290 i.TAZSink = sourceSink;
297 myTAZEdges.push_back(
TAZEdge(
this, edge, sourceSink,
nullptr));
299 myTAZEdges.push_back(
TAZEdge(
this, edge,
nullptr, sourceSink));
303 myMaxSourcePlusSinkWeight = 0;
304 myMinSourcePlusSinkWeight = -1;
305 myMaxSourceMinusSinkWeight = 0;
306 myMinSourceMinusSinkWeight = -1;
307 for (
const auto& i : myTAZEdges) {
309 if (i.TAZSource && i.TAZSink) {
311 double sourcePlusSink = i.TAZSource->
getDepartWeight() + i.TAZSink->getDepartWeight();
313 if (sourcePlusSink > myMaxSourcePlusSinkWeight) {
314 myMaxSourcePlusSinkWeight = sourcePlusSink;
317 if ((myMinSourcePlusSinkWeight == -1) || (sourcePlusSink < myMinSourcePlusSinkWeight)) {
318 myMinSourcePlusSinkWeight = sourcePlusSink;
321 double sourceMinusSink = i.TAZSource->getDepartWeight() - i.TAZSink->getDepartWeight();
323 if (sourceMinusSink < 0) {
324 sourceMinusSink *= -1;
327 if (sourceMinusSink > myMaxSourceMinusSinkWeight) {
328 myMaxSourceMinusSinkWeight = sourceMinusSink;
331 if ((myMinSourceMinusSinkWeight == -1) || (sourceMinusSink < myMinSourceMinusSinkWeight)) {
332 myMinSourceMinusSinkWeight = sourceMinusSink;
347 myTAZFrameParent(TAZFrameParent) {
372 if (myTAZFrameParent->myTAZCurrent->getTAZ()) {
374 std::ostringstream information;
376 <<
"- Number of Edges: " <<
toString(myTAZFrameParent->myTAZCurrent->getTAZ()->getAdditionalChildren().size() / 2) <<
"\n"
377 <<
"- Min source: " << myTAZFrameParent->myTAZCurrent->getTAZ()->getAttribute(
GNE_ATTR_MIN_SOURCE) <<
"\n"
378 <<
"- Max source: " << myTAZFrameParent->myTAZCurrent->getTAZ()->getAttribute(
GNE_ATTR_MAX_SOURCE) <<
"\n"
379 <<
"- Average source: " << myTAZFrameParent->myTAZCurrent->getTAZ()->getAttribute(
GNE_ATTR_AVERAGE_SOURCE) <<
"\n"
381 <<
"- Min sink: " << myTAZFrameParent->myTAZCurrent->getTAZ()->getAttribute(
GNE_ATTR_MIN_SINK) <<
"\n"
382 <<
"- Max sink: " << myTAZFrameParent->myTAZCurrent->getTAZ()->getAttribute(
GNE_ATTR_MAX_SINK) <<
"\n"
383 <<
"- Average sink: " << myTAZFrameParent->myTAZCurrent->getTAZ()->getAttribute(
GNE_ATTR_AVERAGE_SINK);
385 myStatisticsLabel->setText(information.str().c_str());
387 myStatisticsLabel->setText(
"No TAZ Selected");
397 myTAZFrameParent(TAZFrameParent) {
419 onCmdCancelChanges(0, 0, 0);
427 if (!mySaveChangesButton->isEnabled()) {
429 mySaveChangesButton->enable();
430 myCancelChangesButton->enable();
432 myTAZFrameParent->myViewNet->getUndoList()->p_begin(
"TAZ attributes");
440 return mySaveChangesButton->isEnabled();
447 if (mySaveChangesButton->isEnabled()) {
449 mySaveChangesButton->disable();
450 myCancelChangesButton->disable();
452 myTAZFrameParent->myViewNet->getUndoList()->p_end();
461 if (mySaveChangesButton->isEnabled()) {
463 mySaveChangesButton->disable();
464 myCancelChangesButton->disable();
466 myTAZFrameParent->myViewNet->getUndoList()->p_abort();
468 myTAZFrameParent->myTAZCurrent->refreshTAZEdges();
470 myTAZFrameParent->myTAZChildDefaultParameters->updateSelectEdgesButton();
481 myTAZFrameParent(TAZFrameParent),
482 myDefaultTAZSourceWeight(1),
483 myDefaultTAZSinkWeight(1) {
503 std::ostringstream information;
505 <<
"- Toogle Membership:\n"
506 <<
" Create new Sources/Sinks\n"
507 <<
" with given weights.";
518 if (myToggleMembership->getCheck() == FALSE) {
519 myTAZFrameParent->myTAZSelectionStatistics->showTAZSelectionStatisticsModul();
521 myTAZFrameParent->myTAZSelectionStatistics->hideTAZSelectionStatisticsModul();
524 updateSelectEdgesButton();
533 myTAZFrameParent->myTAZSelectionStatistics->hideTAZSelectionStatisticsModul();
541 if (myToggleMembership->getCheck() == TRUE) {
543 if (myTAZFrameParent->myTAZCurrent->getSelectedEdges().size() > 0) {
544 myUseSelectedEdges->setText(
"Use selected edges");
545 myUseSelectedEdges->enable();
546 }
else if (myTAZFrameParent->myTAZCurrent->getTAZEdges().size() > 0) {
547 myUseSelectedEdges->setText(
"Remove all edges");
548 myUseSelectedEdges->enable();
550 myUseSelectedEdges->setText(
"Use selected edges");
551 myUseSelectedEdges->disable();
553 }
else if (myTAZFrameParent->getTAZCurrentModul()->getTAZEdges().size() > 0) {
555 myUseSelectedEdges->enable();
557 if (myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected().size() == 0) {
559 bool allSelected =
true;
560 for (
const auto& i : myTAZFrameParent->getTAZCurrentModul()->getTAZEdges()) {
561 if (!i.edge->isAttributeCarrierSelected()) {
566 myUseSelectedEdges->setText(
"Remove all edges from selection");
568 myUseSelectedEdges->setText(
"Add all edges to selection");
570 }
else if (myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected().size() == 1) {
571 if (myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected().front().edge->isAttributeCarrierSelected()) {
572 myUseSelectedEdges->setText(
"Remove edge from selection");
574 myUseSelectedEdges->setText(
"Add edge to selection");
578 bool allSelected =
true;
579 for (
const auto& i : myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected()) {
580 if (!i.edge->isAttributeCarrierSelected()) {
585 myUseSelectedEdges->setText((
"Remove " +
toString(myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected().size()) +
" from to selection").c_str());
587 myUseSelectedEdges->setText((
"Add " +
toString(myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected().size()) +
" edges to selection").c_str());
592 myUseSelectedEdges->disable();
599 return myDefaultTAZSourceWeight;
605 return myDefaultTAZSinkWeight;
611 return (myToggleMembership->getCheck() == TRUE);
618 if (obj == myToggleMembership) {
620 myTAZFrameParent->myTAZSelectionStatistics->clearSelectedEdges();
622 if (myToggleMembership->getCheck() == TRUE) {
623 myToggleMembership->setText(
"toogle");
625 myDefaultTAZSourceFrame->show();
626 myDefaultTAZSinkFrame->show();
628 std::ostringstream information;
630 <<
"- Toogle Membership:\n"
631 <<
" Create new Sources/Sinks\n"
632 <<
" with given weights.";
633 myInformationLabel->setText(information.str().c_str());
635 myTAZFrameParent->myTAZSelectionStatistics->hideTAZSelectionStatisticsModul();
637 if (myTAZFrameParent->myTAZCurrent->getSelectedEdges().size() > 0) {
638 myUseSelectedEdges->setText(
"Use selected edges");
639 }
else if (myTAZFrameParent->myTAZCurrent->getTAZEdges().size() > 0) {
640 myUseSelectedEdges->setText(
"Remove all edges");
642 myUseSelectedEdges->setText(
"Use selected edges");
643 myUseSelectedEdges->disable();
646 myToggleMembership->setText(
"keep");
648 myDefaultTAZSourceFrame->hide();
649 myDefaultTAZSinkFrame->hide();
651 std::ostringstream information;
653 <<
"- Keep Membership:\n"
654 <<
" Select Sources/Sinks.\n"
655 <<
"- Press ESC to clear\n"
656 <<
" current selection.";
657 myInformationLabel->setText(information.str().c_str());
659 myTAZFrameParent->myTAZSelectionStatistics->showTAZSelectionStatisticsModul();
662 updateSelectEdgesButton();
663 }
else if (obj == myTextFieldDefaultValueTAZSources) {
665 if (GNEAttributeCarrier::canParse<double>(myTextFieldDefaultValueTAZSources->getText().text())) {
666 myDefaultTAZSourceWeight = GNEAttributeCarrier::parse<double>(myTextFieldDefaultValueTAZSources->getText().text());
668 if (myDefaultTAZSourceWeight >= 0) {
670 myTextFieldDefaultValueTAZSources->setTextColor(FXRGB(0, 0, 0));
673 myTextFieldDefaultValueTAZSources->setTextColor(FXRGB(255, 0, 0));
674 myDefaultTAZSourceWeight = 1;
678 myTextFieldDefaultValueTAZSources->setTextColor(FXRGB(255, 0, 0));
679 myDefaultTAZSourceWeight = 1;
681 }
else if (obj == myTextFieldDefaultValueTAZSinks) {
683 if (GNEAttributeCarrier::canParse<double>(myTextFieldDefaultValueTAZSinks->getText().text())) {
684 myDefaultTAZSinkWeight = GNEAttributeCarrier::parse<double>(myTextFieldDefaultValueTAZSinks->getText().text());
686 if (myDefaultTAZSinkWeight >= 0) {
688 myTextFieldDefaultValueTAZSinks->setTextColor(FXRGB(0, 0, 0));
691 myTextFieldDefaultValueTAZSinks->setTextColor(FXRGB(255, 0, 0));
692 myDefaultTAZSinkWeight = 1;
696 myTextFieldDefaultValueTAZSinks->setTextColor(FXRGB(255, 0, 0));
697 myDefaultTAZSinkWeight = 1;
707 if (myToggleMembership->getCheck() == TRUE) {
709 myTAZFrameParent->dropTAZMembers();
711 for (
const auto& i : myTAZFrameParent->myTAZCurrent->getSelectedEdges()) {
712 myTAZFrameParent->addOrRemoveTAZMember(i);
715 updateSelectEdgesButton();
717 if (myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected().size() == 0) {
719 bool allSelected =
true;
720 for (
const auto& i : myTAZFrameParent->getTAZCurrentModul()->getTAZEdges()) {
721 if (!i.edge->isAttributeCarrierSelected()) {
728 for (
const auto& i : myTAZFrameParent->getTAZCurrentModul()->getTAZEdges()) {
730 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
732 i.edge->setAttribute(
GNE_ATTR_SELECTED,
"false", myTAZFrameParent->myViewNet->getUndoList());
736 for (
const auto& i : myTAZFrameParent->getTAZCurrentModul()->getTAZEdges()) {
738 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
740 i.edge->setAttribute(
GNE_ATTR_SELECTED,
"true", myTAZFrameParent->myViewNet->getUndoList());
745 bool allSelected =
true;
746 for (
const auto& i : myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected()) {
747 if (!i.edge->isAttributeCarrierSelected()) {
754 for (
const auto& i : myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected()) {
755 if (i.edge->isAttributeCarrierSelected()) {
757 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
759 i.edge->setAttribute(
GNE_ATTR_SELECTED,
"false", myTAZFrameParent->myViewNet->getUndoList());
764 for (
const auto& i : myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected()) {
765 if (!i.edge->isAttributeCarrierSelected()) {
767 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
769 i.edge->setAttribute(
GNE_ATTR_SELECTED,
"true", myTAZFrameParent->myViewNet->getUndoList());
776 myTAZFrameParent->myTAZChildDefaultParameters->updateSelectEdgesButton();
778 myTAZFrameParent->myViewNet->update();
788 myTAZFrameParent(TAZFrameParent) {
818 clearSelectedEdges();
826 for (
const auto& i : myEdgeAndTAZChildrenSelected) {
827 if (i.edge == TAZEdge.
edge) {
832 myEdgeAndTAZChildrenSelected.push_back(TAZEdge);
836 myTAZFrameParent->myTAZEdgesGraphic->updateEdgeColors();
838 myTAZFrameParent->myTAZChildDefaultParameters->updateSelectEdgesButton();
847 for (
auto i = myEdgeAndTAZChildrenSelected.begin(); i != myEdgeAndTAZChildrenSelected.end(); i++) {
848 if (i->edge == edge) {
849 myEdgeAndTAZChildrenSelected.erase(i);
853 myTAZFrameParent->myTAZEdgesGraphic->updateEdgeColors();
855 myTAZFrameParent->myTAZChildDefaultParameters->updateSelectEdgesButton();
870 for (
const auto& i : myEdgeAndTAZChildrenSelected) {
871 if (i.edge == edge) {
883 myEdgeAndTAZChildrenSelected.clear();
887 myTAZFrameParent->myTAZEdgesGraphic->updateEdgeColors();
889 myTAZFrameParent->myTAZChildDefaultParameters->updateSelectEdgesButton();
893 const std::vector<GNETAZFrame::TAZCurrent::TAZEdge>&
895 return myEdgeAndTAZChildrenSelected;
901 if (obj == myTextFieldTAZSourceWeight) {
903 if (GNEAttributeCarrier::canParse<double>(myTextFieldTAZSourceWeight->getText().text())) {
904 double newTAZSourceWeight = GNEAttributeCarrier::parse<double>(myTextFieldTAZSourceWeight->getText().text());
906 if (newTAZSourceWeight >= 0) {
908 myTextFieldTAZSourceWeight->setTextColor(FXRGB(0, 0, 0));
910 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
912 for (
const auto& i : myEdgeAndTAZChildrenSelected) {
913 i.TAZSource->setAttribute(
SUMO_ATTR_WEIGHT, myTextFieldTAZSourceWeight->getText().text(), myTAZFrameParent->myViewNet->getUndoList());
916 myTAZFrameParent->getTAZCurrentModul()->refreshTAZEdges();
919 myTextFieldTAZSourceWeight->setTextColor(FXRGB(255, 0, 0));
923 myTextFieldTAZSourceWeight->setTextColor(FXRGB(255, 0, 0));
925 }
else if (obj == myTextFieldTAZSinkWeight) {
927 if (GNEAttributeCarrier::canParse<double>(myTextFieldTAZSinkWeight->getText().text())) {
928 double newTAZSinkWeight = GNEAttributeCarrier::parse<double>(myTextFieldTAZSinkWeight->getText().text());
930 if (newTAZSinkWeight >= 0) {
932 myTextFieldTAZSinkWeight->setTextColor(FXRGB(0, 0, 0));
934 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
936 for (
const auto& i : myEdgeAndTAZChildrenSelected) {
937 i.TAZSink->setAttribute(
SUMO_ATTR_WEIGHT, myTextFieldTAZSinkWeight->getText().text(), myTAZFrameParent->myViewNet->getUndoList());
940 myTAZFrameParent->getTAZCurrentModul()->refreshTAZEdges();
943 myTextFieldTAZSinkWeight->setTextColor(FXRGB(255, 0, 0));
947 myTextFieldTAZSinkWeight->setTextColor(FXRGB(255, 0, 0));
956 if (myEdgeAndTAZChildrenSelected.size() == 0) {
958 for (
const auto& i : myTAZFrameParent->getTAZCurrentModul()->getTAZEdges()) {
960 if (!i.edge->isAttributeCarrierSelected()) {
962 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
964 i.edge->setAttribute(
GNE_ATTR_SELECTED,
"true", myTAZFrameParent->myViewNet->getUndoList());
969 for (
const auto& i : myEdgeAndTAZChildrenSelected) {
971 if (!i.edge->isAttributeCarrierSelected()) {
973 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
975 i.edge->setAttribute(
GNE_ATTR_SELECTED,
"true", myTAZFrameParent->myViewNet->getUndoList());
980 myTAZFrameParent->myViewNet->update();
987 if (myEdgeAndTAZChildrenSelected.size() > 0) {
989 myTAZSourceFrame->show();
990 myTAZSinkFrame->show();
992 std::set<std::string> weightSourceSet;
993 std::set<std::string> weightSinkSet;
996 double maxWeightSource = 0;
997 double minWeightSource = -1;
998 double averageWeightSource = 0;
999 double maxWeightSink = 0;
1000 double minWeightSink = -1;
1001 double averageWeightSink = 0;
1003 for (
const auto& i : myEdgeAndTAZChildrenSelected) {
1005 weight = i.TAZSource->getDepartWeight();
1007 weightSourceSet.insert(
toString(weight));
1009 if (maxWeightSource < weight) {
1010 maxWeightSource = weight;
1013 if (minWeightSource == -1 || (maxWeightSource < weight)) {
1014 minWeightSource = weight;
1017 averageWeightSource += weight;
1019 weight = i.TAZSink->getDepartWeight();
1021 weightSinkSet.insert(
toString(weight));
1023 if (maxWeightSink < weight) {
1024 maxWeightSink = weight;
1027 if (minWeightSink == -1 || (maxWeightSink < weight)) {
1028 minWeightSink = weight;
1031 averageWeightSink += weight;
1034 averageWeightSource /= myEdgeAndTAZChildrenSelected.size();
1035 averageWeightSink /= myEdgeAndTAZChildrenSelected.size();
1037 std::ostringstream information;
1038 std::string edgeInformation;
1040 if (myEdgeAndTAZChildrenSelected.size() == 1) {
1041 edgeInformation =
"- Edge ID: " + myEdgeAndTAZChildrenSelected.begin()->edge->getID();
1043 edgeInformation =
"- Number of edges: " +
toString(myEdgeAndTAZChildrenSelected.size());
1047 << edgeInformation <<
"\n"
1048 <<
"- Min source: " <<
toString(minWeightSource) <<
"\n"
1049 <<
"- Max source: " <<
toString(maxWeightSource) <<
"\n"
1050 <<
"- Average source: " <<
toString(averageWeightSource) <<
"\n"
1052 <<
"- Min sink: " <<
toString(minWeightSink) <<
"\n"
1053 <<
"- Max sink: " <<
toString(maxWeightSink) <<
"\n"
1054 <<
"- Average sink: " <<
toString(averageWeightSink);
1056 myStatisticsLabel->setText(information.str().c_str());
1058 myTextFieldTAZSourceWeight->setText(
joinToString(weightSourceSet,
" ").c_str());
1059 myTextFieldTAZSourceWeight->setTextColor(FXRGB(0, 0, 0));
1060 myTextFieldTAZSinkWeight->setText(
joinToString(weightSinkSet,
" ").c_str());
1061 myTextFieldTAZSinkWeight->setTextColor(FXRGB(0, 0, 0));
1064 myTAZSourceFrame->hide();
1065 myTAZSinkFrame->hide();
1067 myStatisticsLabel->setText(
"No edges selected");
1077 myTAZFrameParent(TAZFrameParent) {
1110 return GNEAttributeCarrier::canParse<RGBColor>(myTextFieldColor->getText().text());
1116 return (myAddEdgesWithinCheckButton->getCheck() == TRUE);
1120 std::map<SumoXMLAttr, std::string>
1122 std::map<SumoXMLAttr, std::string> parametersAndValues;
1124 parametersAndValues[
SUMO_ATTR_COLOR] = myTextFieldColor->getText().text();
1125 return parametersAndValues;
1132 FXColorDialog colordialog(
this, tr(
"Color Dialog"));
1133 colordialog.setTarget(
this);
1135 if (GNEAttributeCarrier::canParse<RGBColor>(myTextFieldColor->getText().text())) {
1141 if (colordialog.execute()) {
1143 onCmdSetAttribute(0, 0, 0);
1152 bool currentParametersValid = GNEAttributeCarrier::canParse<RGBColor>(myTextFieldColor->getText().text());
1154 if (currentParametersValid) {
1155 myTextFieldColor->setTextColor(FXRGB(0, 0, 0));
1156 myTextFieldColor->killFocus();
1158 myTextFieldColor->setTextColor(FXRGB(255, 0, 0));
1159 currentParametersValid =
false;
1162 if (myAddEdgesWithinCheckButton->getCheck() == TRUE) {
1163 myAddEdgesWithinCheckButton->setText(
"use");
1165 myAddEdgesWithinCheckButton->setText(
"not use");
1183 myTAZFrameParent(TAZFrameParent),
1184 myEdgeDefaultColor(
RGBColor::GREY),
1185 myEdgeSelectedColor(
RGBColor::MAGENTA) {
1191 FXLabel* selectedTAZEdgeLabel =
new FXLabel(
this,
"Selected TAZ Edge",
nullptr,
GUIDesignLabelCenter);
1209 FXLabel* colorLabel =
new FXLabel(horizontalFrameColors,
"",
nullptr,
GUIDesignLabelLeft);
1239 for (
const auto& i : myTAZFrameParent->myTAZCurrent->getNetEdges()) {
1240 for (
const auto j : i->getLanes()) {
1241 j->setSpecialColor(
nullptr);
1251 for (
const auto& i : myTAZFrameParent->myTAZCurrent->getNetEdges()) {
1253 for (
const auto j : i->getLanes()) {
1254 j->setSpecialColor(&myEdgeDefaultColor);
1258 for (
const auto& i : myTAZFrameParent->myTAZCurrent->getTAZEdges()) {
1260 for (
const auto j : i.edge->getLanes()) {
1262 if (myColorBySourceWeight->getCheck() == TRUE) {
1263 j->setSpecialColor(&myScaleColors.at(i.sourceColor), i.TAZSource->getDepartWeight());
1264 }
else if (myColorBySinkWeight->getCheck() == TRUE) {
1265 j->setSpecialColor(&myScaleColors.at(i.sinkColor), i.TAZSink->getDepartWeight());
1266 }
else if (myColorBySourcePlusSinkWeight->getCheck() == TRUE) {
1267 j->setSpecialColor(&myScaleColors.at(i.sourcePlusSinkColor), i.TAZSource->getDepartWeight() + i.TAZSink->getDepartWeight());
1269 j->setSpecialColor(&myScaleColors.at(i.sourceMinusSinkColor), i.TAZSource->getDepartWeight() - i.TAZSink->getDepartWeight());
1274 for (
const auto& i : myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected()) {
1276 for (
const auto& j : i.edge->getLanes()) {
1277 j->setSpecialColor(&myEdgeSelectedColor);
1281 myTAZFrameParent->myViewNet->update();
1288 if (obj == myColorBySourceWeight) {
1289 myColorBySinkWeight->setCheck(FALSE);
1290 myColorBySourcePlusSinkWeight->setCheck(FALSE);
1291 myColorBySourceMinusSinkWeight->setCheck(FALSE);
1292 }
else if (obj == myColorBySinkWeight) {
1293 myColorBySourceWeight->setCheck(FALSE);
1294 myColorBySourcePlusSinkWeight->setCheck(FALSE);
1295 myColorBySourceMinusSinkWeight->setCheck(FALSE);
1296 }
else if (obj == myColorBySourcePlusSinkWeight) {
1297 myColorBySourceWeight->setCheck(FALSE);
1298 myColorBySinkWeight->setCheck(FALSE);
1299 myColorBySourceMinusSinkWeight->setCheck(FALSE);
1300 }
else if (obj == myColorBySourceMinusSinkWeight) {
1301 myColorBySourceWeight->setCheck(FALSE);
1302 myColorBySinkWeight->setCheck(FALSE);
1303 myColorBySourcePlusSinkWeight->setCheck(FALSE);
1315 GNEFrame(horizontalFrameParent, viewNet,
"TAZs") {
1363 std::map<SumoXMLAttr, std::string> valuesOfElement;
1421 for (
auto i : edges) {
1430 for (
auto i : edges) {
1495 std::vector<std::string> edgeIDs;
1497 for (
auto i : ACsInBoundary) {
1499 edgeIDs.push_back(i.first);
1521 if (i.edge == edge) {