84 TAZSource(_TAZSource),
88 sourcePlusSinkColor(0),
89 sourceMinusSinkColor(0),
90 myTAZCurrentParent(TAZCurrentParent)
99 sourceColor = GNEAttributeCarrier::parse<int>(TAZSource->getAttribute(
GNE_ATTR_TAZCOLOR));
100 sinkColor = GNEAttributeCarrier::parse<int>(TAZSink->getAttribute(
GNE_ATTR_TAZCOLOR));
102 double sourcePlusSinkWeight = TAZSource->getDepartWeight() + TAZSink->getDepartWeight();
104 if ((myTAZCurrentParent->myMaxSourcePlusSinkWeight - myTAZCurrentParent->myMinSourcePlusSinkWeight) == 0) {
105 sourcePlusSinkColor = 0;
108 double percentage = (sourcePlusSinkWeight - myTAZCurrentParent->myMinSourcePlusSinkWeight) /
109 (myTAZCurrentParent->myMaxSourcePlusSinkWeight - myTAZCurrentParent->myMinSourcePlusSinkWeight);
111 if (percentage >= 1) {
112 sourcePlusSinkColor = 9;
113 }
else if (percentage < 0) {
114 sourcePlusSinkColor = 0;
116 sourcePlusSinkColor = (int)(percentage * 10);
120 double sourceMinusSinkWeight = TAZSource->getDepartWeight() - TAZSink->getDepartWeight();
122 if ((myTAZCurrentParent->myMaxSourceMinusSinkWeight - myTAZCurrentParent->myMinSourceMinusSinkWeight) == 0) {
123 sourceMinusSinkColor = 0;
126 double percentage = (sourceMinusSinkWeight - myTAZCurrentParent->myMinSourceMinusSinkWeight) /
127 (myTAZCurrentParent->myMaxSourceMinusSinkWeight - myTAZCurrentParent->myMinSourceMinusSinkWeight);
129 if (percentage >= 1) {
130 sourceMinusSinkColor = 9;
131 }
else if (percentage < 0) {
132 sourceMinusSinkColor = 0;
134 sourceMinusSinkColor = (int)(percentage * 10);
159 myEditedTAZ = editedTAZ;
161 if (myEditedTAZ !=
nullptr) {
162 myTAZCurrentLabel->setText((
"Current TAZ: " + myEditedTAZ->getID()).c_str());
166 mySelectedEdges = myTAZFrameParent->myViewNet->getNet()->retrieveEdges(
true);
170 myTAZFrameParent->myTAZParameters->hideTAZParametersModul();
172 myTAZFrameParent->myNeteditAttributes->hideNeteditAttributesModul();
174 myTAZFrameParent->myDrawingShape->hideDrawingShape();
176 myTAZFrameParent->myTAZCommonStatistics->showTAZCommonStatisticsModul();
178 myTAZFrameParent->myTAZSaveChanges->showTAZSaveChangesModul();
180 myTAZFrameParent->myTAZChildDefaultParameters->showTAZChildDefaultParametersModul();
182 myTAZFrameParent->myTAZEdgesGraphic->showTAZEdgesGraphicModul();
185 myTAZFrameParent->myTAZParameters->showTAZParametersModul();
189 myTAZFrameParent->myDrawingShape->showDrawingShape();
191 myTAZFrameParent->myTAZCommonStatistics->hideTAZCommonStatisticsModul();
193 myTAZFrameParent->myTAZChildDefaultParameters->hideTAZChildDefaultParametersModul();
195 myTAZFrameParent->myTAZEdgesGraphic->hideTAZEdgesGraphicModul();
197 myTAZFrameParent->myTAZSaveChanges->hideTAZSaveChangesModul();
199 myTAZCurrentLabel->setText(
"No TAZ selected");
203 mySelectedEdges.clear();
205 myMaxSourcePlusSinkWeight = 0;
206 myMinSourcePlusSinkWeight = -1;
207 myMaxSourceMinusSinkWeight = 0;
208 myMinSourceMinusSinkWeight = -1;
222 for (
const auto& i : myTAZEdges) {
223 if (i.edge == edge) {
232 const std::vector<GNEEdge*>&
238 const std::vector<GNEEdge*>&
240 return mySelectedEdges;
244 const std::vector<GNETAZFrame::TAZCurrent::TAZEdge>&
255 myMaxSourcePlusSinkWeight = 0;
256 myMinSourcePlusSinkWeight = -1;
257 myMaxSourceMinusSinkWeight = 0;
258 myMinSourceMinusSinkWeight = -1;
262 for (
const auto& i : myEditedTAZ->getChildAdditionals()) {
266 for (
auto& i : myTAZEdges) {
270 myTAZFrameParent->myTAZEdgesGraphic->updateEdgeColors();
281 bool createTAZEdge =
true;
282 for (
auto& i : myTAZEdges) {
283 if (i.edge == edge) {
284 createTAZEdge =
false;
287 i.TAZSource = sourceSink;
289 i.TAZSink = sourceSink;
296 myTAZEdges.push_back(
TAZEdge(
this, edge, sourceSink,
nullptr));
298 myTAZEdges.push_back(
TAZEdge(
this, edge,
nullptr, sourceSink));
302 myMaxSourcePlusSinkWeight = 0;
303 myMinSourcePlusSinkWeight = -1;
304 myMaxSourceMinusSinkWeight = 0;
305 myMinSourceMinusSinkWeight = -1;
306 for (
const auto& i : myTAZEdges) {
308 if (i.TAZSource && i.TAZSink) {
310 double sourcePlusSink = i.TAZSource->
getDepartWeight() + i.TAZSink->getDepartWeight();
312 if (sourcePlusSink > myMaxSourcePlusSinkWeight) {
313 myMaxSourcePlusSinkWeight = sourcePlusSink;
316 if ((myMinSourcePlusSinkWeight == -1) || (sourcePlusSink < myMinSourcePlusSinkWeight)) {
317 myMinSourcePlusSinkWeight = sourcePlusSink;
320 double sourceMinusSink = i.TAZSource->getDepartWeight() - i.TAZSink->getDepartWeight();
322 if (sourceMinusSink < 0) {
323 sourceMinusSink *= -1;
326 if (sourceMinusSink > myMaxSourceMinusSinkWeight) {
327 myMaxSourceMinusSinkWeight = sourceMinusSink;
330 if ((myMinSourceMinusSinkWeight == -1) || (sourceMinusSink < myMinSourceMinusSinkWeight)) {
331 myMinSourceMinusSinkWeight = sourceMinusSink;
346 myTAZFrameParent(TAZFrameParent) {
371 if (myTAZFrameParent->myTAZCurrent->getTAZ()) {
373 std::ostringstream information;
375 <<
"- Number of Edges: " <<
toString(myTAZFrameParent->myTAZCurrent->getTAZ()->getChildAdditionals().size() / 2) <<
"\n"
376 <<
"- Min source: " << myTAZFrameParent->myTAZCurrent->getTAZ()->getAttribute(
GNE_ATTR_MIN_SOURCE) <<
"\n"
377 <<
"- Max source: " << myTAZFrameParent->myTAZCurrent->getTAZ()->getAttribute(
GNE_ATTR_MAX_SOURCE) <<
"\n"
378 <<
"- Average source: " << myTAZFrameParent->myTAZCurrent->getTAZ()->getAttribute(
GNE_ATTR_AVERAGE_SOURCE) <<
"\n"
380 <<
"- Min sink: " << myTAZFrameParent->myTAZCurrent->getTAZ()->getAttribute(
GNE_ATTR_MIN_SINK) <<
"\n"
381 <<
"- Max sink: " << myTAZFrameParent->myTAZCurrent->getTAZ()->getAttribute(
GNE_ATTR_MAX_SINK) <<
"\n"
382 <<
"- Average sink: " << myTAZFrameParent->myTAZCurrent->getTAZ()->getAttribute(
GNE_ATTR_AVERAGE_SINK);
384 myStatisticsLabel->setText(information.str().c_str());
386 myStatisticsLabel->setText(
"No TAZ Selected");
396 myTAZFrameParent(TAZFrameParent) {
418 onCmdCancelChanges(0, 0, 0);
426 if (!mySaveChangesButton->isEnabled()) {
428 mySaveChangesButton->enable();
429 myCancelChangesButton->enable();
431 myTAZFrameParent->myViewNet->getUndoList()->p_begin(
"TAZ attributes");
439 return mySaveChangesButton->isEnabled();
446 if (mySaveChangesButton->isEnabled()) {
448 mySaveChangesButton->disable();
449 myCancelChangesButton->disable();
451 myTAZFrameParent->myViewNet->getUndoList()->p_end();
460 if (mySaveChangesButton->isEnabled()) {
462 mySaveChangesButton->disable();
463 myCancelChangesButton->disable();
465 myTAZFrameParent->myViewNet->getUndoList()->p_abort();
467 myTAZFrameParent->myTAZCurrent->refreshTAZEdges();
469 myTAZFrameParent->myTAZChildDefaultParameters->updateSelectEdgesButton();
480 myTAZFrameParent(TAZFrameParent),
481 myDefaultTAZSourceWeight(1),
482 myDefaultTAZSinkWeight(1) {
502 std::ostringstream information;
504 <<
"- Toogle Membership:\n"
505 <<
" Create new Sources/Sinks\n"
506 <<
" with given weights.";
517 if (myToggleMembership->getCheck() == FALSE) {
518 myTAZFrameParent->myTAZSelectionStatistics->showTAZSelectionStatisticsModul();
520 myTAZFrameParent->myTAZSelectionStatistics->hideTAZSelectionStatisticsModul();
523 updateSelectEdgesButton();
532 myTAZFrameParent->myTAZSelectionStatistics->hideTAZSelectionStatisticsModul();
540 if (myToggleMembership->getCheck() == TRUE) {
542 if (myTAZFrameParent->myTAZCurrent->getSelectedEdges().size() > 0) {
543 myUseSelectedEdges->setText(
"Use selected edges");
544 myUseSelectedEdges->enable();
545 }
else if (myTAZFrameParent->myTAZCurrent->getTAZEdges().size() > 0) {
546 myUseSelectedEdges->setText(
"Remove all edges");
547 myUseSelectedEdges->enable();
549 myUseSelectedEdges->setText(
"Use selected edges");
550 myUseSelectedEdges->disable();
552 }
else if (myTAZFrameParent->getTAZCurrentModul()->getTAZEdges().size() > 0) {
554 myUseSelectedEdges->enable();
556 if (myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected().size() == 0) {
558 bool allSelected =
true;
559 for (
const auto& i : myTAZFrameParent->getTAZCurrentModul()->getTAZEdges()) {
560 if (!i.edge->isAttributeCarrierSelected()) {
565 myUseSelectedEdges->setText(
"Remove all edges from selection");
567 myUseSelectedEdges->setText(
"Add all edges to selection");
569 }
else if (myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected().size() == 1) {
570 if (myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected().front().edge->isAttributeCarrierSelected()) {
571 myUseSelectedEdges->setText(
"Remove edge from selection");
573 myUseSelectedEdges->setText(
"Add edge to selection");
577 bool allSelected =
true;
578 for (
const auto& i : myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected()) {
579 if (!i.edge->isAttributeCarrierSelected()) {
584 myUseSelectedEdges->setText((
"Remove " +
toString(myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected().size()) +
" from to selection").c_str());
586 myUseSelectedEdges->setText((
"Add " +
toString(myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected().size()) +
" edges to selection").c_str());
591 myUseSelectedEdges->disable();
598 return myDefaultTAZSourceWeight;
604 return myDefaultTAZSinkWeight;
610 return (myToggleMembership->getCheck() == TRUE);
617 if (obj == myToggleMembership) {
619 myTAZFrameParent->myTAZSelectionStatistics->clearSelectedEdges();
621 if (myToggleMembership->getCheck() == TRUE) {
622 myToggleMembership->setText(
"toogle");
624 myDefaultTAZSourceFrame->show();
625 myDefaultTAZSinkFrame->show();
627 std::ostringstream information;
629 <<
"- Toogle Membership:\n"
630 <<
" Create new Sources/Sinks\n"
631 <<
" with given weights.";
632 myInformationLabel->setText(information.str().c_str());
634 myTAZFrameParent->myTAZSelectionStatistics->hideTAZSelectionStatisticsModul();
636 if (myTAZFrameParent->myTAZCurrent->getSelectedEdges().size() > 0) {
637 myUseSelectedEdges->setText(
"Use selected edges");
638 }
else if (myTAZFrameParent->myTAZCurrent->getTAZEdges().size() > 0) {
639 myUseSelectedEdges->setText(
"Remove all edges");
641 myUseSelectedEdges->setText(
"Use selected edges");
642 myUseSelectedEdges->disable();
645 myToggleMembership->setText(
"keep");
647 myDefaultTAZSourceFrame->hide();
648 myDefaultTAZSinkFrame->hide();
650 std::ostringstream information;
652 <<
"- Keep Membership:\n"
653 <<
" Select Sources/Sinks.\n"
654 <<
"- Press ESC to clear\n"
655 <<
" current selection.";
656 myInformationLabel->setText(information.str().c_str());
658 myTAZFrameParent->myTAZSelectionStatistics->showTAZSelectionStatisticsModul();
661 updateSelectEdgesButton();
662 }
else if (obj == myTextFieldDefaultValueTAZSources) {
664 if (GNEAttributeCarrier::canParse<double>(myTextFieldDefaultValueTAZSources->getText().text())) {
665 myDefaultTAZSourceWeight = GNEAttributeCarrier::parse<double>(myTextFieldDefaultValueTAZSources->getText().text());
667 if (myDefaultTAZSourceWeight >= 0) {
669 myTextFieldDefaultValueTAZSources->setTextColor(FXRGB(0, 0, 0));
672 myTextFieldDefaultValueTAZSources->setTextColor(FXRGB(255, 0, 0));
673 myDefaultTAZSourceWeight = 1;
677 myTextFieldDefaultValueTAZSources->setTextColor(FXRGB(255, 0, 0));
678 myDefaultTAZSourceWeight = 1;
680 }
else if (obj == myTextFieldDefaultValueTAZSinks) {
682 if (GNEAttributeCarrier::canParse<double>(myTextFieldDefaultValueTAZSinks->getText().text())) {
683 myDefaultTAZSinkWeight = GNEAttributeCarrier::parse<double>(myTextFieldDefaultValueTAZSinks->getText().text());
685 if (myDefaultTAZSinkWeight >= 0) {
687 myTextFieldDefaultValueTAZSinks->setTextColor(FXRGB(0, 0, 0));
690 myTextFieldDefaultValueTAZSinks->setTextColor(FXRGB(255, 0, 0));
691 myDefaultTAZSinkWeight = 1;
695 myTextFieldDefaultValueTAZSinks->setTextColor(FXRGB(255, 0, 0));
696 myDefaultTAZSinkWeight = 1;
706 if (myToggleMembership->getCheck() == TRUE) {
708 myTAZFrameParent->dropTAZMembers();
710 for (
const auto& i : myTAZFrameParent->myTAZCurrent->getSelectedEdges()) {
711 myTAZFrameParent->addOrRemoveTAZMember(i);
714 updateSelectEdgesButton();
716 if (myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected().size() == 0) {
718 bool allSelected =
true;
719 for (
const auto& i : myTAZFrameParent->getTAZCurrentModul()->getTAZEdges()) {
720 if (!i.edge->isAttributeCarrierSelected()) {
727 for (
const auto& i : myTAZFrameParent->getTAZCurrentModul()->getTAZEdges()) {
729 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
731 i.edge->setAttribute(
GNE_ATTR_SELECTED,
"false", myTAZFrameParent->myViewNet->getUndoList());
735 for (
const auto& i : myTAZFrameParent->getTAZCurrentModul()->getTAZEdges()) {
737 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
739 i.edge->setAttribute(
GNE_ATTR_SELECTED,
"true", myTAZFrameParent->myViewNet->getUndoList());
744 bool allSelected =
true;
745 for (
const auto& i : myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected()) {
746 if (!i.edge->isAttributeCarrierSelected()) {
753 for (
const auto& i : myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected()) {
754 if (i.edge->isAttributeCarrierSelected()) {
756 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
758 i.edge->setAttribute(
GNE_ATTR_SELECTED,
"false", myTAZFrameParent->myViewNet->getUndoList());
763 for (
const auto& i : myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected()) {
764 if (!i.edge->isAttributeCarrierSelected()) {
766 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
768 i.edge->setAttribute(
GNE_ATTR_SELECTED,
"true", myTAZFrameParent->myViewNet->getUndoList());
775 myTAZFrameParent->myTAZChildDefaultParameters->updateSelectEdgesButton();
777 myTAZFrameParent->myViewNet->update();
787 myTAZFrameParent(TAZFrameParent) {
817 clearSelectedEdges();
825 for (
const auto& i : myEdgeAndTAZChildrenSelected) {
826 if (i.edge == TAZEdge.
edge) {
831 myEdgeAndTAZChildrenSelected.push_back(TAZEdge);
835 myTAZFrameParent->myTAZEdgesGraphic->updateEdgeColors();
837 myTAZFrameParent->myTAZChildDefaultParameters->updateSelectEdgesButton();
846 for (
auto i = myEdgeAndTAZChildrenSelected.begin(); i != myEdgeAndTAZChildrenSelected.end(); i++) {
847 if (i->edge == edge) {
848 myEdgeAndTAZChildrenSelected.erase(i);
852 myTAZFrameParent->myTAZEdgesGraphic->updateEdgeColors();
854 myTAZFrameParent->myTAZChildDefaultParameters->updateSelectEdgesButton();
869 for (
const auto& i : myEdgeAndTAZChildrenSelected) {
870 if (i.edge == edge) {
882 myEdgeAndTAZChildrenSelected.clear();
886 myTAZFrameParent->myTAZEdgesGraphic->updateEdgeColors();
888 myTAZFrameParent->myTAZChildDefaultParameters->updateSelectEdgesButton();
892 const std::vector<GNETAZFrame::TAZCurrent::TAZEdge>&
894 return myEdgeAndTAZChildrenSelected;
900 if (obj == myTextFieldTAZSourceWeight) {
902 if (GNEAttributeCarrier::canParse<double>(myTextFieldTAZSourceWeight->getText().text())) {
903 double newTAZSourceWeight = GNEAttributeCarrier::parse<double>(myTextFieldTAZSourceWeight->getText().text());
905 if (newTAZSourceWeight >= 0) {
907 myTextFieldTAZSourceWeight->setTextColor(FXRGB(0, 0, 0));
909 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
911 for (
const auto& i : myEdgeAndTAZChildrenSelected) {
912 i.TAZSource->setAttribute(
SUMO_ATTR_WEIGHT, myTextFieldTAZSourceWeight->getText().text(), myTAZFrameParent->myViewNet->getUndoList());
915 myTAZFrameParent->getTAZCurrentModul()->refreshTAZEdges();
918 myTextFieldTAZSourceWeight->setTextColor(FXRGB(255, 0, 0));
922 myTextFieldTAZSourceWeight->setTextColor(FXRGB(255, 0, 0));
924 }
else if (obj == myTextFieldTAZSinkWeight) {
926 if (GNEAttributeCarrier::canParse<double>(myTextFieldTAZSinkWeight->getText().text())) {
927 double newTAZSinkWeight = GNEAttributeCarrier::parse<double>(myTextFieldTAZSinkWeight->getText().text());
929 if (newTAZSinkWeight >= 0) {
931 myTextFieldTAZSinkWeight->setTextColor(FXRGB(0, 0, 0));
933 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
935 for (
const auto& i : myEdgeAndTAZChildrenSelected) {
936 i.TAZSink->setAttribute(
SUMO_ATTR_WEIGHT, myTextFieldTAZSinkWeight->getText().text(), myTAZFrameParent->myViewNet->getUndoList());
939 myTAZFrameParent->getTAZCurrentModul()->refreshTAZEdges();
942 myTextFieldTAZSinkWeight->setTextColor(FXRGB(255, 0, 0));
946 myTextFieldTAZSinkWeight->setTextColor(FXRGB(255, 0, 0));
955 if (myEdgeAndTAZChildrenSelected.size() == 0) {
957 for (
const auto& i : myTAZFrameParent->getTAZCurrentModul()->getTAZEdges()) {
959 if (!i.edge->isAttributeCarrierSelected()) {
961 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
963 i.edge->setAttribute(
GNE_ATTR_SELECTED,
"true", myTAZFrameParent->myViewNet->getUndoList());
968 for (
const auto& i : myEdgeAndTAZChildrenSelected) {
970 if (!i.edge->isAttributeCarrierSelected()) {
972 myTAZFrameParent->myTAZSaveChanges->enableButtonsAndBeginUndoList();
974 i.edge->setAttribute(
GNE_ATTR_SELECTED,
"true", myTAZFrameParent->myViewNet->getUndoList());
979 myTAZFrameParent->myViewNet->update();
986 if (myEdgeAndTAZChildrenSelected.size() > 0) {
988 myTAZSourceFrame->show();
989 myTAZSinkFrame->show();
991 std::set<std::string> weightSourceSet;
992 std::set<std::string> weightSinkSet;
995 double maxWeightSource = 0;
996 double minWeightSource = -1;
997 double averageWeightSource = 0;
998 double maxWeightSink = 0;
999 double minWeightSink = -1;
1000 double averageWeightSink = 0;
1002 for (
const auto& i : myEdgeAndTAZChildrenSelected) {
1004 weight = i.TAZSource->getDepartWeight();
1006 weightSourceSet.insert(
toString(weight));
1008 if (maxWeightSource < weight) {
1009 maxWeightSource = weight;
1012 if (minWeightSource == -1 || (maxWeightSource < weight)) {
1013 minWeightSource = weight;
1016 averageWeightSource += weight;
1018 weight = i.TAZSink->getDepartWeight();
1020 weightSinkSet.insert(
toString(weight));
1022 if (maxWeightSink < weight) {
1023 maxWeightSink = weight;
1026 if (minWeightSink == -1 || (maxWeightSink < weight)) {
1027 minWeightSink = weight;
1030 averageWeightSink += weight;
1033 averageWeightSource /= myEdgeAndTAZChildrenSelected.size();
1034 averageWeightSink /= myEdgeAndTAZChildrenSelected.size();
1036 std::ostringstream information;
1037 std::string edgeInformation;
1039 if (myEdgeAndTAZChildrenSelected.size() == 1) {
1040 edgeInformation =
"- Edge ID: " + myEdgeAndTAZChildrenSelected.begin()->edge->getID();
1042 edgeInformation =
"- Number of edges: " +
toString(myEdgeAndTAZChildrenSelected.size());
1046 << edgeInformation <<
"\n"
1047 <<
"- Min source: " <<
toString(minWeightSource) <<
"\n"
1048 <<
"- Max source: " <<
toString(maxWeightSource) <<
"\n"
1049 <<
"- Average source: " <<
toString(averageWeightSource) <<
"\n"
1051 <<
"- Min sink: " <<
toString(minWeightSink) <<
"\n"
1052 <<
"- Max sink: " <<
toString(maxWeightSink) <<
"\n"
1053 <<
"- Average sink: " <<
toString(averageWeightSink);
1055 myStatisticsLabel->setText(information.str().c_str());
1057 myTextFieldTAZSourceWeight->setText(
joinToString(weightSourceSet,
" ").c_str());
1058 myTextFieldTAZSourceWeight->setTextColor(FXRGB(0, 0, 0));
1059 myTextFieldTAZSinkWeight->setText(
joinToString(weightSinkSet,
" ").c_str());
1060 myTextFieldTAZSinkWeight->setTextColor(FXRGB(0, 0, 0));
1063 myTAZSourceFrame->hide();
1064 myTAZSinkFrame->hide();
1066 myStatisticsLabel->setText(
"No edges selected");
1076 myTAZFrameParent(TAZFrameParent) {
1109 return GNEAttributeCarrier::canParse<RGBColor>(myTextFieldColor->getText().text());
1115 return (myAddEdgesWithinCheckButton->getCheck() == TRUE);
1119 std::map<SumoXMLAttr, std::string>
1121 std::map<SumoXMLAttr, std::string> parametersAndValues;
1123 parametersAndValues[
SUMO_ATTR_COLOR] = myTextFieldColor->getText().text();
1124 return parametersAndValues;
1131 FXColorDialog colordialog(
this, tr(
"Color Dialog"));
1132 colordialog.setTarget(
this);
1134 if (GNEAttributeCarrier::canParse<RGBColor>(myTextFieldColor->getText().text())) {
1140 if (colordialog.execute()) {
1142 onCmdSetAttribute(0, 0, 0);
1151 bool currentParametersValid = GNEAttributeCarrier::canParse<RGBColor>(myTextFieldColor->getText().text());
1153 if (currentParametersValid) {
1154 myTextFieldColor->setTextColor(FXRGB(0, 0, 0));
1155 myTextFieldColor->killFocus();
1157 myTextFieldColor->setTextColor(FXRGB(255, 0, 0));
1158 currentParametersValid =
false;
1161 if (myAddEdgesWithinCheckButton->getCheck() == TRUE) {
1162 myAddEdgesWithinCheckButton->setText(
"use");
1164 myAddEdgesWithinCheckButton->setText(
"not use");
1182 myTAZFrameParent(TAZFrameParent),
1183 myEdgeDefaultColor(
RGBColor::GREY),
1184 myEdgeSelectedColor(
RGBColor::MAGENTA) {
1190 FXLabel* selectedTAZEdgeLabel =
new FXLabel(
this,
"Selected TAZ Edge",
nullptr,
GUIDesignLabelCenter);
1208 FXLabel* colorLabel =
new FXLabel(horizontalFrameColors,
"",
nullptr,
GUIDesignLabelLeft);
1238 for (
const auto& i : myTAZFrameParent->myTAZCurrent->getNetEdges()) {
1239 for (
const auto j : i->getLanes()) {
1240 j->setSpecialColor(
nullptr);
1250 for (
const auto& i : myTAZFrameParent->myTAZCurrent->getNetEdges()) {
1252 for (
const auto j : i->getLanes()) {
1253 j->setSpecialColor(&myEdgeDefaultColor);
1257 for (
const auto& i : myTAZFrameParent->myTAZCurrent->getTAZEdges()) {
1259 for (
const auto j : i.edge->getLanes()) {
1261 if (myColorBySourceWeight->getCheck() == TRUE) {
1262 j->setSpecialColor(&myScaleColors.at(i.sourceColor), i.TAZSource->getDepartWeight());
1263 }
else if (myColorBySinkWeight->getCheck() == TRUE) {
1264 j->setSpecialColor(&myScaleColors.at(i.sinkColor), i.TAZSink->getDepartWeight());
1265 }
else if (myColorBySourcePlusSinkWeight->getCheck() == TRUE) {
1266 j->setSpecialColor(&myScaleColors.at(i.sourcePlusSinkColor), i.TAZSource->getDepartWeight() + i.TAZSink->getDepartWeight());
1268 j->setSpecialColor(&myScaleColors.at(i.sourceMinusSinkColor), i.TAZSource->getDepartWeight() - i.TAZSink->getDepartWeight());
1273 for (
const auto& i : myTAZFrameParent->myTAZSelectionStatistics->getEdgeAndTAZChildrenSelected()) {
1275 for (
const auto& j : i.edge->getLanes()) {
1276 j->setSpecialColor(&myEdgeSelectedColor);
1280 myTAZFrameParent->myViewNet->update();
1287 if (obj == myColorBySourceWeight) {
1288 myColorBySinkWeight->setCheck(FALSE);
1289 myColorBySourcePlusSinkWeight->setCheck(FALSE);
1290 myColorBySourceMinusSinkWeight->setCheck(FALSE);
1291 }
else if (obj == myColorBySinkWeight) {
1292 myColorBySourceWeight->setCheck(FALSE);
1293 myColorBySourcePlusSinkWeight->setCheck(FALSE);
1294 myColorBySourceMinusSinkWeight->setCheck(FALSE);
1295 }
else if (obj == myColorBySourcePlusSinkWeight) {
1296 myColorBySourceWeight->setCheck(FALSE);
1297 myColorBySinkWeight->setCheck(FALSE);
1298 myColorBySourceMinusSinkWeight->setCheck(FALSE);
1299 }
else if (obj == myColorBySourceMinusSinkWeight) {
1300 myColorBySourceWeight->setCheck(FALSE);
1301 myColorBySinkWeight->setCheck(FALSE);
1302 myColorBySourcePlusSinkWeight->setCheck(FALSE);
1314 GNEFrame(horizontalFrameParent, viewNet,
"TAZs") {
1362 std::map<SumoXMLAttr, std::string> valuesOfElement;
1420 for (
auto i : edges) {
1429 for (
auto i : edges) {
1494 std::vector<std::string> edgeIDs;
1496 for (
auto i : ACsInBoundary) {
1498 edgeIDs.push_back(i.first);
1520 if (i.edge == edge) {