102 if (selected && (myViewNet->getViewParent()->getGNEAppWindows()->getLockMenuCommands().menuCheckLockSelectedElements->getCheck() == TRUE)) {
109 return myLockedElements.at(
GLO_WIRE).lock;
112 return myLockedElements.at(
GLO_ROUTE).lock;
124 return myLockedElements.at(
GLO_STOP).lock;
126 return myLockedElements.at(objectType).lock;
209 mySupermode(supermode) {
230 myInspectedACs.clear();
232 myFirstInspectedAC = AC;
233 myInspectedACs.insert(AC);
235 myFirstInspectedAC =
nullptr;
242 myInspectedACs.clear();
243 if (ACs.size() > 0) {
244 myFirstInspectedAC = ACs.front();
245 for (
const auto& AC : ACs) {
246 myInspectedACs.insert(AC);
249 myFirstInspectedAC =
nullptr;
256 auto it = myInspectedACs.find(AC);
257 if (it != myInspectedACs.end()) {
258 myInspectedACs.erase(it);
259 if (myInspectedACs.size() == 0) {
260 myInspectedACs.clear();
261 myFirstInspectedAC =
nullptr;
262 }
else if (myFirstInspectedAC == AC) {
263 myFirstInspectedAC = (*myInspectedACs.begin());
271 myFirstInspectedAC =
nullptr;
272 myInspectedACs.clear();
278 return myFirstInspectedAC;
282const std::unordered_set<GNEAttributeCarrier*>&
284 return myInspectedACs;
290 if (myInspectedACs.empty()) {
292 }
else if (myFirstInspectedAC == AC) {
295 return myInspectedACs.find(AC) != myInspectedACs.end();
302 if (myInspectedACs.empty()) {
304 }
else if (myFirstInspectedAC == AC) {
315 return myInspectedACs.size() > 0;
321 return myInspectedACs.size() == 1;
327 return myInspectedACs.size() > 1;
337const std::unordered_set<GNEAttributeCarrier*>&
346 const auto copy = myMarkedACs;
347 for (
auto& AC : copy) {
355 myMarkedACs.insert(AC);
361 if (myMarkedACs.size() > 0) {
362 auto it = myMarkedACs.find(AC);
363 if (it != myMarkedACs.end()) {
364 myMarkedACs.erase(it);
381 myViewObjects.clearElements();
396 if (myViewObjects.junctions.size() > 0) {
399 if (myViewObjects.edges.size() > 0) {
402 if (myViewObjects.lanes.size() > 0) {
405 if (myViewObjects.crossings.size() > 0) {
408 if (myViewObjects.connections.size() > 0) {
411 if (myViewObjects.walkingAreas.size() > 0) {
414 if (myViewObjects.lanes.size() > 0) {
417 if (myViewObjects.additionals.size() > 0) {
418 baseObjet->
addParentID(myViewObjects.additionals.front()->getTagProperty()->getTag(), myViewObjects.additionals.front()->getID());
420 if (myViewObjects.demandElements.size() > 0) {
421 baseObjet->
addParentID(myViewObjects.demandElements.front()->getTagProperty()->getTag(), myViewObjects.demandElements.front()->getID());
423 if (myViewObjects.genericDatas.size() > 0) {
424 baseObjet->
addParentID(myViewObjects.genericDatas.front()->getTagProperty()->getTag(), myViewObjects.genericDatas.front()->getID());
432 std::vector<const GUIGlObject*> glElements;
433 for (
const auto& glElement : myViewObjects.GUIGlObjects) {
434 if (glElement->getType() != exception) {
435 glElements.push_back(glElement);
438 myViewObjects.filterElements(glElements);
444 if (myViewNet->getEditModes().isCurrentSupermodeNetwork()) {
445 filterDemandElements(
true);
446 filterDataElements();
447 }
else if (myViewNet->getEditModes().isCurrentSupermodeDemand()) {
448 filterNetworkElements();
449 filterAdditionals(
true,
true);
450 filterDataElements();
451 }
else if (myViewNet->getEditModes().isCurrentSupermodeData()) {
452 filterNetworkElements();
453 filterDemandElements(
true);
461 std::vector<const GUIGlObject*> junctions;
462 for (
const auto& junction : myViewObjects.junctions) {
463 junctions.push_back(junction);
465 myViewObjects.filterElements(junctions);
472 std::vector<const GUIGlObject*> edges;
473 for (
const auto& edge : myViewObjects.edges) {
474 edges.push_back(edge);
476 myViewObjects.filterElements(edges);
483 std::vector<const GUIGlObject*> lanes;
484 for (
const auto& lane : myViewObjects.lanes) {
485 lanes.push_back(lane);
487 myViewObjects.filterElements(lanes);
494 std::vector<const GUIGlObject*> connections;
495 for (
const auto& connection : myViewObjects.connections) {
496 connections.push_back(connection);
498 myViewObjects.filterElements(connections);
505 std::vector<const GUIGlObject*> crossings;
506 for (
const auto& crossing : myViewObjects.crossings) {
507 crossings.push_back(crossing);
509 myViewObjects.filterElements(crossings);
516 std::vector<const GUIGlObject*> walkingAreas;
517 for (
const auto& walkingArea : myViewObjects.walkingAreas) {
518 walkingAreas.push_back(walkingArea);
520 myViewObjects.filterElements(walkingAreas);
527 std::vector<const GUIGlObject*> shapes;
528 for (
const auto& poly : myViewObjects.polys) {
529 shapes.push_back(poly);
531 for (
const auto&
POI : myViewObjects.POIs) {
532 shapes.push_back(
POI);
534 myViewObjects.filterElements(shapes);
541 std::vector<const GUIGlObject*> additionals;
542 for (
const auto& additional : myViewObjects.additionals) {
545 }
else if (!includeTAZs && (additional->getType() ==
GLO_TAZ)) {
548 additionals.push_back(additional);
551 myViewObjects.filterElements(additionals);
558 std::vector<const GUIGlObject*> networkElements;
559 for (
const auto& networkElement : myViewObjects.networkElements) {
560 networkElements.push_back(networkElement);
562 myViewObjects.filterElements(networkElements);
569 std::vector<const GUIGlObject*> demandElements;
570 for (
const auto& demandElement : myViewObjects.demandElements) {
571 if (!includeRoutes && (demandElement->getType() ==
GLO_ROUTE)) {
574 demandElements.push_back(demandElement);
577 myViewObjects.filterElements(demandElements);
584 std::vector<const GUIGlObject*> datadElements;
585 for (
const auto& datadElement : myViewObjects.edgeDatas) {
586 datadElements.push_back(datadElement);
588 for (
const auto& datadElement : myViewObjects.edgeRelDatas) {
589 datadElements.push_back(datadElement);
591 for (
const auto& datadElement : myViewObjects.TAZRelDatas) {
592 datadElements.push_back(datadElement);
594 myViewObjects.filterElements(datadElements);
601 std::vector<const GUIGlObject*> GUIGlObjects;
603 for (
const auto&
GUIGlObject : myViewObjects.GUIGlObjects) {
609 for (
const auto& ignoredType : ignoreFilter) {
610 auto it = GUIGlObjects.begin();
611 while (it != GUIGlObjects.end()) {
612 if ((*it)->getType() == ignoredType) {
613 it = GUIGlObjects.erase(it);
620 myViewObjects.filterElements(GUIGlObjects);
626 if (myViewObjects.GUIGlObjects.size() > 0) {
627 return myViewObjects.GUIGlObjects.front();
636 if (myViewObjects.attributeCarriers.size() > 0) {
637 return myViewObjects.attributeCarriers.front();
646 if (myViewObjects.networkElements.size() > 0) {
647 return myViewObjects.networkElements.front();
656 if (myViewObjects.additionals.size() > 0) {
657 return myViewObjects.additionals.front();
666 if (myViewObjects.demandElements.size() > 0) {
667 return myViewObjects.demandElements.front();
676 if (myViewObjects.genericDatas.size() > 0) {
677 return myViewObjects.genericDatas.front();
686 if (myViewObjects.junctions.size() > 0) {
687 return myViewObjects.junctions.front();
696 if (myViewObjects.edges.size() > 0) {
697 return myViewObjects.edges.front();
706 if (myViewObjects.lanes.size() > 0) {
707 return myViewObjects.lanes.front();
716 if (myViewObjects.lanes.size() > 0) {
717 for (
auto& lane : myViewObjects.lanes) {
718 if (!(lane->isAttributeCarrierSelected() || lane->getParentEdge()->isAttributeCarrierSelected()) ||
719 !myViewNet->getViewParent()->getGNEAppWindows()->getLockMenuCommands().menuCheckLockSelectedElements->getCheck()) {
731const std::vector<GNELane*>&
733 return myViewObjects.lanes;
739 if (myViewObjects.crossings.size() > 0) {
740 return myViewObjects.crossings.front();
749 if (myViewObjects.walkingAreas.size() > 0) {
750 return myViewObjects.walkingAreas.front();
759 if (myViewObjects.connections.size() > 0) {
760 return myViewObjects.connections.front();
769 if (myViewObjects.internalLanes.size() > 0) {
770 return myViewObjects.internalLanes.front();
779 if (myViewObjects.POIs.size() > 0) {
780 return myViewObjects.POIs.front();
789 if (myViewObjects.polys.size() > 0) {
790 return myViewObjects.polys.front();
799 if (myViewObjects.TAZs.size() > 0) {
800 return myViewObjects.TAZs.front();
809 if (myViewObjects.edgeDatas.size() > 0) {
810 return myViewObjects.edgeDatas.front();
819 if (myViewObjects.edgeRelDatas.size() > 0) {
820 return myViewObjects.edgeRelDatas.front();
829 if (myViewObjects.TAZRelDatas.size() > 0) {
830 return myViewObjects.TAZRelDatas.front();
837const std::vector<GUIGlObject*>&
839 return myViewObjects.GUIGlObjects;
843const std::vector<GNEAttributeCarrier*>&
845 return myViewObjects.attributeCarriers;
849const std::vector<GNEJunction*>&
851 return myViewObjects.junctions;
855const std::vector<GNEEdge*>&
857 return myViewObjects.edges;
861const std::vector<GNETAZ*>&
863 return myViewObjects.TAZs;
867const std::vector<GNEAdditional*>&
869 return myViewObjects.additionals;
873const std::vector<GNEDemandElement*>&
875 return myViewObjects.demandElements;
879const std::vector<const GNEJunction*>&
881 return myMergingJunctions;
890 GUIGlObjects.clear();
891 attributeCarriers.clear();
892 networkElements.clear();
894 demandElements.clear();
899 walkingAreas.clear();
901 internalLanes.clear();
905 genericDatas.clear();
907 edgeRelDatas.clear();
914 GUIGlObjects.reserve(size);
915 attributeCarriers.reserve(size);
916 networkElements.reserve(size);
917 additionals.reserve(size);
918 demandElements.reserve(size);
919 junctions.reserve(size);
922 crossings.reserve(size);
923 walkingAreas.reserve(size);
924 connections.reserve(size);
925 internalLanes.reserve(size);
929 genericDatas.reserve(size);
930 edgeDatas.reserve(size);
931 edgeRelDatas.reserve(size);
932 TAZRelDatas.reserve(size);
938 for (
const auto&
object : objects) {
940 auto itGlObjects = GUIGlObjects.begin();
941 while (itGlObjects != GUIGlObjects.end()) {
942 if (*itGlObjects ==
object) {
943 itGlObjects = GUIGlObjects.erase(itGlObjects);
949 auto itACs = attributeCarriers.begin();
950 while (itACs != attributeCarriers.end()) {
951 if ((*itACs)->getGUIGlObject() == object) {
952 itACs = attributeCarriers.erase(itACs);
958 auto itNetworkElements = networkElements.begin();
959 while (itNetworkElements != networkElements.end()) {
960 if ((*itNetworkElements)->getGUIGlObject() == object) {
961 itNetworkElements = networkElements.erase(itNetworkElements);
967 auto itAdditionals = additionals.begin();
968 while (itAdditionals != additionals.end()) {
969 if ((*itAdditionals)->getGUIGlObject() == object) {
970 itAdditionals = additionals.erase(itAdditionals);
976 auto itDemandElements = demandElements.begin();
977 while (itDemandElements != demandElements.end()) {
978 if ((*itDemandElements)->getGUIGlObject() == object) {
979 itDemandElements = demandElements.erase(itDemandElements);
985 auto itGenericDatas = genericDatas.begin();
986 while (itGenericDatas != genericDatas.end()) {
987 if ((*itGenericDatas)->getGUIGlObject() == object) {
988 itGenericDatas = genericDatas.erase(itGenericDatas);
994 auto itJunctions = junctions.begin();
995 while (itJunctions != junctions.end()) {
996 if ((*itJunctions)->getGUIGlObject() == object) {
997 itJunctions = junctions.erase(itJunctions);
1003 auto itEdges = edges.begin();
1004 while (itEdges != edges.end()) {
1005 if ((*itEdges)->getGUIGlObject() == object) {
1006 itEdges = edges.erase(itEdges);
1012 auto itLanes = lanes.begin();
1013 while (itLanes != lanes.end()) {
1014 if ((*itLanes)->getGUIGlObject() == object) {
1015 itLanes = lanes.erase(itLanes);
1021 auto itCrossings = crossings.begin();
1022 while (itCrossings != crossings.end()) {
1023 if ((*itCrossings)->getGUIGlObject() == object) {
1024 itCrossings = crossings.erase(itCrossings);
1030 auto itWalkingAreas = walkingAreas.begin();
1031 while (itWalkingAreas != walkingAreas.end()) {
1032 if ((*itWalkingAreas)->getGUIGlObject() == object) {
1033 itWalkingAreas = walkingAreas.erase(itWalkingAreas);
1039 auto itConnections = connections.begin();
1040 while (itConnections != connections.end()) {
1041 if ((*itConnections)->getGUIGlObject() == object) {
1042 itConnections = connections.erase(itConnections);
1048 auto itInternalLanes = internalLanes.begin();
1049 while (itInternalLanes != internalLanes.end()) {
1050 if ((*itInternalLanes)->getGUIGlObject() == object) {
1051 itInternalLanes = internalLanes.erase(itInternalLanes);
1057 auto itTAZs = TAZs.begin();
1058 while (itTAZs != TAZs.end()) {
1059 if ((*itTAZs)->getGUIGlObject() == object) {
1060 itTAZs = TAZs.erase(itTAZs);
1066 auto itPOIs = POIs.begin();
1067 while (itPOIs != POIs.end()) {
1068 if ((*itPOIs)->getGUIGlObject() == object) {
1069 itPOIs = POIs.erase(itPOIs);
1075 auto itPolys = polys.begin();
1076 while (itPolys != polys.end()) {
1077 if ((*itPolys)->getGUIGlObject() == object) {
1078 itPolys = polys.erase(itPolys);
1084 auto itEdgeDatas = edgeDatas.begin();
1085 while (itEdgeDatas != edgeDatas.end()) {
1086 if ((*itEdgeDatas)->getGUIGlObject() == object) {
1087 itEdgeDatas = edgeDatas.erase(itEdgeDatas);
1093 auto itEdgeRelDatas = edgeRelDatas.begin();
1094 while (itEdgeRelDatas != edgeRelDatas.end()) {
1095 if ((*itEdgeRelDatas)->getGUIGlObject() == object) {
1096 itEdgeRelDatas = edgeRelDatas.erase(itEdgeRelDatas);
1102 auto itTAZRelDatas = TAZRelDatas.begin();
1103 while (itTAZRelDatas != TAZRelDatas.end()) {
1104 if ((*itTAZRelDatas)->getGUIGlObject() == object) {
1105 itTAZRelDatas = TAZRelDatas.erase(itTAZRelDatas);
1117 switch (glObject->
getType()) {
1122 if (junction->isMarkedForDrawingFront()) {
1130 container.
junctions.push_back(junction);
1139 auto edge = myViewNet->getNet()->getAttributeCarriers()->retrieveEdge(glObject->
getMicrosimID());
1141 if (edge->isMarkedForDrawingFront()) {
1143 container.
edges.insert(container.
edges.begin(), edge);
1149 container.
edges.push_back(edge);
1158 auto lane = myViewNet->getNet()->getAttributeCarriers()->retrieveLane(glObject);
1160 if (lane->isMarkedForDrawingFront()) {
1162 container.
lanes.insert(container.
lanes.begin(), lane);
1168 container.
lanes.push_back(lane);
1177 auto crossing = myViewNet->getNet()->getAttributeCarriers()->retrieveCrossing(glObject);
1179 if (crossing->isMarkedForDrawingFront()) {
1187 container.
crossings.push_back(crossing);
1196 auto walkingArea = myViewNet->getNet()->getAttributeCarriers()->retrieveWalkingArea(glObject);
1198 if (walkingArea->isMarkedForDrawingFront()) {
1215 auto connection = myViewNet->getNet()->getAttributeCarriers()->retrieveConnection(glObject);
1217 if (connection->isMarkedForDrawingFront()) {
1234 auto internalLane = myViewNet->getNet()->getAttributeCarriers()->retrieveInternalLane(glObject);
1236 if (internalLane->isMarkedForDrawingFront()) {
1258 auto additionalElement = myViewNet->getNet()->getAttributeCarriers()->retrieveAdditional(glObject,
false);
1259 if (additionalElement) {
1261 if (additionalElement->isMarkedForDrawingFront()) {
1268 container.
additionals.push_back(additionalElement);
1281 auto POI =
dynamic_cast<GNEPOI*
>(myViewNet->getNet()->getAttributeCarriers()->retrieveAdditional(glObject));
1283 if (
POI->isMarkedForDrawingFront()) {
1285 container.
POIs.insert(container.
POIs.begin(),
POI);
1288 container.
POIs.push_back(
POI);
1292 auto poly =
dynamic_cast<GNEPoly*
>(myViewNet->getNet()->getAttributeCarriers()->retrieveAdditional(glObject));
1294 if (poly->isMarkedForDrawingFront()) {
1296 container.
polys.insert(container.
polys.begin(), poly);
1299 container.
polys.push_back(poly);
1310 auto TAZ =
dynamic_cast<GNETAZ*
>(myViewNet->getNet()->getAttributeCarriers()->retrieveAdditional(glObject));
1312 if (
TAZ->isMarkedForDrawingFront()) {
1314 container.
TAZs.insert(container.
TAZs.begin(),
TAZ);
1317 container.
TAZs.push_back(
TAZ);
1327 if (demandElement) {
1347 switch (glObject->
getType()) {
1350 auto edgeData =
dynamic_cast<GNEEdgeData*
>(myViewNet->getNet()->getAttributeCarriers()->retrieveGenericData(glObject));
1352 if (edgeData->isMarkedForDrawingFront()) {
1360 container.
edgeDatas.push_back(edgeData);
1369 auto edgeRelData =
dynamic_cast<GNEEdgeRelData*
>(myViewNet->getNet()->getAttributeCarriers()->retrieveGenericData(glObject));
1371 if (edgeRelData->isMarkedForDrawingFront()) {
1388 auto TAZRelData =
dynamic_cast<GNETAZRelData*
>(myViewNet->getNet()->getAttributeCarriers()->retrieveGenericData(glObject));
1390 if (TAZRelData->isMarkedForDrawingFront()) {
1414 for (
const auto& glObjectLayer : objectsContainer) {
1415 for (
const auto& glObject : glObjectLayer.second) {
1417 updateNetworkElements(myViewObjects, glObject.object);
1418 updateAdditionalElements(myViewObjects, glObject.object);
1419 updateShapeElements(myViewObjects, glObject.object);
1420 updateTAZElements(myViewObjects, glObject.object);
1421 updateDemandElements(myViewObjects, glObject.object);
1422 updateGenericDataElements(myViewObjects, glObject.object);
1429 myViewNet(nullptr) {
1437 myEventInfo(nullptr) {
1443 myEventInfo = (FXEvent*) eventData;
1450 return (myEventInfo->state & SHIFTMASK) != 0;
1460 return (myEventInfo->state & CONTROLMASK) != 0;
1470 return (myEventInfo->state & ALTMASK) != 0;
1480 return (myEventInfo->state & LEFTBUTTONMASK) != 0;
1490 return (myEventInfo->state & RIGHTBUTTONMASK) != 0;
1501 myViewNet(viewNet) {
1508 myRelativeClickedPosition = myViewNet->getPositionInformation();
1510 const GNENetworkElement* editedElement = myViewNet->myEditNetworkElementShapes.getEditedNetworkElement();
1512 if (myViewNet->myViewObjectsSelector.getJunctionFront() && (myViewNet->myViewObjectsSelector.getJunctionFront() == editedElement)) {
1514 GNEMoveOperation* moveOperation = myViewNet->myViewObjectsSelector.getJunctionFront()->getMoveElement()->getMoveOperation();
1516 if (moveOperation) {
1517 myMoveOperation = moveOperation;
1522 }
else if (myViewNet->myViewObjectsSelector.getLaneFront() && (myViewNet->myViewObjectsSelector.getLaneFront() == editedElement)) {
1524 GNEMoveOperation* moveOperation = myViewNet->myViewObjectsSelector.getLaneFront()->getMoveElement()->getMoveOperation();
1526 if (moveOperation) {
1527 myMoveOperation = moveOperation;
1532 }
else if (myViewNet->myViewObjectsSelector.getCrossingFront() && (myViewNet->myViewObjectsSelector.getCrossingFront() == editedElement)) {
1534 GNEMoveOperation* moveOperation = myViewNet->myViewObjectsSelector.getCrossingFront()->getMoveElement()->getMoveOperation();
1536 if (moveOperation) {
1537 myMoveOperation = moveOperation;
1542 }
else if (myViewNet->myViewObjectsSelector.getConnectionFront() && (myViewNet->myViewObjectsSelector.getConnectionFront() == editedElement)) {
1544 GNEMoveOperation* moveOperation = myViewNet->myViewObjectsSelector.getConnectionFront()->getMoveElement()->getMoveOperation();
1546 if (moveOperation) {
1547 myMoveOperation = moveOperation;
1552 }
else if (myViewNet->myViewObjectsSelector.getWalkingAreaFront() && (myViewNet->myViewObjectsSelector.getWalkingAreaFront() == editedElement)) {
1565 myRelativeClickedPosition = myViewNet->getPositionInformation();
1567 const GNEAttributeCarrier* markAC = myViewNet->myViewObjectsSelector.getAttributeCarrierFront();
1569 if (myViewNet->myViewObjectsSelector.getPolyFront() && (markAC == myViewNet->myViewObjectsSelector.getPolyFront())) {
1571 GNEMoveOperation* moveOperation = myViewNet->myViewObjectsSelector.getPolyFront()->getMoveElement()->getMoveOperation();
1573 if (moveOperation) {
1574 myMoveOperation = moveOperation;
1579 }
else if (myViewNet->myViewObjectsSelector.getPOIFront() && (markAC == myViewNet->myViewObjectsSelector.getPOIFront())) {
1581 GNEMoveOperation* moveOperation = myViewNet->myViewObjectsSelector.getPOIFront()->getMoveElement()->getMoveOperation();
1583 if (moveOperation) {
1584 myMoveOperation = moveOperation;
1589 }
else if (myViewNet->myViewObjectsSelector.getAdditionalFront() && (markAC == myViewNet->myViewObjectsSelector.getAdditionalFront()) &&
1590 myViewNet->myViewObjectsSelector.getAdditionalFront()->getMoveElement()) {
1592 GNEMoveOperation* moveOperation = myViewNet->myViewObjectsSelector.getAdditionalFront()->getMoveElement()->getMoveOperation();
1594 if (moveOperation) {
1595 myMoveOperation = moveOperation;
1600 }
else if (myViewNet->myViewObjectsSelector.getJunctionFront() && (markAC == myViewNet->myViewObjectsSelector.getJunctionFront())) {
1602 if (myViewNet->myViewObjectsSelector.getEdgeFront() && (myViewNet->myViewObjectsSelector.getEdgeFront()->clickedOverGeometryPoint(myRelativeClickedPosition))) {
1604 GNEMoveOperation* moveOperation = myViewNet->myViewObjectsSelector.getEdgeFront()->getMoveElement()->getMoveOperation();
1606 if (moveOperation) {
1607 myMoveOperation = moveOperation;
1614 GNEMoveOperation* moveOperation = myViewNet->myViewObjectsSelector.getJunctionFront()->getMoveElement()->getMoveOperation();
1616 if (moveOperation) {
1617 myMoveOperation = moveOperation;
1623 }
else if (myViewNet->myViewObjectsSelector.getEdgeFront() && (markAC == myViewNet->myViewObjectsSelector.getEdgeFront())) {
1625 if (myViewNet->myMouseButtonKeyPressed.shiftKeyPressed()) {
1627 myViewNet->myViewObjectsSelector.getEdgeFront()->editEndpoint(myViewNet->getPositionInformation(), myViewNet->myUndoList);
1632 GNEMoveOperation* moveOperation = myViewNet->myViewObjectsSelector.getEdgeFront()->getMoveElement()->getMoveOperation();
1634 if (moveOperation) {
1635 myMoveOperation = moveOperation;
1641 }
else if (myViewNet->myViewObjectsSelector.getLaneFront() && (markAC == myViewNet->myViewObjectsSelector.getLaneFront())) {
1643 GNEMoveOperation* moveOperation = myViewNet->myViewObjectsSelector.getLaneFront()->getMoveElement()->getMoveOperation();
1645 if (moveOperation) {
1646 myMoveOperation = moveOperation;
1661 myRelativeClickedPosition = myViewNet->getPositionInformation();
1663 const GNEAttributeCarrier* markAC = myViewNet->myViewObjectsSelector.getAttributeCarrierFront();
1665 if (myViewNet->myViewObjectsSelector.getDemandElementFront() && (markAC == myViewNet->myViewObjectsSelector.getDemandElementFront() &&
1666 myViewNet->myViewObjectsSelector.getDemandElementFront()->
getMoveElement())) {
1668 GNEMoveOperation* moveOperation = myViewNet->myViewObjectsSelector.getDemandElementFront()->getMoveElement()->getMoveOperation();
1670 if (moveOperation) {
1671 myMoveOperation = moveOperation;
1685 if (myMoveOperation) {
1689 if (mouseLeftButtonPressed) {
1696 delete myMoveOperation;
1697 myMoveOperation =
nullptr;
1705 if (myMoveOperation) {
1710 delete myMoveOperation;
1711 myMoveOperation =
nullptr;
1718 return myMoveOperation !=
nullptr;
1724 if (myMoveOperation) {
1736 Position moveOffset = (myViewNet->getPositionInformation() - myViewNet->myMoveSingleElement.myRelativeClickedPosition);
1738 if (myViewNet->myNetworkViewOptions.menuCheckMoveElevation->shown() && myViewNet->myNetworkViewOptions.menuCheckMoveElevation->amChecked() == TRUE) {
1753 myMovingSelectedEdge(false),
1761 myClickedPosition = myViewNet->getPositionInformation();
1763 if (myViewNet->myViewObjectsSelector.getJunctionFront()) {
1764 calculateJunctionSelection();
1765 }
else if (myViewNet->myViewObjectsSelector.getEdgeFront()) {
1766 calculateEdgeSelection(myViewNet->myViewObjectsSelector.getEdgeFront());
1768 myViewNet->updateViewNet();
1777 if (mouseLeftButtonPressed) {
1779 for (
const auto& moveOperation : myMoveOperations) {
1783 }
else if (myMoveOperations.size() > 0) {
1787 for (
const auto& moveOperation : myMoveOperations) {
1791 delete moveOperation;
1794 myViewNet->getUndoList()->end();
1796 myMoveOperations.clear();
1808 for (
const auto& moveOperation : myMoveOperations) {
1811 delete moveOperation;
1814 myViewNet->getUndoList()->end();
1816 myMoveOperations.clear();
1822 return (myMoveOperations.size() > 0);
1828 return myMovingSelectedEdge;
1834 myMovingSelectedEdge =
false;
1840 return myEdgeOffset;
1846 return myMoveOperations.size() > 0;
1854 Position moveOffset = (myViewNet->getPositionInformation() - myClickedPosition);
1856 if (myViewNet->myNetworkViewOptions.menuCheckMoveElevation->shown() && myViewNet->myNetworkViewOptions.menuCheckMoveElevation->amChecked() == TRUE) {
1871 const auto selectedJunctions = myViewNet->getNet()->getAttributeCarriers()->getSelectedJunctions();
1873 for (
const auto& junction : selectedJunctions) {
1874 moveOperation = junction->getMoveElement()->getMoveOperation();
1875 if (moveOperation) {
1876 myMoveOperations.push_back(moveOperation);
1880 const auto selectedEdges = myViewNet->getNet()->getAttributeCarriers()->getSelectedEdges();
1882 for (
const auto& edge : selectedEdges) {
1883 moveOperation = edge->getMoveElement()->getMoveOperation();
1884 if (moveOperation) {
1885 myMoveOperations.push_back(moveOperation);
1894 const auto selectedJunctions = myViewNet->getNet()->getAttributeCarriers()->getSelectedJunctions();
1896 for (
const auto& junction : selectedJunctions) {
1897 GNEMoveOperation* moveOperation = junction->getMoveElement()->getMoveOperation();
1898 if (moveOperation) {
1899 myMoveOperations.push_back(moveOperation);
1903 myMovingSelectedEdge =
true;
1910 myEdgeOffset = shape.length2D() - shape.nearest_offset_to_point2D(myViewNet->getPositionInformation());
1913 const auto selectedEdges = myViewNet->getNet()->getAttributeCarriers()->getSelectedEdges();
1915 for (
const auto& edge : selectedEdges) {
1916 GNEMoveOperation* moveOperation = edge->getMoveElement()->getMoveOperation();
1918 if (moveOperation) {
1919 myMoveOperations.push_back(moveOperation);
1929 myViewNet(viewNet) {
1950 myViewNet(viewNet) {
1971 selectingUsingRectangle(false),
1972 startDrawing(false),
1973 myViewNet(viewNet) {
1979 selectingUsingRectangle =
true;
1980 selectionCorner1 = myViewNet->getPositionInformation();
1981 selectionCorner2 = selectionCorner1;
1988 startDrawing =
true;
1990 selectionCorner2 = myViewNet->getPositionInformation();
1992 myViewNet->setStatusBarText(
TL(
"Selection width:") +
toString(fabs(selectionCorner1.x() - selectionCorner2.x()))
1993 +
TL(
" height:") +
toString(fabs(selectionCorner1.y() - selectionCorner2.y()))
1994 +
TL(
" diagonal:") +
toString(selectionCorner1.distanceTo2D(selectionCorner2)));
2001 selectingUsingRectangle =
false;
2002 startDrawing =
false;
2004 myViewNet->setStatusBarText(
"");
2011 if ((abs(selectionCorner1.x() - selectionCorner2.x()) > 0.01) &&
2012 (abs(selectionCorner1.y() - selectionCorner2.y()) > 0.01) &&
2013 myViewNet->myMouseButtonKeyPressed.shiftKeyPressed()) {
2016 rectangleBoundary.
add(selectionCorner1);
2017 rectangleBoundary.
add(selectionCorner2);
2019 processBoundarySelection(rectangleBoundary);
2024std::vector<GNEEdge*>
2027 if ((abs(selectionCorner1.x() - selectionCorner2.x()) > 0.01) &&
2028 (abs(selectionCorner1.y() - selectionCorner2.y()) > 0.01) &&
2029 myViewNet->myMouseButtonKeyPressed.shiftKeyPressed()) {
2032 rectangleBoundary.
add(selectionCorner1);
2033 rectangleBoundary.
add(selectionCorner2);
2035 myViewNet->updateObjectsInShape(rectangleBoundary.
getShape(
false));
2037 return myViewNet->getViewObjectsSelector().getEdges();
2046 if (selectingUsingRectangle) {
2051 glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
2053 glVertex2d(selectionCorner1.x(), selectionCorner1.y());
2054 glVertex2d(selectionCorner1.x(), selectionCorner2.y());
2055 glVertex2d(selectionCorner2.x(), selectionCorner2.y());
2056 glVertex2d(selectionCorner2.x(), selectionCorner1.y());
2065 const bool selEdges = myViewNet->myNetworkViewOptions.selectEdges();
2067 myViewNet->updateObjectsInShape(boundary.
getShape(
false));
2069 std::vector<GNEAttributeCarrier*> ACsFiltered;
2070 ACsFiltered.reserve(myViewNet->getViewObjectsSelector().getAttributeCarriers().size());
2071 for (
const auto& AC : myViewNet->getViewObjectsSelector().getAttributeCarriers()) {
2072 const auto tagProperty = AC->getTagProperty();
2073 if (tagProperty->isNetworkElement() || tagProperty->isAdditionalElement()) {
2075 if (((tagProperty->getTag() ==
SUMO_TAG_EDGE) && !selEdges) ||
2079 ACsFiltered.push_back(AC);
2081 }
else if (tagProperty->isDemandElement()) {
2082 ACsFiltered.push_back(AC);
2083 }
else if (tagProperty->isGenericData()) {
2084 ACsFiltered.push_back(AC);
2088 std::vector<GNEAttributeCarrier*> ACsFilteredUnlocked;
2089 ACsFilteredUnlocked.reserve(ACsFiltered.size());
2090 for (
const auto& AC : ACsFiltered) {
2092 if (!AC->getGUIGlObject()->isGLObjectLocked()) {
2093 ACsFilteredUnlocked.push_back(AC);
2097 std::vector<GNEAttributeCarrier*> ACToSelect;
2098 std::vector<GNEAttributeCarrier*> ACToUnselect;
2100 ACToSelect.reserve(ACsFilteredUnlocked.size());
2101 ACToUnselect.reserve(ACsFilteredUnlocked.size());
2103 const auto modificationMode = myViewNet->myViewParent->getSelectorFrame()->getModificationModeModul()->getModificationMode();
2106 const auto selectedAC = myViewNet->getNet()->getAttributeCarriers()->getSelectedAttributeCarriers(
false);
2108 for (
const auto& AC : selectedAC) {
2109 ACToUnselect.push_back(AC);
2113 for (
const auto& AC : ACsFilteredUnlocked) {
2114 switch (myViewNet->myViewParent->getSelectorFrame()->getModificationModeModul()->getModificationMode()) {
2116 ACToUnselect.push_back(AC);
2119 if (std::find(ACToUnselect.begin(), ACToUnselect.end(), AC) != ACToUnselect.end()) {
2120 ACToSelect.push_back(AC);
2124 ACToSelect.push_back(AC);
2130 std::vector<GNEEdge*> edgesToSelect;
2132 for (
const auto& AC : ACToSelect) {
2134 edgesToSelect.push_back(
dynamic_cast<GNEEdge*
>(AC));
2138 for (
const auto& edge : edgesToSelect) {
2140 ACToSelect.push_back(edge->getFromJunction());
2141 for (
const auto& connection : edge->getFromJunction()->getGNEConnections()) {
2142 ACToSelect.push_back(connection);
2144 for (
const auto& crossing : edge->getFromJunction()->getGNECrossings()) {
2145 ACToSelect.push_back(crossing);
2148 ACToSelect.push_back(edge->getToJunction());
2149 for (
const auto& connection : edge->getToJunction()->getGNEConnections()) {
2150 ACToSelect.push_back(connection);
2152 for (
const auto& crossing : edge->getToJunction()->getGNECrossings()) {
2153 ACToSelect.push_back(crossing);
2158 if ((ACToSelect.size() + ACToUnselect.size()) > 0) {
2161 for (
const auto& AC : ACToUnselect) {
2164 for (
const auto& AC : ACToSelect) {
2165 if (AC->getTagProperty()->isSelectable()) {
2169 myViewNet->myUndoList->end();
2171 myViewNet->makeNonCurrent();
2179 myViewNet(viewNet) {
2189 if ((windowSize.size() == 2) && GNEAttributeCarrier::canParse<int>(windowSize[0]) && GNEAttributeCarrier::canParse<int>(windowSize[1])) {
2190 myTestingWidth = GNEAttributeCarrier::parse<int>(windowSize[0]);
2191 myTestingHeight = GNEAttributeCarrier::parse<int>(windowSize[1]);
2204 if (myTestingWidth > 0) {
2205 mainWindow->resize(myTestingWidth, myTestingHeight);
2209 const double size = myViewNet->p2m(32);
2210 Position center = myViewNet->screenPos2NetPos(8, 8);
2215 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
2218 glVertex2d(0, -size);
2219 glVertex2d(size, -size);
2220 glVertex2d(size, 0);
2227 glScaled(0.7, 0.7, 0);
2228 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
2231 glVertex2d(0, -size);
2232 glVertex2d(size, -size);
2233 glVertex2d(size, 0);
2240 glScaled(0.4, 0.4, 0);
2241 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
2244 glVertex2d(0, -size);
2245 glVertex2d(size, -size);
2246 glVertex2d(size, 0);
2257 myViewNet(viewNet) {
2262 delete mySaveIndividualFilesPopup;
2269 auto gripSaveElements = myViewNet->getViewParent()->getGNEAppWindows()->getToolbarsGrip().saveElements;
2271 auto tooltipMenu = myViewNet->myViewParent->getGNEAppWindows()->getStaticTooltipMenu();
2276 mySaveNeteditConfig->create();
2281 mySaveSumoConfig->create();
2286 mySaveNetwork->create();
2288 mySaveIndividualFilesPopup =
new FXPopup(gripSaveElements, POPUP_VERTICAL);
2289 mySaveIndividualFilesPopup->create();
2292 std::string(
"\t") +
TL(
"Save individual files") + std::string(
"\t") +
TL(
"Save individual files."),
2294 mySaveIndividualFiles->create();
2296 mySaveAdditionalElements =
new MFXButtonTooltip(mySaveIndividualFilesPopup, tooltipMenu,
2299 mySaveAdditionalElements->create();
2301 mySaveDemandElements =
new MFXButtonTooltip(mySaveIndividualFilesPopup, tooltipMenu,
2304 mySaveDemandElements->create();
2306 mySaveDataElements =
new MFXButtonTooltip(mySaveIndividualFilesPopup, tooltipMenu,
2309 mySaveDataElements->create();
2311 mySaveMeanDataElements =
new MFXButtonTooltip(mySaveIndividualFilesPopup, tooltipMenu,
2314 mySaveMeanDataElements->create();
2316 gripSaveElements->recalc();
2318 gripSaveElements->show();
2325 mySaveIndividualFiles->enable();
2327 mySaveIndividualFiles->disable();
2336 myViewNet(viewNet) {
2343 mySwitchButton =
new MFXButtonTooltip(myViewNet->getViewParent()->getGNEAppWindows()->getToolbarsGrip().timeSwitch,
2344 myViewNet->myViewParent->getGNEAppWindows()->getStaticTooltipMenu(),
2345 gHumanReadableTime ?
"H" :
"S" + std::string(
"\t") +
TL(
"Switch between seconds and HH:MM:SS") + std::string(
"\t") +
TL(
"Switch between seconds and HH:MM:SS"),
nullptr,
2347 mySwitchButton->create();
2366 mySwitchButton->setText(
"H");
2368 mySwitchButton->setText(
"S");
2381 myViewNet(viewNet) {
2384 if (neteditOptions.getBool(
"new")) {
2386 neteditOptions.resetWritable();
2387 neteditOptions.set(
"new",
"false");
2393 delete myNeteditViewsPopup;
2400 auto gripSupermodes = myViewNet->getViewParent()->getGNEAppWindows()->getToolbarsGrip().superModes;
2402 auto toolTipMenu = myViewNet->myViewParent->getGNEAppWindows()->getStaticTooltipMenu();
2405 TL(
"Network") + std::string(
"\t") +
TL(
"Edit network elements") + std::string(
"\t") +
TL(
"Set mode for editing network elements. (F2)"),
2407 networkButton->create();
2410 TL(
"Demand") + std::string(
"\t") +
TL(
"Edit traffic demand elements") + std::string(
"\t") +
TL(
"Set mode for editing traffic demand. (F3)"),
2412 demandButton->create();
2415 TL(
"Data") + std::string(
"\t") +
TL(
"Edit data elements") + std::string(
"\t") +
TL(
"Set mode for editing data demand. (F4)"),
2417 dataButton->create();
2419 myNeteditViewsPopup =
new FXPopup(gripSupermodes, POPUP_VERTICAL);
2420 myNeteditViewsPopup->create();
2423 (std::string(
"\t") +
TL(
"Change netedit view") + std::string(
"\t") +
TL(
"Change netedit view.")).c_str(),
2425 myNeteditViewsButton->create();
2427 myDefaultViewButton =
new MFXButtonTooltip(myNeteditViewsPopup, toolTipMenu,
2428 (std::string(
"Default\t") +
TL(
"Set default view") + std::string(
"\t") +
TL(
"Set default view.")).c_str(),
2430 myDefaultViewButton->create();
2432 myJuPedSimViewButton =
new MFXButtonTooltip(myNeteditViewsPopup, toolTipMenu,
2433 (std::string(
"JuPedSim\t") +
TL(
"Set JuPedSim view") + std::string(
"\t") +
TL(
"Set JuPedSim view.")).c_str(),
2435 myJuPedSimViewButton->create();
2436 myNeteditViewsPopup->recalc();
2438 gripSupermodes->setWidth(353);
2440 gripSupermodes->show();
2446 if (!force && (supermode == currentSupermode)) {
2447 myViewNet->setStatusBarText(
TL(
"Mode already selected"));
2448 if (myViewNet->myCurrentFrame !=
nullptr) {
2449 myViewNet->myCurrentFrame->focusUpperElement();
2452 myViewNet->setStatusBarText(
"");
2454 myViewNet->abortOperation(
false);
2456 currentSupermode = supermode;
2460 networkButton->setChecked(
true);
2461 demandButton->setChecked(
false);
2462 dataButton->setChecked(
false);
2464 myViewNet->myNetworkCheckableButtons.showNetworkCheckableButtons();
2466 myViewNet->myDemandCheckableButtons.hideDemandCheckableButtons();
2468 myViewNet->myDataCheckableButtons.hideDataCheckableButtons();
2470 setNetworkEditMode(networkEditMode,
true);
2473 networkButton->setChecked(
false);
2474 demandButton->setChecked(
true);
2475 dataButton->setChecked(
false);
2477 myViewNet->myNetworkCheckableButtons.hideNetworkCheckableButtons();
2479 myViewNet->myDemandCheckableButtons.showDemandCheckableButtons();
2481 myViewNet->myDataCheckableButtons.hideDataCheckableButtons();
2483 setDemandEditMode(demandEditMode,
true);
2485 myViewNet->myNet->computeNetwork(myViewNet->myViewParent->getGNEAppWindows());
2487 if (!myViewNet->myNet->getDemandPathManager()->getPathCalculator()->isPathCalculatorUpdated()) {
2489 myViewNet->myNet->getDemandPathManager()->getPathCalculator()->updatePathCalculator();
2491 myViewNet->myNet->computeDemandElements(myViewNet->myViewParent->getGNEAppWindows());
2495 networkButton->setChecked(
false);
2496 demandButton->setChecked(
false);
2497 dataButton->setChecked(
true);
2499 myViewNet->myNetworkCheckableButtons.hideNetworkCheckableButtons();
2501 myViewNet->myDemandCheckableButtons.hideDemandCheckableButtons();
2503 myViewNet->myDataCheckableButtons.showDataCheckableButtons();
2505 setDataEditMode(dataEditMode,
true);
2507 if (myViewNet->getViewParent()->getGNEAppWindows()->getProcessingMenuCommands().menuCheckRecomputeDataMode->getCheck() == TRUE) {
2509 myViewNet->myNet->computeNetwork(myViewNet->myViewParent->getGNEAppWindows());
2512 for (
const auto&
TAZ : myViewNet->getNet()->getAttributeCarriers()->getAdditionals().at(
SUMO_TAG_TAZ)) {
2513 TAZ.second->resetAdditionalContour();
2517 networkButton->update();
2518 demandButton->update();
2519 dataButton->update();
2521 myViewNet->myViewParent->getGNEAppWindows()->updateSuperModeMenuCommands(currentSupermode);
2528 if ((mode == networkEditMode) && !force) {
2529 myViewNet->setStatusBarText(
TL(
"Network mode already selected"));
2530 if (myViewNet->myCurrentFrame !=
nullptr) {
2531 myViewNet->myCurrentFrame->focusUpperElement();
2534 myViewNet->setStatusBarText(
TL(
"Save modifications in TLS before change mode"));
2535 myViewNet->myCurrentFrame->focusUpperElement();
2537 myViewNet->setStatusBarText(
"");
2538 myViewNet->abortOperation(
false);
2540 myViewNet->myEditNetworkElementShapes.stopEditCustomShape();
2542 networkEditMode = mode;
2563 myViewNet->myNet->computeNetwork(myViewNet->myViewParent->getGNEAppWindows());
2569 myViewNet->updateCursor();
2571 myViewNet->updateNetworkModeSpecificControls();
2578 if ((mode == demandEditMode) && !force) {
2579 myViewNet->setStatusBarText(
TL(
"Demand mode already selected"));
2580 if (myViewNet->myCurrentFrame !=
nullptr) {
2581 myViewNet->myCurrentFrame->focusUpperElement();
2584 myViewNet->setStatusBarText(
"");
2585 myViewNet->abortOperation(
false);
2587 myViewNet->myEditNetworkElementShapes.stopEditCustomShape();
2589 demandEditMode = mode;
2604 myViewNet->updateCursor();
2606 myViewNet->updateDemandModeSpecificControls();
2613 if ((mode == dataEditMode) && !force) {
2614 myViewNet->setStatusBarText(
TL(
"Data mode already selected"));
2615 if (myViewNet->myCurrentFrame !=
nullptr) {
2616 myViewNet->myCurrentFrame->focusUpperElement();
2619 myViewNet->setStatusBarText(
"");
2620 myViewNet->abortOperation(
false);
2622 myViewNet->myEditNetworkElementShapes.stopEditCustomShape();
2624 dataEditMode = mode;
2637 for (
const auto& dataSet : myViewNet->getNet()->getAttributeCarriers()->getDataSets()) {
2638 dataSet.second->updateAttributeColors();
2641 myViewNet->updateCursor();
2643 myViewNet->updateDataModeSpecificControls();
2669 auto gripSupermodes = myViewNet->getViewParent()->getGNEAppWindows()->getToolbarsGrip().superModes;
2671 auto& fileMenuCommands = myViewNet->getViewParent()->getGNEAppWindows()->getFileMenuCommands();
2675 gripSupermodes->setWidth(353);
2677 fileMenuCommands.setDefaultView();
2679 myViewNet->getViewParent()->getCreateEdgeFrame()->getEdgeTypeSelector()->showDefaultShortEdgeCheckBox(
false);
2682 gripSupermodes->setWidth(250);
2684 fileMenuCommands.setJuPedSimView();
2686 myViewNet->getViewParent()->getCreateEdgeFrame()->getEdgeTypeSelector()->showDefaultShortEdgeCheckBox(
true);
2689 myViewNet->viewUpdated();
2709 myViewNet(viewNet) {
2716 auto gripModes = myViewNet->myViewParent->getGNEAppWindows()->getToolbarsGrip().modes;
2718 auto toolTipMenu = myViewNet->myViewParent->getGNEAppWindows()->getStaticTooltipMenu();
2721 (std::string(
"\t") +
TL(
"Show grid") + std::string(
"\t") +
TL(
"Show grid and restrict movement to the grid - define grid size in visualization options. (Ctrl+G)")),
2724 menuCheckToggleGrid->setChecked(
false);
2725 menuCheckToggleGrid->create();
2727 menuCheckToggleDrawJunctionShape =
new MFXCheckableButton(
false, gripModes, toolTipMenu,
2728 (std::string(
"\t") +
TL(
"Hide junction shape") + std::string(
"\t") +
TL(
"Toggle hiding junction shape. (Ctrl+J)")),
2731 menuCheckToggleDrawJunctionShape->setChecked(
false);
2732 menuCheckToggleDrawJunctionShape->create();
2735 (std::string(
"\t") +
TL(
"Draw vehicles spread in lane or depart position") + std::string(
"\t") +
TL(
"Draw vehicles spread in lane or in depart position.")),
2738 menuCheckDrawSpreadVehicles->setChecked(
false);
2739 menuCheckDrawSpreadVehicles->create();
2742 (std::string(
"\t") +
TL(
"Show demand elements") + std::string(
"\t") +
TL(
"Toggle show demand elements.")),
2745 menuCheckShowDemandElements->setChecked(
false);
2746 menuCheckShowDemandElements->create();
2749 (std::string(
"\t") +
TL(
"Clicks target lanes") + std::string(
"\t") +
TL(
"Toggle whether clicking should inspect/select/delete lanes instead of edges.")),
2752 menuCheckSelectEdges->create();
2755 (std::string(
"\t") +
TL(
"Show connections over junctions") + std::string(
"\t") +
TL(
"Toggle show connections over junctions.")),
2758 menuCheckShowConnections->setChecked(myViewNet->getVisualisationSettings().showLane2Lane);
2759 menuCheckShowConnections->create();
2762 (std::string(
"\t") +
TL(
"Hide connections") + std::string(
"\t") +
TL(
"Toggle hide connections.")),
2765 menuCheckHideConnections->setChecked(
false);
2766 menuCheckHideConnections->create();
2768 menuCheckShowAdditionalSubElements =
new MFXCheckableButton(
false, gripModes, toolTipMenu,
2769 (std::string(
"\t") +
TL(
"Show additional sub-elements") + std::string(
"\t") +
TL(
"Toggle show additional sub-elements.")),
2772 menuCheckShowAdditionalSubElements->setChecked(
false);
2773 menuCheckShowAdditionalSubElements->create();
2776 (std::string(
"\t") +
TL(
"Show TAZ elements") + std::string(
"\t") +
TL(
"Toggle show TAZ elements.")),
2779 menuCheckShowTAZElements->setChecked(
false);
2780 menuCheckShowTAZElements->create();
2783 (std::string(
"\t") +
TL(
"Automatic select junctions") + std::string(
"\t") +
TL(
"Toggle whether selecting multiple edges should automatically select their junctions.")),
2786 menuCheckExtendSelection->setChecked(
true);
2787 menuCheckExtendSelection->create();
2790 (std::string(
"\t") +
TL(
"Apply state to all phases") + std::string(
"\t") +
TL(
"Toggle whether clicking should apply state changes to all phases of the current TLS plan.")),
2793 menuCheckChangeAllPhases->setChecked(
false);
2794 menuCheckChangeAllPhases->create();
2797 (std::string(
"\t") +
TL(
"Automatic merging junction") + std::string(
"\t") +
TL(
"Toggle ask for confirmation before merging junction.")),
2800 menuCheckMergeAutomatically->create();
2803 (std::string(
"\t") +
TL(
"Edge chain mode") + std::string(
"\t") +
TL(
"Create consecutive edges with a single click (hit ESC to cancel chain).")),
2806 menuCheckChainEdges->setChecked(
false);
2807 menuCheckChainEdges->create();
2810 (std::string(
"\t") +
TL(
"Edge opposite direction") + std::string(
"\t") +
TL(
"Automatically create an edge in the opposite direction.")),
2813 menuCheckAutoOppositeEdge->setChecked(
false);
2814 menuCheckAutoOppositeEdge->create();
2817 (std::string(
"\t") +
TL(
"Move elevation") + std::string(
"\t") +
TL(
"Apply mouse movement to elevation instead of x,y position.")),
2820 menuCheckMoveElevation->setChecked(
false);
2821 menuCheckMoveElevation->create();
2824 (std::string(
"\t") +
TL(
"Show bubbles") + std::string(
"\t") +
TL(
"Toggle show bubbles over junctions shapes.")),
2827 menuCheckShowJunctionBubble->setChecked(
false);
2828 menuCheckShowJunctionBubble->create();
2831 (std::string(
"\t") +
TL(
"Show polygon symbols") + std::string(
"\t") +
TL(
"Show polygon symbols.")),
2834 menuCheckShowPolygonSymbols->setChecked(
true);
2835 menuCheckShowPolygonSymbols->create();
2837 menuCheckDrawFilledWalkingAreas =
new MFXCheckableButton(
false, gripModes, toolTipMenu,
2838 (std::string(
"\t") +
TL(
"Draw filled walking areas") + std::string(
"\t") +
TL(
"Draw filled walking areas.")),
2841 menuCheckDrawFilledWalkingAreas->setChecked(
true);
2842 menuCheckDrawFilledWalkingAreas->create();
2845 gripModes->recalc();
2851 menuCheckToggleGrid->hide();
2852 menuCheckToggleDrawJunctionShape->hide();
2853 menuCheckDrawSpreadVehicles->hide();
2854 menuCheckShowDemandElements->hide();
2855 menuCheckSelectEdges->hide();
2856 menuCheckShowConnections->hide();
2857 menuCheckHideConnections->hide();
2858 menuCheckShowAdditionalSubElements->hide();
2859 menuCheckShowTAZElements->hide();
2860 menuCheckExtendSelection->hide();
2861 menuCheckChangeAllPhases->hide();
2862 menuCheckMergeAutomatically->hide();
2863 menuCheckShowJunctionBubble->hide();
2864 menuCheckMoveElevation->hide();
2865 menuCheckChainEdges->hide();
2866 menuCheckAutoOppositeEdge->hide();
2867 menuCheckShowPolygonSymbols->hide();
2868 menuCheckDrawFilledWalkingAreas->hide();
2875 if (menuCheckToggleGrid->shown()) {
2876 commands.push_back(menuCheckToggleGrid);
2878 if (menuCheckToggleDrawJunctionShape->shown()) {
2879 commands.push_back(menuCheckToggleDrawJunctionShape);
2881 if (menuCheckDrawSpreadVehicles->shown()) {
2882 commands.push_back(menuCheckDrawSpreadVehicles);
2884 if (menuCheckShowDemandElements->shown()) {
2885 commands.push_back(menuCheckShowDemandElements);
2887 if (menuCheckSelectEdges->shown()) {
2888 commands.push_back(menuCheckSelectEdges);
2890 if (menuCheckShowConnections->shown()) {
2891 commands.push_back(menuCheckShowConnections);
2893 if (menuCheckHideConnections->shown()) {
2894 commands.push_back(menuCheckHideConnections);
2896 if (menuCheckShowAdditionalSubElements->shown()) {
2897 commands.push_back(menuCheckShowAdditionalSubElements);
2899 if (menuCheckShowTAZElements->shown()) {
2900 commands.push_back(menuCheckShowTAZElements);
2902 if (menuCheckExtendSelection->shown()) {
2903 commands.push_back(menuCheckExtendSelection);
2905 if (menuCheckChangeAllPhases->shown()) {
2906 commands.push_back(menuCheckChangeAllPhases);
2908 if (menuCheckMergeAutomatically->shown()) {
2909 commands.push_back(menuCheckMergeAutomatically);
2911 if (menuCheckChainEdges->shown()) {
2912 commands.push_back(menuCheckChainEdges);
2914 if (menuCheckAutoOppositeEdge->shown()) {
2915 commands.push_back(menuCheckAutoOppositeEdge);
2917 if (menuCheckMoveElevation->shown()) {
2918 commands.push_back(menuCheckMoveElevation);
2920 if (menuCheckShowJunctionBubble->shown()) {
2921 commands.push_back(menuCheckShowJunctionBubble);
2923 if (menuCheckShowPolygonSymbols->shown()) {
2924 commands.push_back(menuCheckShowPolygonSymbols);
2926 if (menuCheckDrawFilledWalkingAreas->shown()) {
2927 commands.push_back(menuCheckDrawFilledWalkingAreas);
2934 return (menuCheckDrawSpreadVehicles->amChecked() == TRUE);
2940 if (menuCheckShowDemandElements->shown()) {
2941 return (menuCheckShowDemandElements->amChecked() == TRUE);
2951 if (menuCheckSelectEdges->shown()) {
2952 return (menuCheckSelectEdges->amChecked() != TRUE);
2962 if (myViewNet->myEditModes.isCurrentSupermodeData()) {
2965 if (myViewNet->getViewParent()->getConnectorFrame()->getConnectionVisualization()->showOnlyFromConnections() && myViewNet->getViewParent()->getConnectorFrame()->getCurrentEditedLane()) {
2966 for (
const auto& outgoingConnection : myViewNet->getViewParent()->getConnectorFrame()->getCurrentEditedLane()->getParentEdge()->getGNEConnections()) {
2967 if ((connection == outgoingConnection) && (outgoingConnection->getLaneFrom() == myViewNet->getViewParent()->getConnectorFrame()->getCurrentEditedLane())) {
2973 return (menuCheckHideConnections->amChecked() ==
false);
2977 }
else if (myViewNet->myEditModes.isCurrentSupermodeNetwork() && menuCheckShowConnections->shown() ==
false) {
2980 return (myViewNet->getVisualisationSettings().showLane2Lane);
2987 if (!myViewNet->myEditModes.isCurrentSupermodeNetwork()) {
2989 }
else if (menuCheckShowAdditionalSubElements->shown() ==
false) {
2992 return menuCheckShowAdditionalSubElements->amChecked();
2999 if (!myViewNet->myEditModes.isCurrentSupermodeNetwork()) {
3001 }
else if (menuCheckShowTAZElements->shown() ==
false) {
3004 return menuCheckShowTAZElements->amChecked();
3011 if (menuCheckMoveElevation->shown()) {
3012 return (menuCheckMoveElevation->amChecked() == TRUE);
3021 if (menuCheckShowPolygonSymbols->shown()) {
3022 return (menuCheckShowPolygonSymbols->amChecked() == TRUE);
3031 if (menuCheckDrawFilledWalkingAreas->shown()) {
3032 return (menuCheckDrawFilledWalkingAreas->amChecked() == TRUE);
3043 myViewNet(viewNet) {
3050 auto gripModes = myViewNet->getViewParent()->getGNEAppWindows()->getToolbarsGrip().modes;
3052 auto tooltipMenu = myViewNet->myViewParent->getGNEAppWindows()->getStaticTooltipMenu();
3055 (std::string(
"\t") +
TL(
"Show grid") + std::string(
"\t") +
TL(
"Show grid and restrict movement to the grid - define grid size in visualization options. (Ctrl+G)")),
3058 menuCheckToggleGrid->setChecked(
false);
3059 menuCheckToggleGrid->create();
3061 menuCheckToggleDrawJunctionShape =
new MFXCheckableButton(
false, gripModes, tooltipMenu,
3062 (std::string(
"\t") +
TL(
"Hide junction shape") + std::string(
"\t") +
TL(
"Toggle hiding junction shape. (Ctrl+J)")),
3065 menuCheckToggleDrawJunctionShape->setChecked(
false);
3066 menuCheckToggleDrawJunctionShape->create();
3069 (std::string(
"\t") +
TL(
"Draw vehicles spread/depart position") + std::string(
"\t") +
TL(
"Draw vehicles spread in lane or in depart position.")),
3072 menuCheckDrawSpreadVehicles->setChecked(
false);
3073 menuCheckDrawSpreadVehicles->create();
3076 (std::string(
"\t") +
TL(
"Show shapes") + std::string(
"\t") +
TL(
"Toggle show shapes (Polygons and POIs).")),
3079 menuCheckHideShapes->setChecked(
false);
3080 menuCheckHideShapes->create();
3083 (std::string(
"\t") +
TL(
"Show all trips") + std::string(
"\t") +
TL(
"Toggle show all trips (requires updated demand - F5).")),
3086 menuCheckShowAllTrips->setChecked(
false);
3087 menuCheckShowAllTrips->create();
3090 (std::string(
"\t") +
TL(
"Show all person plans") + std::string(
"\t") +
TL(
"Toggle show all person plans.")),
3093 menuCheckShowAllPersonPlans->setChecked(
false);
3094 menuCheckShowAllPersonPlans->create();
3097 (std::string(
"\t") +
TL(
"Lock selected person") + std::string(
"\t") +
TL(
"Toggle lock selected person.")),
3100 menuCheckLockPerson->setChecked(
false);
3101 menuCheckLockPerson->create();
3103 menuCheckShowAllContainerPlans =
new MFXCheckableButton(
false, gripModes, tooltipMenu,
3104 (std::string(
"\t") +
TL(
"Show all containers plans") + std::string(
"\t") +
TL(
"Toggle show all container plans.")),
3107 menuCheckShowAllContainerPlans->setChecked(
false);
3108 menuCheckShowAllContainerPlans->create();
3111 (std::string(
"\t") +
TL(
"Lock selected container") + std::string(
"\t") +
TL(
"Toggle lock selected container.")),
3114 menuCheckLockContainer->setChecked(
false);
3115 menuCheckLockContainer->create();
3117 menuCheckHideNonInspectedDemandElements =
new MFXCheckableButton(
false, gripModes, tooltipMenu,
3118 (std::string(
"\t") +
TL(
"Show non-inspected demand elements") + std::string(
"\t") +
TL(
"Toggle show non-inspected demand elements.")),
3121 menuCheckHideNonInspectedDemandElements->setChecked(
false);
3122 menuCheckHideNonInspectedDemandElements->create();
3124 menuCheckShowOverlappedRoutes =
new MFXCheckableButton(
false, gripModes, tooltipMenu,
3125 (std::string(
"\t") +
TL(
"Show number of overlapped routes") + std::string(
"\t") +
TL(
"Toggle show number of overlapped routes.")),
3128 menuCheckShowOverlappedRoutes->setChecked(
false);
3129 menuCheckShowOverlappedRoutes->create();
3132 gripModes->recalc();
3138 menuCheckToggleGrid->hide();
3139 menuCheckToggleDrawJunctionShape->hide();
3140 menuCheckDrawSpreadVehicles->hide();
3141 menuCheckHideShapes->hide();
3142 menuCheckShowAllTrips->hide();
3143 menuCheckShowAllPersonPlans->hide();
3144 menuCheckLockPerson->hide();
3145 menuCheckShowAllContainerPlans->hide();
3146 menuCheckLockContainer->hide();
3147 menuCheckHideNonInspectedDemandElements->hide();
3148 menuCheckShowOverlappedRoutes->hide();
3155 if (menuCheckToggleGrid->shown()) {
3156 commands.push_back(menuCheckToggleGrid);
3158 if (menuCheckToggleDrawJunctionShape->shown()) {
3159 commands.push_back(menuCheckToggleDrawJunctionShape);
3161 if (menuCheckDrawSpreadVehicles->shown()) {
3162 commands.push_back(menuCheckDrawSpreadVehicles);
3164 if (menuCheckHideShapes->shown()) {
3165 commands.push_back(menuCheckHideShapes);
3167 if (menuCheckShowAllTrips->shown()) {
3168 commands.push_back(menuCheckShowAllTrips);
3170 if (menuCheckShowAllPersonPlans->shown() && menuCheckShowAllPersonPlans->isEnabled()) {
3171 commands.push_back(menuCheckShowAllPersonPlans);
3173 if (menuCheckLockPerson->shown() && menuCheckLockPerson->isEnabled()) {
3174 commands.push_back(menuCheckLockPerson);
3176 if (menuCheckShowAllContainerPlans->shown() && menuCheckShowAllContainerPlans->isEnabled()) {
3177 commands.push_back(menuCheckShowAllContainerPlans);
3179 if (menuCheckLockContainer->shown() && menuCheckLockContainer->isEnabled()) {
3180 commands.push_back(menuCheckLockContainer);
3182 if (menuCheckHideNonInspectedDemandElements->shown()) {
3183 commands.push_back(menuCheckHideNonInspectedDemandElements);
3185 if (menuCheckShowOverlappedRoutes->shown()) {
3186 commands.push_back(menuCheckShowOverlappedRoutes);
3193 return (menuCheckDrawSpreadVehicles->amChecked() == TRUE);
3199 if (menuCheckHideNonInspectedDemandElements->shown()) {
3200 const auto& inspectedElements = myViewNet->getInspectedElements();
3202 if ((menuCheckHideNonInspectedDemandElements->amChecked() == FALSE) || (inspectedElements.getFirstAC() ==
nullptr)) {
3205 }
else if (inspectedElements.getFirstAC() && inspectedElements.getFirstAC()->getTagProperty()->isDemandElement()) {
3206 if (inspectedElements.isACInspected(demandElement)) {
3212 if (inspectedElements.isACInspected(demandElementChild)) {
3218 if (inspectedElements.isACInspected(demandElementParent)) {
3238 if (menuCheckHideShapes->shown()) {
3239 return (menuCheckHideShapes->amChecked() == FALSE);
3248 return (menuCheckShowAllTrips->amChecked() == TRUE);
3254 if (menuCheckShowAllPersonPlans->isEnabled()) {
3255 return (menuCheckShowAllPersonPlans->amChecked() == TRUE);
3264 myLockedPerson = person;
3270 myLockedPerson =
nullptr;
3276 return myLockedPerson;
3282 if (menuCheckShowAllContainerPlans->isEnabled()) {
3283 return (menuCheckShowAllContainerPlans->amChecked() == TRUE);
3292 myLockedContainer = container;
3298 myLockedContainer =
nullptr;
3304 if (menuCheckShowOverlappedRoutes->isEnabled()) {
3305 return (menuCheckShowOverlappedRoutes->amChecked() == TRUE);
3314 return myLockedContainer;
3322 myViewNet(viewNet) {
3329 auto gripModes = myViewNet->getViewParent()->getGNEAppWindows()->getToolbarsGrip().modes;
3331 auto tooltipMenu = myViewNet->myViewParent->getGNEAppWindows()->getStaticTooltipMenu();
3333 menuCheckToggleDrawJunctionShape =
new MFXCheckableButton(
false, gripModes, tooltipMenu,
3334 (std::string(
"\t") +
TL(
"Hide junction shape") + std::string(
"\t") +
TL(
"Toggle hiding junction shape. (Ctrl+J)")),
3337 menuCheckToggleDrawJunctionShape->setChecked(
false);
3338 menuCheckToggleDrawJunctionShape->create();
3341 (std::string(
"\t") +
TL(
"Show additionals") + std::string(
"\t") +
TL(
"Toggle show additionals.")),
3344 menuCheckShowAdditionals->create();
3347 (std::string(
"\t") +
TL(
"Show shapes") + std::string(
"\t") +
TL(
"Toggle show shapes (Polygons and POIs).")),
3350 menuCheckShowShapes->create();
3353 (std::string(
"\t") +
TL(
"Show demand elements") + std::string(
"\t") +
TL(
"Toggle show demand elements.")),
3356 menuCheckShowDemandElements->create();
3359 (std::string(
"\t") +
TL(
"Draw TAZREL drawing mode") + std::string(
"\t") +
TL(
"Toggle draw TAZREL drawing mode.")),
3362 menuCheckToggleTAZRelDrawing->create();
3365 (std::string(
"\t") +
TL(
"Toggle draw TAZ fill") + std::string(
"\t") +
TL(
"Toggle draw TAZ fill")),
3368 menuCheckToggleTAZDrawFill->create();
3370 menuCheckToggleTAZRelOnlyFrom =
new MFXCheckableButton(
false, gripModes, tooltipMenu,
3371 (std::string(
"\t") +
TL(
"Toggle draw TAZRel only from") + std::string(
"\t") +
TL(
"Toggle draw TAZRel only from")),
3374 menuCheckToggleTAZRelOnlyFrom->create();
3377 (std::string(
"\t") +
TL(
"Toggle draw TAZRel only to") + std::string(
"\t") +
TL(
"Toggle draw TAZRel only to")),
3380 menuCheckToggleTAZRelOnlyTo->create();
3383 gripModes->recalc();
3389 menuCheckToggleDrawJunctionShape->hide();
3390 menuCheckShowAdditionals->hide();
3391 menuCheckShowShapes->hide();
3392 menuCheckShowDemandElements->hide();
3393 menuCheckToggleTAZRelDrawing->hide();
3394 menuCheckToggleTAZDrawFill->hide();
3395 menuCheckToggleTAZRelOnlyFrom->hide();
3396 menuCheckToggleTAZRelOnlyTo->hide();
3403 if (menuCheckToggleDrawJunctionShape->shown()) {
3404 commands.push_back(menuCheckToggleDrawJunctionShape);
3406 if (menuCheckShowAdditionals->shown()) {
3407 commands.push_back(menuCheckShowAdditionals);
3409 if (menuCheckShowShapes->shown()) {
3410 commands.push_back(menuCheckShowShapes);
3412 if (menuCheckShowDemandElements->shown()) {
3413 commands.push_back(menuCheckShowDemandElements);
3415 if (menuCheckToggleTAZRelDrawing->shown()) {
3416 commands.push_back(menuCheckToggleTAZRelDrawing);
3418 if (menuCheckToggleTAZDrawFill->shown()) {
3419 commands.push_back(menuCheckToggleTAZDrawFill);
3421 if (menuCheckToggleTAZRelOnlyFrom->shown()) {
3422 commands.push_back(menuCheckToggleTAZRelOnlyFrom);
3424 if (menuCheckToggleTAZRelOnlyTo->shown()) {
3425 commands.push_back(menuCheckToggleTAZRelOnlyTo);
3432 if (menuCheckShowAdditionals->shown()) {
3433 return (menuCheckShowAdditionals->amChecked() == TRUE);
3442 if (menuCheckShowShapes->shown()) {
3443 return (menuCheckShowShapes->amChecked() == TRUE);
3452 if (menuCheckShowDemandElements->shown()) {
3453 return (menuCheckShowDemandElements->amChecked() == TRUE);
3462 return (menuCheckToggleTAZRelDrawing->amChecked() != TRUE);
3468 if (menuCheckToggleTAZDrawFill->shown()) {
3469 return (menuCheckToggleTAZDrawFill->amChecked() != TRUE);
3478 if (menuCheckToggleTAZRelOnlyFrom->shown()) {
3479 return (menuCheckToggleTAZRelOnlyFrom->amChecked() != TRUE);
3488 if (menuCheckToggleTAZRelOnlyTo->shown()) {
3489 return (menuCheckToggleTAZRelOnlyTo->amChecked() != TRUE);
3500 myViewNet(viewNet) {
3506 const auto staticTooltip = myViewNet->myViewParent->getGNEAppWindows()->getStaticTooltipMenu();
3508 FXLabel* genericDataLabel =
new FXLabel(myViewNet->myViewParent->getGNEAppWindows()->getToolbarsGrip().intervalBar,
3510 genericDataLabel->create();
3512 myGenericDataTypesComboBox =
new MFXComboBoxIcon(myViewNet->myViewParent->getGNEAppWindows()->getToolbarsGrip().intervalBar,
3515 myGenericDataTypesComboBox->create();
3517 myGenericDataTypesComboBox->appendIconItem(
"<all>");
3522 FXLabel* dataSetLabel =
new FXLabel(myViewNet->myViewParent->getGNEAppWindows()->getToolbarsGrip().intervalBar,
3524 dataSetLabel->create();
3526 myDataSetsComboBox =
new MFXComboBoxIcon(myViewNet->myViewParent->getGNEAppWindows()->getToolbarsGrip().intervalBar,
3529 myDataSetsComboBox->create();
3531 myIntervalCheckBox =
new FXCheckButton(myViewNet->myViewParent->getGNEAppWindows()->getToolbarsGrip().intervalBar,
3533 myIntervalCheckBox->create();
3535 myBeginTextField =
new FXTextField(myViewNet->myViewParent->getGNEAppWindows()->getToolbarsGrip().intervalBar,
3537 myBeginTextField->create();
3539 myEndTextField =
new FXTextField(myViewNet->myViewParent->getGNEAppWindows()->getToolbarsGrip().intervalBar,
3541 myEndTextField->create();
3543 FXLabel* parameterLabel =
new FXLabel(myViewNet->myViewParent->getGNEAppWindows()->getToolbarsGrip().intervalBar,
3545 parameterLabel->create();
3547 myParametersComboBox =
new MFXComboBoxIcon(myViewNet->myViewParent->getGNEAppWindows()->getToolbarsGrip().intervalBar,
3550 myParametersComboBox->create();
3552 myViewNet->myViewParent->getGNEAppWindows()->getToolbarsGrip().intervalBar->recalc();
3559 updateIntervalBar();
3561 myViewNet->myViewParent->getGNEAppWindows()->getToolbarsGrip().intervalBar->show();
3568 myViewNet->myViewParent->getGNEAppWindows()->getToolbarsGrip().intervalBar->hide();
3575 if (myUpdateInterval && myViewNet->getNet()) {
3582 myParameters.clear();
3584 for (
const auto& dataSet : myViewNet->getNet()->getAttributeCarriers()->getDataSets()) {
3586 myDataSets.push_back(dataSet.second->getID());
3588 for (
const auto& interval : dataSet.second->getDataIntervalChildren()) {
3591 begin = interval.first;
3594 end = interval.first;
3597 for (
const auto& genericData : interval.second->getGenericDataChildren()) {
3599 for (
const auto& parameter : genericData->getParametersMap()) {
3600 myParameters.insert(parameter.first);
3606 const std::string previousDataSet = myDataSetsComboBox->getText().text();
3608 const std::string previousBegin = (myIntervalCheckBox->getCheck() == TRUE) ? myBeginTextField->getText().text() :
"";
3609 const std::string previousEnd = (myIntervalCheckBox->getCheck() == TRUE) ? myEndTextField->getText().text() :
"";
3611 const std::string previousParameter = myParametersComboBox->getText().text();
3613 myDataSetsComboBox->clearItems();
3614 myParametersComboBox->clearItems();
3616 myDataSetsComboBox->appendIconItem(
"<all>");
3617 myParametersComboBox->appendIconItem(
"<all>");
3619 for (
const auto& dataSet : myDataSets) {
3620 myDataSetsComboBox->appendIconItem(dataSet.c_str());
3623 myBeginTextField->setText(
toString(begin).c_str());
3624 myEndTextField->setText(
toString(end).c_str());
3626 for (
const auto& parameter : myParameters) {
3627 myParametersComboBox->appendIconItem(parameter.c_str());
3630 myDataSetsComboBox->setCurrentItem(0, FALSE);
3631 for (
int i = 0; i < myDataSetsComboBox->getNumItems(); i++) {
3632 if (myDataSetsComboBox->getItemText(i) == previousDataSet) {
3633 myDataSetsComboBox->setCurrentItem(i);
3637 if (myIntervalCheckBox->getCheck() == TRUE) {
3638 myBeginTextField->setText(previousBegin.c_str());
3639 myEndTextField->setText(previousEnd.c_str());
3642 myParametersComboBox->setCurrentItem(0, FALSE);
3643 for (
int i = 0; i < myParametersComboBox->getNumItems(); i++) {
3644 if (myParametersComboBox->getItemText(i) == previousParameter) {
3645 myParametersComboBox->setCurrentItem(i);
3652 enableIntervalBar();
3654 disableIntervalBar();
3657 myUpdateInterval =
false;
3664 myUpdateInterval =
true;
3670 if (myGenericDataTypesComboBox->isEnabled() && (myGenericDataTypesComboBox->getTextColor() ==
GUIDesignTextColorBlack)) {
3685 if (!myDataSetsComboBox->isEnabled() ||
3686 (myDataSetsComboBox->getCurrentItem() == 0) ||
3697 if (!myIntervalCheckBox->isEnabled() || (myIntervalCheckBox->getCheck() == FALSE)) {
3700 return GNEAttributeCarrier::parse<double>(myBeginTextField->getText().text());
3707 if (!myIntervalCheckBox->isEnabled() || (myIntervalCheckBox->getCheck() == FALSE)) {
3710 return GNEAttributeCarrier::parse<double>(myEndTextField->getText().text());
3717 if (!myParametersComboBox->isEnabled() ||
3718 (myParametersComboBox->getCurrentItem() == 0) ||
3722 return myParametersComboBox->getText().text();
3729 if ((myGenericDataTypesComboBox->getText() ==
"<all>") ||
3738 myViewNet->updateViewNet();
3745 if (std::find(myDataSets.begin(), myDataSets.end(), myDataSetsComboBox->getText().text()) != myDataSets.end()) {
3751 myViewNet->updateViewNet();
3758 if (myIntervalCheckBox->isEnabled() && (myIntervalCheckBox->getCheck() == TRUE)) {
3759 myBeginTextField->enable();
3760 myEndTextField->enable();
3762 myBeginTextField->disable();
3763 myEndTextField->disable();
3766 myViewNet->updateViewNet();
3772 if (myBeginTextField->getText().empty()) {
3773 myBeginTextField->setText(
toString(myViewNet->getNet()->getDataSetIntervalMinimumBegin()).c_str());
3775 }
else if (GNEAttributeCarrier::canParse<double>(myBeginTextField->getText().text())) {
3781 myViewNet->updateViewNet();
3787 if (myEndTextField->getText().empty()) {
3788 myEndTextField->setText(
toString(myViewNet->getNet()->getDataSetIntervalMaximumEnd()).c_str());
3790 }
else if (GNEAttributeCarrier::canParse<double>(myEndTextField->getText().text())) {
3796 myViewNet->updateViewNet();
3803 if (myParameters.count(myParametersComboBox->getText().text()) > 0) {
3809 myViewNet->updateViewNet();
3817 myGenericDataTypesComboBox->enable();
3818 myDataSetsComboBox->enable();
3819 myIntervalCheckBox->enable();
3820 if (myIntervalCheckBox->getCheck() == TRUE) {
3821 myBeginTextField->enable();
3822 myEndTextField->enable();
3824 myBeginTextField->disable();
3825 myEndTextField->disable();
3827 myParametersComboBox->enable();
3834 myGenericDataTypesComboBox->disable();
3835 myDataSetsComboBox->disable();
3836 myIntervalCheckBox->disable();
3837 myBeginTextField->disable();
3838 myEndTextField->disable();
3839 myParametersComboBox->disable();
3847 myViewNet(viewNet) {
3854 auto gripModes = myViewNet->getViewParent()->getGNEAppWindows()->getToolbarsGrip().modes;
3856 auto tooltipMenu = myViewNet->myViewParent->getGNEAppWindows()->getStaticTooltipMenu();
3859 std::string(
"\t") +
TL(
"Inspect mode") + std::string(
"\t") +
TL(
"Mode to inspect elements and change their attributes. (I)"),
3861 inspectButton->create();
3864 std::string(
"\t") +
TL(
"Delete mode") + std::string(
"\t") +
TL(
"Mode for deleting elements. (D)"),
3866 deleteButton->create();
3869 std::string(
"\t") +
TL(
"Select mode") + std::string(
"\t") +
TL(
"Mode for selecting elements. (S)"),
3871 selectButton->create();
3873 gripModes->recalc();
3879 inspectButton->show();
3880 deleteButton->show();
3881 selectButton->show();
3887 inspectButton->hide();
3888 deleteButton->hide();
3889 selectButton->hide();
3895 inspectButton->setChecked(
false);
3896 deleteButton->setChecked(
false);
3897 selectButton->setChecked(
false);
3903 inspectButton->update();
3904 deleteButton->update();
3905 selectButton->update();
3913 myViewNet(viewNet) {
3920 auto gripModes = myViewNet->getViewParent()->getGNEAppWindows()->getToolbarsGrip().modes;
3922 auto tooltipMenu = myViewNet->myViewParent->getGNEAppWindows()->getStaticTooltipMenu();
3925 std::string(
"\t") +
TL(
"Move mode") + std::string(
"\t") +
TL(
"Mode for moving elements. (M)"),
3927 moveNetworkElementsButton->create();
3930 std::string(
"\t") +
TL(
"Edge mode") + std::string(
"\t") +
TL(
"Mode for creating junctions and edges. (E)"),
3932 createEdgeButton->create();
3935 std::string(
"\t") +
TL(
"Traffic light mode") + std::string(
"\t") +
TL(
"Mode for editing traffic lights over junctions. (T)"),
3937 trafficLightButton->create();
3940 std::string(
"\t") +
TL(
"Connection mode") + std::string(
"\t") +
TL(
"Mode for editing connections between lanes. (C)"),
3942 connectionButton->create();
3945 std::string(
"\t") +
TL(
"Prohibition mode") + std::string(
"\t") +
TL(
"Mode for editing connection prohibitions. (H)"),
3947 prohibitionButton->create();
3950 std::string(
"\t") +
TL(
"Crossing mode") + std::string(
"\t") +
TL(
"Mode for creating crossings between edges. (R)"),
3952 crossingButton->create();
3955 std::string(
"\t") +
TL(
"Additional mode") + std::string(
"\t") +
TL(
"Mode for creating additional elements. (A)"),
3957 additionalButton->create();
3960 std::string(
"\t") +
TL(
"Wire mode") + std::string(
"\t") +
TL(
"Mode for editing overhead wires. (W)"),
3962 wireButton->create();
3965 std::string(
"\t") +
TL(
"TAZ mode") + std::string(
"\t") +
TL(
"Mode for creating Traffic Assignment Zones. (Z)"),
3967 TAZButton->create();
3970 std::string(
"\t") +
TL(
"Polygon mode") + std::string(
"\t") +
TL(
"Mode for creating polygons and POIs. (P)"),
3972 shapeButton->create();
3975 std::string(
"\t") +
TL(
"Decal mode") + std::string(
"\t") +
TL(
"Mode for editing decals. (U)"),
3977 decalButton->create();
3979 gripModes->recalc();
3986 if (myViewNet->getEditModes().isJuPedSimView()) {
3987 moveNetworkElementsButton->show();
3988 createEdgeButton->show();
3989 connectionButton->hide();
3990 trafficLightButton->hide();
3991 additionalButton->show();
3992 crossingButton->show();
3994 shapeButton->show();
3995 prohibitionButton->hide();
3997 decalButton->hide();
3999 moveNetworkElementsButton->show();
4000 createEdgeButton->show();
4001 connectionButton->show();
4002 trafficLightButton->show();
4003 additionalButton->show();
4004 crossingButton->show();
4006 shapeButton->show();
4007 prohibitionButton->show();
4009 decalButton->show();
4016 moveNetworkElementsButton->hide();
4017 createEdgeButton->hide();
4018 connectionButton->hide();
4019 trafficLightButton->hide();
4020 additionalButton->hide();
4021 crossingButton->hide();
4023 shapeButton->hide();
4024 prohibitionButton->hide();
4026 decalButton->hide();
4032 moveNetworkElementsButton->setChecked(
false);
4033 createEdgeButton->setChecked(
false);
4034 connectionButton->setChecked(
false);
4035 trafficLightButton->setChecked(
false);
4036 additionalButton->setChecked(
false);
4037 crossingButton->setChecked(
false);
4038 TAZButton->setChecked(
false);
4039 shapeButton->setChecked(
false);
4040 prohibitionButton->setChecked(
false);
4041 wireButton->setChecked(
false);
4042 decalButton->setChecked(
false);
4048 moveNetworkElementsButton->update();
4049 createEdgeButton->update();
4050 connectionButton->update();
4051 trafficLightButton->update();
4052 additionalButton->update();
4053 crossingButton->update();
4054 TAZButton->update();
4055 shapeButton->update();
4056 prohibitionButton->update();
4057 wireButton->update();
4058 decalButton->update();
4066 myViewNet(viewNet) {
4073 auto gripModes = myViewNet->getViewParent()->getGNEAppWindows()->getToolbarsGrip().modes;
4075 auto tooltipMenu = myViewNet->myViewParent->getGNEAppWindows()->getStaticTooltipMenu();
4078 std::string(
"\t") +
TL(
"Move mode") + std::string(
"\t") +
TL(
"Mode for moving elements. (M)"),
4080 moveDemandElementsButton->create();
4083 std::string(
"\t") +
TL(
"Route mode") + std::string(
"\t") +
TL(
"Mode for creating routes. (R)"),
4085 routeButton->create();
4088 std::string(
"\t") +
TL(
"Route distribution mode") + std::string(
"\t") +
TL(
"Mode for creating and editing rout distributions. (W)"),
4090 routeDistributionButton->create();
4093 std::string(
"\t") +
TL(
"Vehicle mode") + std::string(
"\t") +
TL(
"Mode for creating vehicles. (V)"),
4095 vehicleButton->create();
4098 std::string(
"\t") +
TL(
"Type mode") + std::string(
"\t") +
TL(
"Mode for creating types (of vehicles, persons and containers). (T)"),
4100 typeButton->create();
4103 std::string(
"\t") +
TL(
"Type distribution mode") + std::string(
"\t") +
TL(
"Mode for creating and editing type distribution. (U)"),
4105 typeDistributionButton->create();
4108 std::string(
"\t") +
TL(
"Stop mode") + std::string(
"\t") +
TL(
"Mode for creating stops. (A)"),
4110 stopButton->create();
4113 std::string(
"\t") +
TL(
"Person mode") + std::string(
"\t") +
TL(
"Mode for creating persons. (P)"),
4115 personButton->create();
4118 std::string(
"\t") +
TL(
"Person plan mode") + std::string(
"\t") +
TL(
"Mode for creating person plans. (L)"),
4120 personPlanButton->create();
4123 std::string(
"\t") +
TL(
"Container mode") + std::string(
"\t") +
TL(
"Mode for creating containers. (C)"),
4125 containerButton->create();
4128 std::string(
"\t") +
TL(
"Container plan mode") + std::string(
"\t") +
TL(
"Mode for creating container plans. (H)"),
4130 containerPlanButton->create();
4132 gripModes->recalc();
4138 if (myViewNet->getEditModes().isJuPedSimView()) {
4139 moveDemandElementsButton->hide();
4140 routeButton->show();
4141 routeDistributionButton->show();
4142 vehicleButton->hide();
4144 typeDistributionButton->show();
4146 personButton->show();
4147 personPlanButton->show();
4148 containerButton->hide();
4149 containerPlanButton->hide();
4151 moveDemandElementsButton->show();
4152 routeButton->show();
4153 routeDistributionButton->show();
4154 vehicleButton->show();
4156 typeDistributionButton->show();
4158 personButton->show();
4159 personPlanButton->show();
4160 containerButton->show();
4161 containerPlanButton->show();
4168 moveDemandElementsButton->hide();
4169 routeButton->hide();
4170 routeDistributionButton->hide();
4171 vehicleButton->hide();
4173 typeDistributionButton->hide();
4175 personButton->hide();
4176 personPlanButton->hide();
4177 containerButton->hide();
4178 containerPlanButton->hide();
4184 moveDemandElementsButton->setChecked(
false);
4185 routeButton->setChecked(
false);
4186 routeDistributionButton->setChecked(
false);
4187 vehicleButton->setChecked(
false);
4188 typeButton->setChecked(
false);
4189 typeDistributionButton->setChecked(
false);
4190 stopButton->setChecked(
false);
4191 personButton->setChecked(
false);
4192 personPlanButton->setChecked(
false);
4193 containerButton->setChecked(
false);
4194 containerPlanButton->setChecked(
false);
4200 moveDemandElementsButton->update();
4201 routeButton->update();
4202 routeDistributionButton->update();
4203 vehicleButton->update();
4204 typeButton->update();
4205 typeDistributionButton->update();
4206 stopButton->update();
4207 personButton->update();
4208 personPlanButton->update();
4209 containerButton->update();
4210 containerPlanButton->update();
4218 myViewNet(viewNet) {
4225 auto gripModes = myViewNet->getViewParent()->getGNEAppWindows()->getToolbarsGrip().modes;
4227 auto tooltipMenu = myViewNet->myViewParent->getGNEAppWindows()->getStaticTooltipMenu();
4230 std::string(
"\t") +
TL(
"Edge data mode") + std::string(
"\t") +
TL(
"Mode for creating edge datas. (E)"),
4232 edgeDataButton->create();
4235 std::string(
"\t") +
TL(
"Edge relation data mode") + std::string(
"\t") +
TL(
"Mode for creating edge relation datas. (R)"),
4237 edgeRelDataButton->create();
4240 std::string(
"\t") +
TL(
"TAZ relation data mode") + std::string(
"\t") +
TL(
"Mode for creating TAZ relation datas. (Z)"),
4242 TAZRelDataButton->create();
4245 std::string(
"\t") +
TL(
"MeanData mode") + std::string(
"\t") +
TL(
"Mode for MeanData elements. (M)"),
4247 meanDataButton->create();
4249 gripModes->recalc();
4255 edgeDataButton->show();
4256 edgeRelDataButton->show();
4257 TAZRelDataButton->show();
4258 meanDataButton->show();
4264 edgeDataButton->hide();
4265 edgeRelDataButton->hide();
4266 TAZRelDataButton->hide();
4267 meanDataButton->hide();
4273 edgeDataButton->setChecked(
false);
4274 edgeRelDataButton->setChecked(
false);
4275 TAZRelDataButton->setChecked(
false);
4276 meanDataButton->setChecked(
false);
4282 edgeDataButton->update();
4283 edgeRelDataButton->update();
4284 TAZRelDataButton->update();
4285 meanDataButton->update();
4300 if (element && (myEditedNetworkElement ==
nullptr)) {
4302 myPreviousNetworkEditMode = myViewNet->myEditModes.networkEditMode;
4306 myEditedNetworkElement = element;
4310 myViewNet->updateViewNet();
4318 if (myEditedNetworkElement !=
nullptr) {
4320 myEditedNetworkElement->setShapeEdited(
false);
4322 myEditedNetworkElement =
nullptr;
4324 if (myViewNet->myEditModes.networkEditMode != myPreviousNetworkEditMode) {
4325 myViewNet->myEditModes.setNetworkEditMode(myPreviousNetworkEditMode);
4334 if (myEditedNetworkElement !=
nullptr) {
4336 stopEditCustomShape();
4343 return myEditedNetworkElement;
4353 const double size,
const double offsetx,
const double offsety) {
4355 if (checkDrawing(d, AC, type, exaggeration)) {
4361 glTranslated(offsetx, offsety, 0);
4363 glRotated(180, 0, 0, 1);
4387 if (exaggeration == 0) {
4391 if (viewNet->getEditModes().isCurrentSupermodeNetwork() &&
4413const std::vector<RGBColor>&
4438 }
else if (value >= max) {
4442 const double procent = ((value - min) * 100) / (max - min);
4446 }
else if (procent >= 100) {
4456std::vector<GUIGlObject*>
4458 std::vector<GUIGlObject*> filteredGLObjects;
4459 if (GLObjects.size() > 0) {
4460 const auto firstLayer = GLObjects.front()->getType();
4461 for (
const auto& GLObject : GLObjects) {
4463 (GLO_RIDE <= GLObject->getType()) && (GLObject->getType() <=
GLO_TRANSHIP)) {
4464 filteredGLObjects.push_back(GLObject);
4466 (GLO_STOP <= GLObject->getType()) && (GLObject->getType() <=
GLO_STOP_PLAN)) {
4467 filteredGLObjects.push_back(GLObject);
4469 (GLO_VEHICLE <= GLObject->getType()) && (GLObject->getType() <=
GLO_ROUTEFLOW)) {
4470 filteredGLObjects.push_back(GLObject);
4472 (GLO_PERSON <= GLObject->getType()) && (GLObject->getType() <=
GLO_PERSONFLOW)) {
4473 filteredGLObjects.push_back(GLObject);
4475 (GLO_CONTAINER <= GLObject->getType()) && (GLObject->getType() <=
GLO_CONTAINERFLOW)) {
4476 filteredGLObjects.push_back(GLObject);
4477 }
else if (GLObject->getType() == firstLayer) {
4478 filteredGLObjects.push_back(GLObject);
4482 return filteredGLObjects;
DataEditMode
enum for data edit modes
@ DATA_SELECT
mode for selecting data elements
@ DATA_INSPECT
mode for inspecting data elements
@ DATA_DELETE
mode for deleting data elements
Supermode
@brie enum for supermodes
@ NETWORK
Network mode (Edges, junctions, etc..)
@ DATA
Data mode (edgeData, LaneData etc..)
@ DEMAND
Demand mode (Routes, Vehicles etc..)
NetworkEditMode
@brie enum for network edit modes
@ NETWORK_DELETE
mode for deleting network elements
@ NETWORK_MOVE
mode for moving network elements
@ NETWORK_WIRE
Mode for editing wires.
@ NETWORK_CREATE_EDGE
mode for creating new edges
@ NETWORK_TLS
mode for editing tls
@ NETWORK_SELECT
mode for selecting network elements
@ NETWORK_INSPECT
mode for inspecting network elements
@ NETWORK_PROHIBITION
Mode for editing connection prohibitions.
@ NETWORK_NONE
empty Network mode
@ NETWORK_CONNECT
mode for connecting lanes
DemandEditMode
@brie enum for demand edit modes
@ DEMAND_INSPECT
mode for inspecting demand elements
@ DEMAND_DELETE
mode for deleting demand elements
@ DEMAND_SELECT
mode for selecting demand elements
@ DEMAND_MOVE
mode for moving demand elements
@ MID_GNE_NETWORKVIEWOPTIONS_AUTOOPPOSITEEDGES
automatically create opposite edge
@ MID_HOTKEY_CTRL_SHIFT_B_SAVEDATAELEMENTS
save Data Elements
@ MID_HOTKEY_F3_SUPERMODE_DEMAND
select demand supermode in netedit
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLPERSONPLANS
show all person plans
@ MID_GNE_DATAVIEWOPTIONS_TAZRELDRAWING
toggle TAZRel drawing
@ MID_HOTKEY_U_MODE_DECAL_TYPEDISTRIBUTION
hotkey for mode decal AND type distribution
@ MID_GNE_NETWORKVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
@ MID_GNE_NETWORKVIEWOPTIONS_MOVEELEVATION
move elevation instead of x,y
@ MID_GNE_NETWORKVIEWOPTIONS_HIDECONNECTIONS
hide connections
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWCONNECTIONS
show connections
@ MID_GNE_INTERVALBAR_BEGIN
begin changed in InterbalBar
@ MID_GNE_DATAVIEWOPTIONS_TAZRELONLYTO
toggle draw TAZRel only to
@ MID_GNE_DATAVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWTAZELEMENTS
show TAZ elements
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKPERSON
lock person
@ MID_HOTKEY_Z_MODE_TAZ_TAZREL
hotkey for mode editing TAZ and TAZRel
@ MID_GNE_DEMANDVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
@ MID_HOTKEY_A_MODE_STARTSIMULATION_ADDITIONALS_STOPS
hotkey for start simulation in SUMO and set editing mode additionals AND stops in netedit
@ MID_GNE_TOGGLE_TIMEFORMAT
switch time format
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWGRID
show grid
@ MID_HOTKEY_CTRL_SHIFT_D_SAVEDEMANDELEMENTS
Save Demand Elements.
@ MID_HOTKEY_CTRL_S_STOPSIMULATION_SAVENETWORK
Stop the simulation in SUMO and save network in netedit.
@ MID_HOTKEY_D_MODE_SINGLESIMULATIONSTEP_DELETE
hotkey for perform a single simulation step in SUMO and set delete mode in netedit
@ MID_GNE_NETWORKVIEWOPTIONS_CHAINEDGES
create edges in chain mode
@ MID_GNE_DATAVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
@ MID_HOTKEY_C_MODE_CONNECT_CONTAINER
hotkey for mode connecting lanes AND container
@ MID_HOTKEY_H_MODE_PROHIBITION_CONTAINERPLAN
hotkey for mode prohibition AND container plan
@ MID_HOTKEY_W_MODE_WIRE_ROUTEDISTRIBUTION
hotkey for mode editing overhead wires AND route distributions
@ MID_HOTKEY_T_MODE_TLS_TYPE
hotkey for mode editing TLS AND Vehicle Types
@ MID_GNE_DEMANDVIEWOPTIONS_HIDESHAPES
hide shapes
@ MID_GNE_DATAVIEWOPTIONS_SHOWADDITIONALS
show additionals
@ MID_GNE_NETWORKVIEWOPTIONS_DRAWFILLEDWALKINGAREAS
draw filled walking areas
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWBUBBLES
show junctions as bubbles
@ MID_GNE_INTERVALBAR_END
end changed in InterbalBar
@ MID_GNE_NETWORKVIEWOPTIONS_EXTENDSELECTION
extend selection
@ MID_HOTKEY_S_MODE_STOPSIMULATION_SELECT
hotkey for stop simulation in SUMO and set select mode in netedit
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWSUBADDITIONALS
show sub-additionals
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLCONTAINERPLANS
show all container plans
@ MID_GNE_VIEW_DEFAULT
set default view
@ MID_HOTKEY_F4_SUPERMODE_DATA
select data supermode in netedit
@ MID_GNE_VIEW_JUPEDSIM
set juPedSim view
@ MID_GNE_INTERVALBAR_PARAMETER
parameter changed in InterbalBar
@ MID_HOTKEY_R_MODE_CROSSING_ROUTE_EDGERELDATA
hotkey for mode editing crossing, routes and edge rel datas
@ MID_GNE_DATAVIEWOPTIONS_TAZDRAWFILL
toggle draw TAZ fill
@ MID_HOTKEY_L_MODE_PERSONPLAN
hotkey for mode person plan
@ MID_HOTKEY_V_MODE_VEHICLE
hotkey for mode create vehicles
@ MID_HOTKEY_I_MODE_INSPECT
hotkey for mode inspecting object attributes
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWPOLYGONSYMBOLS
show polygon symbols
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
@ MID_HOTKEY_CTRL_SHIFT_E_SAVENETEDITCONFIG
save netedit Config
@ MID_GNE_DEMANDVIEWOPTIONS_HIDENONINSPECTED
hide non-inspected demand element
@ MID_GNE_INTERVALBAR_GENERICDATATYPE
generic data selected
@ MID_GNE_NETWORKVIEWOPTIONS_MERGEAUTOMATICALLY
don't ask before merging junctions
@ MID_HOTKEY_CTRL_SHIFT_M_SAVEMEANDATAELEMENTS
save Mean Datas
@ MID_GNE_NETWORKVIEWOPTIONS_CHANGEALLPHASES
change all phases
@ MID_GNE_DATAVIEWOPTIONS_SHOWSHAPES
show shapes
@ MID_HOTKEY_E_MODE_EDGE_EDGEDATA
hotkey for mode adding edges AND edgeDatas
@ MID_GNE_DATAVIEWOPTIONS_TAZRELONLYFROM
toggle draw TAZRel only from
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
@ MID_GNE_DEMANDVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWOVERLAPPEDROUTES
show overlapped routes
@ MID_HOTKEY_CTRL_SHIFT_S_SAVESUMOCONFIG
save SUMOConfig (SUMO AND netedit)
@ MID_GNE_INTERVALBAR_DATASET
data set selected
@ MID_HOTKEY_M_MODE_MOVE_MEANDATA
hotkey for mode moving element AND mean data
@ MID_HOTKEY_F2_SUPERMODE_NETWORK
select network supermode in netedit
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKCONTAINER
lock container
@ MID_GNE_NETWORKVIEWOPTIONS_SELECTEDGES
select edges
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWTRIPS
show all trips
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEGRID
show grid
@ MID_GNE_INTERVALBAR_LIMITED
enable/disable show data elements by interval
@ MID_HOTKEY_P_MODE_POLYGON_PERSON
hotkey for mode creating polygons
@ MID_HOTKEY_CTRL_SHIFT_A_SAVEADDITIONALELEMENTS
Save Additional Elements.
#define GUIDesignTextColorRed
red color (for invalid text)
#define GUIDesignButtonPopup
checkable button placed in popup (for example, locate buttons)
#define GUIDesignButtonToolbar
little button with icon placed in navigation toolbar
#define GUIDesignButtonLeft
button extended over over Frame with thick and raise frame
#define GUIDesignComboBoxFixed(customWidth)
comboBox with thick frame, fixed width
#define GUIDesignTextFieldNCol
Num of column of text field.
#define GUIDesignTLSTableCheckableButtonIcon
checkable button only with icon used in TLSTable
#define GUIDesignComboBoxVisibleItemsFixed
combo box size fixed
#define GUIDesignTextColorBlack
black color (for correct text)
#define GUIDesignTextFieldFixedRestricted(width, type)
text field with fixed width
#define GUIDesignMFXCheckableButtonSquare
#define GUIDesignButtonToolbarLocator
little checkable button with icon placed in navigation toolbar used specify for Locator
#define GUIDesignMFXCheckableButtonSupermode
checkable button with icon placed in navigation toolbar for supermodes
#define GUIDesignCheckButtonAttribute
checkButton without thick extended over the frame used for attributes
#define GUIDesignLabelThickedFixed(width)
label thicked, icon before text, text centered and custom width
@ GLO_EDGERELDATA
edge relation data
@ GLO_TAZRELDATA
TAZ relation data.
@ GLO_WALKINGAREA
a walkingArea
@ GLO_JPS_WALKABLEAREA
walkable area
@ GLO_TESTELEMENT
test element (used in netedit)
@ GLO_TRANSHIP
a container tranship
@ GLO_STOPPING_PLACE_LAST
reserved GLO type for packing all StoppingPlace elements
@ GLO_STOP_PLAN
a stop plan stop
@ GLO_ROUTEFLOW
a routeFlow
@ GLO_WIRE
reserved GLO type for packing all wire elements
@ GLO_TAZ
Traffic Assignment Zones (TAZs)
@ GLO_CONTAINER
a container
@ GLO_JPS_OBSTACLE
obstacles
@ GLO_CONNECTION
a connection
@ GLO_ADDITIONALELEMENT
reserved GLO type for packing all additionals elements
@ GLO_PERSONTRIP
a person trip
@ GLO_STOPPING_PLACE
reserved GLO type for packing all StoppingPlace elements
@ GLO_TRANSPORT
a container transport
@ GLO_POI
poi (over view, geo and lane)
@ GLO_RECTANGLESELECTION
rectangle selection shape (used in netedit)
@ GLO_CONTAINERFLOW
a person flow
@ GLO_PERSONFLOW
a person flow
@ GLO_TRACTIONSUBSTATION
a segment of an overhead line
@ GLO_ROUTE_DISTRIBUTION
route distribution
@ GLO_LOCKICON
Lock icon (used in netedit)
GUIViewObjectsHandler gViewObjectsHandler
@ DATAMODE_CHECKBOX_SHOWADDITIONALS
@ NETWORKMODE_CHECKBOX_BUBBLES
@ DATAMODE_CHECKBOX_TAZRELONLYFROM
@ NETWORKMODE_CHECKBOX_SHOWPOLYGONSYMBOLS
@ SAVE_ADDITIONALELEMENTS
@ DEMANDMODE_CHECKBOX_HIDENONINSPECTEDDEMANDELEMENTS
@ NETWORKMODE_CHECKBOX_HIDECONNECTIONS
@ DEMANDMODE_CHECKBOX_SHOWTRIPS
@ COMMONMODE_CHECKBOX_TOGGLEDRAWJUNCTIONSHAPE
@ DATAMODE_CHECKBOX_SHOWSHAPES
@ NETWORKMODE_CHECKBOX_SELECTEDGES
@ COMMONMODE_CHECKBOX_SHOWDEMANDELEMENTS
@ DEMANDMODE_CHECKBOX_LOCKPERSON
@ NETWORKMODE_CHECKBOX_MERGEAUTOMATICALLY
@ NETWORKMODE_CHECKBOX_APPLYTOALLPHASES
@ DATAMODE_CHECKBOX_TAZRELONLYTO
@ NETWORKMODE_CHECKBOX_AUTOSELECTJUNCTIONS
@ DATAMODE_CHECKBOX_TAZRELDRAWING
@ NETWORKMODE_CHECKBOX_SHOWCONNECTIONS
@ DEMANDMODE_CHECKBOX_SHOWPERSONPLANS
@ DEMANDMODE_CHECKBOX_HIDESHAPES
@ DATAMODE_CHECKBOX_TAZDRAWFILL
@ NETWORKMODE_CHECKBOX_ELEVATION
@ COMMONMODE_CHECKBOX_SPREADVEHICLE
@ DEMANDMODE_CHECKBOX_LOCKCONTAINER
@ NETWORKMODE_CHECKBOX_SHOWSUBADDITIONALS
@ NETWORKMODE_CHECKBOX_SHOWTAZELEMENTS
@ NETWORKMODE_CHECKBOX_DRAWFILLEDWALKINGAREAS
@ NETWORKMODE_CHECKBOX_CHAIN
@ DEMANDMODE_CHECKBOX_SHOWOVERLAPPEDROUTES
@ COMMONMODE_CHECKBOX_TOGGLEGRID
@ DEMANDMODE_CHECKBOX_SHOWCONTAINERPLANS
@ NETWORKMODE_CHECKBOX_TWOWAY
#define WRITE_ERRORF(...)
SumoXMLTag
Numbers representing SUMO-XML - element names.
@ SUMO_TAG_EDGEREL
a relation between two edges
@ SUMO_TAG_TAZ
a traffic assignment zone
@ SUMO_TAG_NOTHING
invalid tag, must be the last one
@ SUMO_TAG_CONNECTION
connectioon between two lanes
@ SUMO_TAG_WALKINGAREA
walking area for pedestrians
@ SUMO_TAG_JUNCTION
begin/end of the description of a junction
@ SUMO_TAG_CROSSING
crossing between edges for pedestrians
@ SUMO_TAG_LANE
begin/end of the description of a single lane
@ SUMO_TAG_TAZREL
a relation between two TAZs
@ SUMO_TAG_EDGE
begin/end of the description of an edge
@ GNE_ATTR_SELECTED
element is selected
const double INVALID_DOUBLE
invalid double
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
A class that stores a 2D geometrical boundary.
void add(double x, double y, double z=0)
Makes the boundary include the given coordinate.
PositionVector getShape(const bool closeShape) const
get position vector (shape) based on this boundary
void addParentID(const SumoXMLTag tag, const std::string &ID)
add parent (string) attribute into current SumoBaseObject node
static void setColor(const RGBColor &c)
Sets the gl-color to this value.
static void popMatrix()
pop matrix
static void pushMatrix()
push matrix
bool isAttributeCarrierSelected() const
check if attribute carrier is selected
bool isMarkedForDrawingFront() const
check if this AC is marked for drawing front
virtual GNEMoveElement * getMoveElement() const =0
get GNEMoveElement associated with this AttributeCarrier
const GNETagProperties * getTagProperty() const
get tagProperty associated with this Attribute Carrier
void unmarkForDrawingFront()
unmark for drawing front
GNENet * getNet() const
get pointer to net
An Element which don't belong to GNENet but has influence in the simulation.
bool isConvexAngle() const
check if edge makes a convex angle [0 - 180) degrees
NBEdge * getNBEdge() const
returns the internal NBEdge
An Element which don't belong to GNENet but has influence in the simulation.
const GNEHierarchicalContainerParents< GNEDemandElement * > & getParentDemandElements() const
get parent demand elements
const GNEHierarchicalContainerChildren< GNEDemandElement * > & getChildDemandElements() const
return child demand elements
static void commitMove(const GNEViewNet *viewNet, GNEMoveOperation *moveOperation, const GNEMoveOffset &offset, GNEUndoList *undoList)
commit move element for the given offset
static void moveElement(const GNEViewNet *viewNet, GNEMoveOperation *moveOperation, const GNEMoveOffset &offset)
move element the for given offset (note: offset can be X-Y-0, 0-0-Z or X-Y-Z)
GNEJunction * retrieveJunction(const std::string &id, bool hardFail=true) const
get junction by id
GNEDataSet * retrieveDataSet(const std::string &id, bool hardFail=true) const
Returns the named data set.
GNEDemandElement * retrieveDemandElement(SumoXMLTag type, const std::string &id, bool hardFail=true) const
Returns the named demand element.
GNENetHelper::AttributeCarriers * getAttributeCarriers() const
get all attribute carriers used in this net
GNEViewNet * getViewNet() const
get view net (used for simplify code)
void setShapeEdited(const bool value)
set shape edited
An Element which don't belong to GNENet but has influence in the simulation.
bool isNetworkElement() const
network elements
bool isDataElement() const
return true if tag correspond to a data element
bool isDemandElement() const
return true if tag correspond to a demand element
bool isAdditionalElement() const
return true if tag correspond to an additional element (note: this include TAZ, shapes and wires)
bool isInspectingElements() const
check if we're inspecting at least one element
void inspectAC(GNEAttributeCarrier *AC)
void inspectACs(const std::vector< GNEAttributeCarrier * > &ACs)
inspect multiple ACs
bool isACInspected(GNEAttributeCarrier *AC) const
const std::unordered_set< GNEAttributeCarrier * > & getACs() const
get hash table with all inspected ACs
GNEAttributeCarrier * getFirstAC() const
void uninspectAC(GNEAttributeCarrier *AC)
uninspect AC
bool isInspectingSingleElement() const
check if we're inspecting exactly one element
bool isInspectingMultipleElements() const
check if we're inspecting more than one elements
void clearInspectedElements()
clear inspected AC
InspectedElements()
constructor
void setDataSet()
set dataSet
void setParameter()
set parameter
std::string getParameter() const
get parameter
void hideIntervalBar()
hide all options menu checks
void setGenericDataType()
set generic data type
double getBegin() const
get begin
void showIntervalBar()
show interval option bar
void disableIntervalBar()
disable interval bar
void updateIntervalBar()
update interval bar
void buildIntervalBarElements()
build interval bar elements
GNEDataSet * getDataSet() const
get dataSet
IntervalBar(GNEViewNet *viewNet)
default constructor
void enableIntervalBar()
enable interval bar
void setInterval()
update limit by interval
double getEnd() const
get end
SumoXMLTag getGenericDataType() const
get generic data type
~OperationLocked()
destructor
Supermode getSupermode() const
get supermode
OperationLocked()
constructor
void updateLockMenuBar()
update lock inspect menuBar
bool isObjectLocked(GUIGlObjectType objectType, const bool selected) const
check if given GLObject is locked for inspect, select, delete and move
LockManager(GNEViewNet *viewNet)
constructor
std::map< GUIGlObjectType, OperationLocked > myLockedElements
map with locked elements
void updateFlags()
update flags
GNEViewNet * myViewNet
pointer to viewNet
void unmarkAC(GNEAttributeCarrier *AC)
unmark AC for drawing front
MarkFrontElements()
constructor
void markAC(GNEAttributeCarrier *AC)
mark AC as drawing front
void unmarkAll()
unmark all ACs
const std::unordered_set< GNEAttributeCarrier * > & getACs() const
get hash table with all fronted ACs
std::vector< GNEConnection * > connections
vector with the connections
std::vector< GNEGenericData * > genericDatas
vector with the generic datas
std::vector< GNEPOI * > POIs
vector with the POIs
std::vector< GNEInternalLane * > internalLanes
vector with the internal lanes
std::vector< GUIGlObject * > GUIGlObjects
vector with the GUIGlObjects
std::vector< GNELane * > lanes
vector with the lanes
std::vector< GNETAZRelData * > TAZRelDatas
vector with the TAZ relation datas
void reserve(int size)
reseve memory for all elements
std::vector< GNECrossing * > crossings
vector with the crossings
std::vector< GNEPoly * > polys
vector with the polys
std::vector< GNETAZ * > TAZs
vector with the TAZ elements
std::vector< GNEAdditional * > additionals
vector with the additional elements
std::vector< GNEAttributeCarrier * > attributeCarriers
vector with the attribute carriers
void clearElements()
clear elements
std::vector< GNENetworkElement * > networkElements
vector with the network elements
std::vector< GNEEdgeData * > edgeDatas
vector with the edge datas
std::vector< GNEEdgeRelData * > edgeRelDatas
vector with the edge relation datas
std::vector< GNEEdge * > edges
vector with the edges
void filterElements(const std::vector< const GUIGlObject * > &objects)
filter elements
std::vector< GNEJunction * > junctions
vector with the junctions
std::vector< GNEWalkingArea * > walkingAreas
vector with the walkingAreas
std::vector< GNEDemandElement * > demandElements
vector with the demand elements
ViewObjectsContainer()
constructor
GNEEdgeRelData * getEdgeRelDataElementFront() const
get edge rel data element or a pointer to nullptr
void updateObjects()
update objects (using gViewObjectsHandler)
void filterConnections()
filter (remove) connections
void filterAllExcept(GUIGlObjectType exception)
filter all elements except the given GLO type
GNEEdgeData * getEdgeDataElementFront() const
get edge data element or a pointer to nullptr
const std::vector< const GNEJunction * > & getMergingJunctions() const
get merging junctions
void updateShapeElements(ViewObjectsContainer &container, const GUIGlObject *glObject)
update shape elements
void updateMergingJunctions()
update merging junctions
GNEConnection * getConnectionFront() const
get front connection or a pointer to nullptr
const std::vector< GNEAttributeCarrier * > & getAttributeCarriers() const
get vector with ACs
void filterEdges()
filter (remove) edges
GNEPoly * getPolyFront() const
get front Poly or a pointer to nullptr
void updateDemandElements(ViewObjectsContainer &container, const GUIGlObject *glObject)
update demand elements
void filterLockedElements(const std::vector< GUIGlObjectType > ignoreFilter={})
filter locked elements (except the ignoreFilter)
void filterCrossings()
filter (remove) crossings
GNEPOI * getPOIFront() const
get front POI or a pointer to nullptr
GNEInternalLane * getInternalLaneFront() const
get front internal lane or a pointer to nullptr
void filterNetworkElements()
filter (remove) network elements
void processGUIGlObjects(const GUIViewObjectsHandler::GLObjectsSortedContainer &objectsContainer)
process GL objects
const std::vector< GNETAZ * > & getTAZs() const
get vector with TAZs
GNEWalkingArea * getWalkingAreaFront() const
get front walkingArea or a pointer to nullptr
void filterBySuperMode()
filter by supermode
GNEEdge * getEdgeFront() const
get front edge or a pointer to nullptr
GNEAttributeCarrier * getAttributeCarrierFront() const
get front attribute carrier or a pointer to nullptr
void updateAdditionalElements(ViewObjectsContainer &container, const GUIGlObject *glObject)
update additional elements
void updateGenericDataElements(ViewObjectsContainer &container, const GUIGlObject *glObject)
update generic data elements
void filterDemandElements(const bool includeRoutes)
filter (remove) demand elements
void updateTAZElements(ViewObjectsContainer &container, const GUIGlObject *glObject)
update TAZ elements
const std::vector< GNEDemandElement * > & getDemandElements() const
get vector with Demand Elements
void filterWalkingAreas()
filter (remove) walkingAreas
GNETAZ * getTAZFront() const
get front TAZ or a pointer to nullptr
void filterAdditionals(const bool includeStoppigPlaces, const bool includeTAZs)
filter (remove) additionals
GNELane * getLaneFront() const
get front lane or a pointer to nullptr
void updateNetworkElements(ViewObjectsContainer &container, const GUIGlObject *glObject)
update network elements
GNEGenericData * getGenericDataElementFront() const
get generic data element or a pointer to nullptr
void fillSumoBaseObject(CommonXMLStructure::SumoBaseObject *baseObjet) const
fill the given SUMO base object with the current single objects
GNEAdditional * getAdditionalFront() const
get front additional element or a pointer to nullptr
GNELane * getLaneFrontNonLocked() const
get front lane or a pointer to nullptr checking if is locked
const GUIGlObject * getGUIGlObjectFront() const
get front GUIGLObject or a pointer to nullptr
GNENetworkElement * getNetworkElementFront() const
get front network element or a pointer to nullptr
const std::vector< GNEEdge * > & getEdges() const
get vector with edges
GNECrossing * getCrossingFront() const
get front crossing or a pointer to nullptr
ViewObjectsSelector()
default constructor
GNEJunction * getJunctionFront() const
get front junction or a pointer to nullptr
void filterLanes()
filter (remove) lanes
void filterJunctions()
filter (remove) junctions
GNETAZRelData * getTAZRelDataElementFront() const
get TAZ rel data element or a pointer to nullptr
const std::vector< GUIGlObject * > & getGLObjects() const
get vector with GL objects
void filterShapes()
filter (remove) polys and POIs
const std::vector< GNEJunction * > & getJunctions() const
get vector with junctions
GNEDemandElement * getDemandElementFront() const
get front demand element or a pointer to nullptr
void filterDataElements()
filter (remove) datga elements
const std::vector< GNELane * > & getLanes() const
get lanes
const std::vector< GNEAdditional * > & getAdditionals() const
get vector with additionals
const std::string & getMicrosimID() const
Returns the id of the object as known to microsim.
GUIGlObjectType getType() const
Returns the type of the object as coded in GUIGlObjectType.
virtual bool isGLObjectLocked() const
check if element is locked (Currently used only in netedit)
static FXIcon * getIcon(const GUIIcon which)
returns a icon previously defined in the enum GUIIcon
static GUIGlID getTexture(GUITexture which)
returns a texture previously defined in the enum GUITexture
static void drawTexturedBox(int which, double size)
Draws a named texture as a box with the given size.
int getNumberOfSelectedObjects() const
get number of selected objects
std::map< double, ObjectContainerLayer > GLObjectsSortedContainer
typedef for pack elements sorted by layer
const GLObjectsSortedContainer & getSelectedObjects() const
get all elements under cursor sorted by layer
const std::vector< const GNEJunction * > & getMergingJunctions() const
const PositionVector & getGeometry() const
Returns the geometry of the edge.
bool set(const std::string &name, const std::string &value, const bool append=false)
Sets the given value for the named option.
const StringVector & getStringVector(const std::string &name) const
Returns the list of string-value of the named option (only for Option_StringVector)
void resetWritable()
Resets all options to be writeable.
static OptionsCont & getOptions()
Retrieves the options.
C++ TraCI client API implementation.
A point in 2D or 3D with translation and scaling methods.
double x() const
Returns the x-position.
double y() const
Returns the y-position.
double nearest_offset_to_point2D(const Position &p, bool perpendicular=true) const
return the nearest offest to point 2D
static const RGBColor BLUE
static const RGBColor YELLOW
static const RGBColor MAGENTA
#define UNUSED_PARAMETER(x)
struct for processing menu commands
MFXMenuCheckIcon * menuCheckLockConnections
menu check to lock connections
MFXMenuCheckIcon * menuCheckLockPersons
menu check to lock persons
MFXMenuCheckIcon * menuCheckLockVehicles
menu check to lock vehicles
MFXMenuCheckIcon * menuCheckLockCrossings
menu check to lock crossings
MFXMenuCheckIcon * menuCheckLockRoutes
MFXMenuCheckIcon * menuCheckLockTAZs
menu check to lock TAZs
MFXMenuCheckIcon * menuCheckLockEdgeTAZRels
menu check to lock edgeTAZRels
MFXMenuCheckIcon * menuCheckLockJunctions
MFXMenuCheckIcon * menuCheckLockPersonTrips
menu check to lock personTrips
MFXMenuCheckIcon * menuCheckLockWires
menu check to lock Wires
MFXMenuCheckIcon * menuCheckLockPOIs
menu check to lock POIs
MFXMenuCheckIcon * menuCheckLockPolygons
menu check to lock polygons
MFXMenuCheckIcon * menuCheckLockWalkingAreas
menu check to lock walkingAreas
MFXMenuCheckIcon * menuCheckLockEdgeDatas
MFXMenuCheckIcon * menuCheckLockEdges
menu check to lock edges
MFXMenuCheckIcon * menuCheckLockRides
menu check to lock rides
MFXMenuCheckIcon * menuCheckLockContainers
menu check to lock containers
MFXMenuCheckIcon * menuCheckLockJpsWalkableAreas
menu check to lock jps walkableareas
MFXMenuCheckIcon * menuCheckLockEdgeRelDatas
menu check to lock edgeRelDatas
MFXMenuCheckIcon * menuCheckLockStops
menu check to lock stops
MFXMenuCheckIcon * menuCheckLockLanes
menu check to lock lanes
MFXMenuCheckIcon * menuCheckLockAdditionals
menu check to lock additionals
MFXMenuCheckIcon * menuCheckLockWalks
menu check to lock walks
MFXMenuCheckIcon * menuCheckLockJpsObstacles
menu check to lock jps obstacles
MFXMenuCheckIcon * menuCheckLockTranships
menu check to lock tranships
MFXMenuCheckIcon * menuCheckLockTransports
menu check to lock transports
DataViewOptions(GNEViewNet *viewNet)
default constructor
bool TAZRelOnlyTo() const
check if toggle TAZRel only to checkbox is enabled
void hideDataViewOptionsMenuChecks()
hide all options menu checks
bool showAdditionals() const
check if additionals has to be drawn
bool showDemandElements() const
check if show demand elements checkbox is enabled
bool TAZRelOnlyFrom() const
check if toggle TAZRel only from checkbox is enabled
bool TAZDrawFill() const
check if toggle TAZ draw fill checkbox is enabled
void buildDataViewOptionsMenuChecks()
build menu checks
void getVisibleDataMenuCommands(std::vector< MFXCheckableButton * > &commands) const
get visible demand menu commands
bool showShapes() const
check if shapes has to be drawn
bool TAZRelDrawing() const
check if toggle TAZRel drawing checkbox is enabled
void lockPerson(const GNEDemandElement *person)
lock person
bool showAllPersonPlans() const
check all person plans has to be show
void lockContainer(const GNEDemandElement *container)
lock container
void buildDemandViewOptionsMenuChecks()
build menu checks
const GNEDemandElement * getLockedPerson() const
get locked person
const GNEDemandElement * getLockedContainer() const
get locked container
bool showShapes() const
check if shapes has to be drawn
void hideDemandViewOptionsMenuChecks()
hide all options menu checks
bool showAllContainerPlans() const
check all container plans has to be show
void unlockContainer()
unlock container
void unlockPerson()
unlock person
bool drawSpreadVehicles() const
check if vehicles must be drawn spread
bool showNonInspectedDemandElements(const GNEDemandElement *demandElement) const
check if non inspected element has to be hidden
DemandViewOptions(GNEViewNet *viewNet)
default constructor
bool showOverlappedRoutes() const
show overlapped routes
void getVisibleDemandMenuCommands(std::vector< MFXCheckableButton * > &commands) const
get visible demand menu commands
bool showAllTrips() const
check if trips has to be drawn
void buildSuperModeButtons()
build checkable buttons
bool isDefaultView() const
check if default view is enabled
NetworkEditMode networkEditMode
the current Network edit mode
bool isCurrentSupermodeDemand() const
@check if current supermode is Demand
void setDemandEditMode(DemandEditMode demandMode, const bool force=false)
set Demand edit mode
bool isCurrentSupermodeData() const
@check if current supermode is Data
void setView(FXSelector sel)
set view
bool isCurrentSupermodeNetwork() const
@check if current supermode is Network
bool isJuPedSimView() const
check if default view is enabled
void setSupermode(Supermode supermode, const bool force)
set supermode
void setNetworkEditMode(NetworkEditMode networkMode, const bool force=false)
set Network edit mode
EditModes(GNEViewNet *viewNet)
constructor
void setDataEditMode(DataEditMode dataMode, const bool force=false)
set Data edit mode
GNENetworkElement * getEditedNetworkElement() const
pointer to edited network element
void stopEditCustomShape()
edit edit shape
EditNetworkElementShapes(GNEViewNet *viewNet)
default constructor
void startEditCustomShape(GNENetworkElement *element)
start edit custom shape
void commitShapeEdited()
save edited shape
static bool checkDrawing(const GUIVisualizationSettings::Detail d, const GNEAttributeCarrier *AC, GUIGlObjectType type, const double exaggeration)
check if icon can be drawn
static void drawLockIcon(const GUIVisualizationSettings::Detail d, const GNEAttributeCarrier *AC, GUIGlObjectType type, const Position position, const double exaggeration, const double size=0.5, const double offsetx=0, const double offsety=0)
draw lock icon
void moveSelection(const bool mouseLeftButtonPressed)
move selection
void calculateEdgeSelection(const GNEEdge *clickedEdge)
calculate edge selection
const GNEMoveOffset calculateMoveOffset() const
calculate move offset
bool isCurrentlyMovingMultipleElements() const
check if there are moving elements
void finishMoveSelection()
finish moving selection
double getEdgeOffset() const
edge offset
bool isMovingSelection() const
check if currently there is element being moved
void beginMoveSelection()
begin move selection
void resetMovingSelectedEdge()
reset flag for moving edge
void calculateJunctionSelection()
calculate junction selection
MoveMultipleElementModul(GNEViewNet *viewNet)
constructor
bool isMovingSelectedEdge() const
flag for moving edge
const GNEMoveOffset calculateMoveOffset() const
calculate offset
MoveSingleElementModul(GNEViewNet *viewNet)
constructor
bool beginMoveSingleElementDemandMode()
begin move single element in Demand mode
void moveSingleElement(const bool mouseLeftButtonPressed)
move single element in Network AND Demand mode
GNEMoveElement * getMovedElement() const
get moved element
bool isCurrentlyMovingSingleElement() const
check if there are moving elements
bool beginMoveSingleElementNetworkMode()
begin move single element in Network mode
bool beginMoveNetworkElementShape()
begin move network elementshape
void finishMoveSingleElement()
finish moving single elements in Network AND Demand mode
bool drawFilledWalkingAreas() const
draw filled walking areas
bool drawSpreadVehicles() const
check if vehicles must be drawn spread
bool editingElevation() const
check if we're editing elevation
void getVisibleNetworkMenuCommands(std::vector< MFXCheckableButton * > &commands) const
get visible network menu commands
bool showDemandElements() const
check if show demand elements checkbox is enabled
bool showSubAdditionals() const
check if show sub-additionals
bool showPolygonSymbols() const
check if draw polygon symbols
bool selectEdges() const
check if select edges checkbox is enabled
bool showConnections(const GNEConnection *connection) const
check if select show connections checkbox is enabled
bool showTAZElements() const
check if show TAZ Elements
NetworkViewOptions(GNEViewNet *viewNet)
default constructor
void hideNetworkViewOptionsMenuChecks()
hide all options menu checks
void buildNetworkViewOptionsMenuChecks()
build menu checks
~SaveElements()
destructor
SaveElements(GNEViewNet *viewNet)
default constructor
void setSaveIndividualFiles(bool value)
enable or disable save individual files
void buildSaveElementsButtons()
build save buttons
void finishRectangleSelection()
finish rectangle selection
void drawRectangleSelection(const RGBColor &color) const
draw rectangle selection
void beginRectangleSelection()
begin rectangle selection
void moveRectangleSelection()
move rectangle selection
void processBoundarySelection(const Boundary &boundary)
Process boundary Selection.
void processRectangleSelection()
process rectangle Selection
std::vector< GNEEdge * > processEdgeRectangleSelection()
process rectangle Selection (only limited to Edges)
SelectingArea(GNEViewNet *viewNet)
default constructor
void drawTestingElements(GUIMainWindow *mainWindow)
draw testing element
TestingMode(GNEViewNet *viewNet)
default constructor
void initTestingMode()
init testing mode
void buildVehicleOptionsMenuChecks()
build menu checks
VehicleOptions(GNEViewNet *viewNet)
constructor
void hideVehicleOptionsMenuChecks()
hide all options menu checks
VehicleTypeOptions(GNEViewNet *viewNet)
constructor
void buildVehicleTypeOptionsMenuChecks()
build menu checks
void hideVehicleTypeOptionsMenuChecks()
hide all options menu checks
static std::vector< RGBColor > myRainbowScaledColors
scale (rainbow) colors
static const RGBColor & getRainbowScaledColor(const double min, const double max, const double value)
get rainbow scaled color
static std::vector< GUIGlObject * > filterElementsByLayer(const std::vector< GUIGlObject * > &GLObjects)
filter elements based on the layer
static const std::vector< RGBColor > & getRainbowScaledColors()
get scaled rainbow colors