75#include <unordered_set>
256 FXGLVisual* glVis, FXGLCanvas* share) :
258 myViewObjectsSelector(this),
261 myCommonCheckableButtons(this),
262 myNetworkCheckableButtons(this),
263 myDemandCheckableButtons(this),
264 myDataCheckableButtons(this),
265 myNetworkViewOptions(this),
266 myDemandViewOptions(this),
267 myDataViewOptions(this),
269 myMoveSingleElement(this),
270 myMoveMultipleElements(this),
271 myVehicleOptions(this),
272 myVehicleTypeOptions(this),
273 mySaveElements(this),
275 mySelectingArea(this),
276 myEditNetworkElementShapes(this),
278 myViewParent(viewParent),
280 myUndoList(undoList) {
282 reparent(actualParent);
284 buildEditModeControls();
286 myNet->setViewNet(
this);
292 myTestingMode.initTestingMode();
294 myNetworkViewOptions.menuCheckToggleGrid->setChecked(myVisualizationSettings->showGrid);
295 myDemandViewOptions.menuCheckToggleGrid->setChecked(myVisualizationSettings->showGrid);
297 const bool hide = !myVisualizationSettings->drawJunctionShape;
298 myNetworkViewOptions.menuCheckToggleDrawJunctionShape->setChecked(hide);
299 myDemandViewOptions.menuCheckToggleDrawJunctionShape->setChecked(hide);
300 myDataViewOptions.menuCheckToggleDrawJunctionShape->setChecked(hide);
312 const Boundary maxBoundary(1000000000.0, 1000000000.0, -1000000000.0, -1000000000.0);
318 std::set<GNEAttributeCarrier*> ACs;
320 for (
const auto& GLId : GLIDs) {
328 for (
const auto& AC : ACs) {
364 std::string(
"\t") +
TL(
"Locate Junctions") + std::string(
"\t") +
TL(
"Locate a junction within the network. (Shift+J)"),
368 std::string(
"\t") +
TL(
"Locate Edges") + std::string(
"\t") +
TL(
"Locate an edge within the network. (Shift+E)"),
372 std::string(
"\t") +
TL(
"Locate WalkingAreas") + std::string(
"\t") +
TL(
"Locate a walkingArea within the network. (Shift+W)"),
376 std::string(
"\t") +
TL(
"Locate Vehicles") + std::string(
"\t") +
TL(
"Locate a vehicle within the network. (Shift+V)"),
380 std::string(
"\t") +
TL(
"Locate Persons") + std::string(
"\t") +
TL(
"Locate a person within the network. (Shift+P)"),
384 std::string(
"\t") +
TL(
"Locate Containers") + std::string(
"\t") +
TL(
"Locate a container within the network. (Shift+C)"),
388 std::string(
"\t") +
TL(
"Locate Route") + std::string(
"\t") +
TL(
"Locate a route within the network. (Shift+R)"),
392 std::string(
"\t") +
TL(
"Locate Stops") + std::string(
"\t") +
TL(
"Locate a stop within the network. (Shift+S)"),
403 std::string(
"\t") +
TL(
"Locate TLS") + std::string(
"\t") +
TL(
"Locate a tls within the network. (Shift+T)"),
407 std::string(
"\t") +
TL(
"Locate Additional") + std::string(
"\t") +
TL(
"Locate an additional structure within the network. (Shift+A)"),
411 std::string(
"\t") +
TL(
"Locate PoI") + std::string(
"\t") +
TL(
"Locate a PoI within the network. (Shift+O)"),
415 std::string(
"\t") +
TL(
"Locate Polygon") + std::string(
"\t") +
TL(
"Locate a Polygon within the network. (Shift+L)"),
424 GUISUMOAbstractView::update();
519 positionBoundary.
add(pos);
520 positionBoundary.
grow(POSITION_EPS);
587 new FXMenuSeparator(ret);
625 std::vector<GUIGlObject*> filteredGLObjects;
633 filteredGLObjects.push_back(overlappedElement);
635 bool connections =
false;
644 if (glObject->getType() ==
GLO_EDGE) {
653 filteredGLObjects.push_back(glObject);
655 auto it = filteredGLObjects.begin();
658 while (it != filteredGLObjects.end()) {
660 it = filteredGLObjects.erase(it);
667 while (it != filteredGLObjects.end()) {
669 it = filteredGLObjects.erase(it);
677 auto itDuplicated = filteredGLObjects.begin();
678 std::unordered_set<GUIGlObject*> unorderedSet;
679 for (
auto itElement = filteredGLObjects.begin(); itElement != filteredGLObjects.end(); itElement++) {
680 if (unorderedSet.insert(*itElement).second) {
681 *itDuplicated++ = *itElement;
684 filteredGLObjects.erase(itDuplicated, filteredGLObjects.end());
726 if (neteditOptions.getString(
"gui-testing.setting-output").size() > 0) {
744 WRITE_ERROR(
TL(
"GUI-Settings cannot be saved in ") + neteditOptions.getString(
"gui-testing.setting-output"));
796 double minValue = std::numeric_limits<double>::infinity();
797 double maxValue = -std::numeric_limits<double>::infinity();
799 bool hasMissingData =
false;
804 }
else if (active == 11) {
808 const double val = lane.second->getColorValue(s, active);
810 hasMissingData =
true;
813 minValue =
MIN2(minValue, val);
814 maxValue =
MAX2(maxValue, val);
819 minValue =
MIN2(minValue, junction.second->getPositionInView().z());
820 maxValue =
MAX2(maxValue, junction.second->getPositionInView().z());
826 const double value = genericData.second->getColorValue(s, active);
830 minValue =
MIN2(minValue, value);
831 maxValue =
MAX2(maxValue, value);
838 std::set<SVCPermissions> codes;
840 codes.insert(lane.second->getParentEdge()->getNBEdge()->getPermissions(lane.second->getIndex()));
842 int step =
MAX2(1, 360 / (
int)codes.size());
846 hue = (hue + step) % 360;
915 WRITE_DEBUG(
"Opening FXMessageBox 'merge junctions'");
917 const std::string header =
TL(
"Confirm Junction Merger");
919 const FXuint answer = FXMessageBox::question(
this, MBOX_YES_NO, header.c_str(),
"%s", body.c_str());
923 WRITE_DEBUG(
"Closed FXMessageBox 'merge junctions' with 'No'");
924 }
else if (answer == 4) {
925 WRITE_DEBUG(
"Closed FXMessageBox 'merge junctions' with 'ESC'");
930 WRITE_DEBUG(
"Closed FXMessageBox 'merge junctions' with 'Yes'");
945 body = (operation +
TL(
" requires switch to network mode. Continue?"));
947 body = (operation +
TL(
" requires switch to demand mode. Continue?"));
949 body = (operation +
TL(
" requires switch to data mode. Continue?"));
954 const auto answer = FXMessageBox::question(
myApp, MBOX_YES_NO,
TL(
"Confirm switch mode"),
"%s", body.c_str());
958 if (answer == MBOX_CLICKED_YES) {
972 return (TLSMode && selectingDetectors);
981 return (TLSMode && selectingJunctions);
1002 std::map<GNEEdge*, GNELane*> mapOfEdgesAndLanes;
1004 for (
const auto& selectedLane : selectedLanes) {
1008 if (mapOfEdgesAndLanes.size() != selectedLanes.size()) {
1009 const std::string header =
TL(
"Multiple lane in the same edge selected");
1010 const std::string bodyA =
TL(
"There are selected lanes that belong to the same edge.");
1011 const std::string bodyB =
TLF(
"Only one lane per edge will be restricted to %.",
toString(vclass));
1012 FXMessageBox::information(getApp(), MBOX_OK, header.c_str(),
"%s", (bodyA + std::string(
"\n") + bodyB).c_str());
1015 if (mapOfEdgesAndLanes.size() > 0) {
1019 for (
const auto& edgeLane : mapOfEdgesAndLanes) {
1020 if (edgeLane.first->hasRestrictedLane(vclass)) {
1025 if (counter == (
int)mapOfEdgesAndLanes.size()) {
1026 const std::string header =
TLF(
"Set vclass to % for selected lanes",
toString(vclass));
1027 const std::string body =
TL(
"All lanes own already another lane in the same edge with a restriction for ");
1028 FXMessageBox::information(getApp(), MBOX_OK, header.c_str(),
"%s", (body +
toString(vclass) +
".").c_str());
1031 WRITE_DEBUG(
"Opening FXMessageBox 'restrict lanes'");
1033 const std::string header =
TLF(
"Set vclass to % for selected lanes",
toString(vclass));
1034 const std::string body =
TLF(
"% lanes will be restricted to %. Continue?",
toString(mapOfEdgesAndLanes.size() - counter),
toString(vclass));
1035 FXuint answer = FXMessageBox::question(getApp(), MBOX_YES_NO, header.c_str(),
"%s", body.c_str());
1039 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'No'");
1040 }
else if (answer == 4) {
1041 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'ESC'");
1046 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'Yes'");
1052 for (
const auto& edgeLane : mapOfEdgesAndLanes) {
1077 std::set<GNEEdge*> setOfEdges;
1079 for (
const auto& edge : selectedEdges) {
1080 setOfEdges.insert(edge);
1083 for (
const auto& selectedLane : selectedLanes) {
1092 for (
const auto& edge : setOfEdges) {
1094 if (edge->hasRestrictedLane(vclass)) {
1099 if (counter == (
int)setOfEdges.size()) {
1100 const std::string header =
TLF(
"Add vclass % to selected lanes",
toString(vclass));
1101 const std::string body =
TLF(
"All lanes own already another lane in the same edge with a restriction to %.",
toString(vclass));
1102 FXMessageBox::information(getApp(), MBOX_OK, header.c_str(),
"%s", body.c_str());
1105 WRITE_DEBUG(
"Opening FXMessageBox 'restrict lanes'");
1107 const std::string header =
TLF(
"Add vclass % to selected lanes",
toString(vclass));
1108 const std::string body =
TLF(
"% restrictions to % will be added. Continue?",
toString(setOfEdges.size() - counter),
toString(vclass));
1109 FXuint answer = FXMessageBox::question(getApp(), MBOX_YES_NO, header.c_str(),
"%s", body.c_str());
1113 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'No'");
1114 }
else if (answer == 4) {
1115 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'ESC'");
1120 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'Yes'");
1126 for (
const auto& edge : setOfEdges) {
1140 if (insertAtFront) {
1165 std::set<GNEEdge*> setOfEdges;
1167 for (
const auto& edge : selectedEdges) {
1168 setOfEdges.insert(edge);
1171 for (
const auto& selectedLane : selectedLanes) {
1176 if (setOfEdges.size() > 0) {
1180 for (
const auto& edge : setOfEdges) {
1182 if (edge->hasRestrictedLane(vclass)) {
1188 const std::string header =
TLF(
"Remove vclass % from selected lanes",
toString(vclass));
1189 const std::string body =
TLF(
"The selected lanes and edges don't have a restriction to %.",
toString(vclass));
1190 FXMessageBox::information(getApp(), MBOX_OK, header.c_str(),
"%s", body.c_str());
1193 WRITE_DEBUG(
"Opening FXMessageBox 'restrict lanes'");
1195 const std::string header =
TLF(
"Remove vclass % from selected lanes",
toString(vclass));
1196 const std::string body =
TLF(
"% restrictions to % will be removed. Continue?",
toString(setOfEdges.size() - counter),
toString(vclass));
1197 FXuint answer = FXMessageBox::question(getApp(), MBOX_YES_NO, header.c_str(),
"%s", body.c_str());
1201 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'No'");
1202 }
else if (answer == 4) {
1203 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'ESC'");
1208 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'Yes'");
1214 for (
const auto& edge : setOfEdges) {
1233 myViewObjectsSelector(this),
1235 myTestingMode(this),
1236 myCommonCheckableButtons(this),
1237 myNetworkCheckableButtons(this),
1238 myDemandCheckableButtons(this),
1239 myDataCheckableButtons(this),
1240 myNetworkViewOptions(this),
1241 myDemandViewOptions(this),
1242 myDataViewOptions(this),
1243 myIntervalBar(this),
1244 myMoveSingleElement(this),
1245 myMoveMultipleElements(this),
1246 myVehicleOptions(this),
1247 myVehicleTypeOptions(this),
1248 mySaveElements(this),
1250 mySelectingArea(this),
1251 myEditNetworkElementShapes(this),
1252 myLockManager(this) {
1256std::vector<std::string>
1258 std::set<std::string> keys;
1261 for (
const auto& item : e->getParametersMap()) {
1262 keys.insert(item.first);
1264 for (
const auto& con : e->getConnections()) {
1265 for (
const auto& item : con.getParametersMap()) {
1266 keys.insert(item.first);
1270 for (
const auto& lane : e->getLanes()) {
1272 for (
const auto& item : lane.getParametersMap()) {
1273 keys.insert(item.first);
1275 for (
const auto& con : e->getConnectionsFromLane(i)) {
1276 for (
const auto& item : con.getParametersMap()) {
1277 keys.insert(item.first);
1284 return std::vector<std::string>(keys.begin(), keys.end());
1288std::vector<std::string>
1290 std::set<std::string> keys;
1292 for (
const auto& parameter : genericData.second->getACParametersMap()) {
1293 keys.insert(parameter.first);
1296 return std::vector<std::string>(keys.begin(), keys.end());
1300std::vector<std::string>
1302 std::set<std::string> keys;
1304 for (
const auto& parameter : genericData.second->getACParametersMap()) {
1305 keys.insert(parameter.first);
1309 for (
const auto& parameter : genericData.second->getACParametersMap()) {
1310 keys.insert(parameter.first);
1313 return std::vector<std::string>(keys.begin(), keys.end());
1345 glMatrixMode(GL_MODELVIEW);
1347 glDisable(GL_TEXTURE_2D);
1348 glDisable(GL_ALPHA_TEST);
1350 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
1351 glEnable(GL_DEPTH_TEST);
1619 if (clearSelection) {
1666 if (clearSelection) {
1687 if (clearSelection) {
1720 if (selectedNetworkACs.size() > 0) {
1722 for (
const auto selectedAC : selectedNetworkACs) {
1740 if (selectedDemandACs.size() > 0) {
1742 for (
const auto selectedAC : selectedDemandACs) {
1760 if (selectedDataACs.size() > 0) {
1762 for (
const auto selectedAC : selectedDataACs) {
1946 glTranslated(0, 0, typeOrLayer + extraOffset);
1966 if (glObjectFront) {
1967 if (glObjectFront == GLObject) {
1969 }
else if (glObjectFront->getType() == GLObject->
getType()) {
1971 if (glObjectUnderCursor == GLObject) {
1997 for (
const auto& glObject : glObjectLayer.second) {
2012 for (
const auto& glObject : glObjectLayer.second) {
2027 for (
const auto& glObject : glObjectLayer.second) {
2042 for (
const auto& glObject : glObjectLayer.second) {
2057 for (
const auto& glObject : glObjectLayer.second) {
2072 for (
const auto& glObject : glObjectLayer.second) {
2087 for (
const auto& glObject : glObjectLayer.second) {
2089 if (additionalElement) {
2090 return additionalElement;
2102 for (
const auto& glObject : glObjectLayer.second) {
2104 if (demandElement) {
2105 return demandElement;
2117 for (
const auto& glObject : glObjectLayer.second) {
2132 for (
const auto& glObject : glObjectLayer.second) {
2147 for (
const auto& glObject : glObjectLayer.second) {
2162 for (
const auto& glObject : glObjectLayer.second) {
2165 if (junction->isShapeEdited()) {
2168 }
else if (glObject.object->getType() ==
GLO_CROSSING) {
2170 if (crossing->isShapeEdited()) {
2175 if (connection->isShapeEdited()) {
2188 switch (FXSELID(sel)) {
2217 switch (FXSELID(sel)) {
2237 switch (FXSELID(sel)) {
2265 switch (FXSELID(sel)) {
2313 switch (FXSELID(sel)) {
2361 switch (FXSELID(sel)) {
2394 if (edge !=
nullptr) {
2404 if (edge !=
nullptr) {
2408 if (oppositeEdges.size() > 0) {
2409 for (
const auto& oppositeEdge : oppositeEdges) {
2411 const auto reverseGeometry = oppositeEdge->getNBEdge()->getInnerGeometry().reverse();
2426 if (edge !=
nullptr) {
2430 for (
const auto& selectedEdge : selectedEdges) {
2447 if (edge !=
nullptr) {
2451 for (
const auto& selectedEdge : selectedEdges) {
2468 if (edge !=
nullptr) {
2470 myUndoList->
begin(edge,
TL(
"Add Reverse disconnected edge for selected edges"));
2472 for (
const auto& selectedEdge : selectedEdges) {
2489 if (edge !=
nullptr) {
2500 if (edge !=
nullptr) {
2508 for (
const auto& selectedEdge : selectedEdges) {
2525 if (edge !=
nullptr) {
2529 for (
const auto& selectedEdge : selectedEdges) {
2547 if (edge !=
nullptr) {
2551 for (
const auto& selectedEdge : selectedEdges) {
2568 if (edge !=
nullptr) {
2572 for (
const auto& selectedEdge : selectedEdges) {
2573 selectedEdge->straightenElevation(
myUndoList);
2589 if (edge !=
nullptr) {
2593 for (
const auto& selectedEdge : selectedEdges) {
2610 if (edge !=
nullptr) {
2614 for (
const auto& selectedEdge : selectedEdges) {
2629 if (edge !=
nullptr) {
2645 if (edge.second->isAttributeCarrierSelected()) {
2665 if (polygonUnderMouse) {
2673 for (
const auto& selectedShape : selectedShapes) {
2675 if ((selectedShape->getTagProperty().getTag() ==
SUMO_TAG_POLY) ||
2679 dynamic_cast<GNEPoly*
>(selectedShape)->simplifyShape();
2695 if (polygonUnderMouse) {
2707 if (polygonUnderMouse) {
2715 for (
const auto& selectedShape : selectedShapes) {
2717 if ((selectedShape->getTagProperty().getTag() ==
SUMO_TAG_POLY) ||
2721 dynamic_cast<GNEPoly*
>(selectedShape)->closePolygon();
2739 if (polygonUnderMouse) {
2747 for (
const auto& selectedShape : selectedShapes) {
2749 if ((selectedShape->getTagProperty().getTag() ==
SUMO_TAG_POLY) ||
2753 dynamic_cast<GNEPoly*
>(selectedShape)->openPolygon();
2771 if (polygonUnderMouse) {
2775 std::vector<GNEAttributeCarrier*> filteredACs;
2780 filteredACs.push_back(AC);
2782 }
else if (AC->getTagProperty().getTag() ==
SUMO_TAG_LANE) {
2784 filteredACs.push_back(AC);
2787 filteredACs.push_back(AC);
2791 if (filteredACs.size() > 0) {
2795 for (
const auto& AC : filteredACs) {
2809 if (polygonUnderMouse) {
2824 undoList->begin(shapeEdited,
TL(
"simplify edited shape"));
2839 undoList->begin(shapeEdited,
TL(
"straigthen edited shape"));
2854 undoList->begin(shapeEdited,
TL(
"simplify edited shape"));
2869 undoList->begin(shapeEdited,
TL(
"simplify edited shape"));
2886 undoList->begin(shapeEdited,
TL(
"simplify edited shape"));
2903 undoList->begin(shapeEdited,
TL(
"simplify edited shape"));
2918 undoList->begin(shapeEdited,
TL(
"simplify edited shape"));
2945 std::vector<GNELane*> lanes;
2946 for (
const auto& GLID : GLIDs) {
2949 lanes.push_back(lane);
2952 if (lanes.empty()) {
2956 GNELane* nearestLane = lanes.front();
2959 for (
const auto& lane : lanes) {
2960 double posOverLane = lane->getLaneShape().nearest_offset_to_point2D(
POI->getPositionInView());
2961 double lateralOffset = lane->getLaneShape().positionAtOffset(posOverLane).distanceTo(
POI->getPositionInView());
2962 if (lateralOffset < minorLateralOffset) {
2963 minorPosOverLane = posOverLane;
2964 minorLateralOffset = lateralOffset;
3004 if (demandElement) {
3018 if (demandElement) {
3035 if (lane !=
nullptr) {
3041 Position newPosition = edgeGeometry[index];
3045 if (newPosition != edgeGeometry[index]) {
3047 edgeGeometry[index] = newPosition;
3054 }
else if (index == ((
int)edgeGeometry.size() - 1)) {
3060 edgeGeometry.pop_back();
3067 }
else if (poly !=
nullptr) {
3073 Position newPosition = polygonGeometry[index];
3077 if (newPosition != polygonGeometry[index]) {
3079 polygonGeometry[index] = newPosition;
3087 }
else if (
TAZ !=
nullptr) {
3093 Position newPosition = TAZGeometry[index];
3097 if (newPosition != TAZGeometry[index]) {
3099 TAZGeometry[index] = newPosition;
3117 if (laneAtPopupPosition !=
nullptr) {
3127 for (
const auto& selectedEdge : selectedEdges) {
3151 if (laneAtPopupPosition !=
nullptr) {
3157 for (
const auto& lane : selectedLanes) {
3188 if (laneAtPopupPosition !=
nullptr) {
3194 for (
const auto& lane : selectedLanes) {
3211 if (laneAtPopupPosition !=
nullptr) {
3217 for (
const auto& lane : selectedLanes) {
3234 if (laneAtPopupPosition) {
3236 switch (FXSELID(sel)) {
3275 if (laneAtPopupPosition !=
nullptr) {
3283 for (
const auto& lane : edge.second->getLanes()) {
3284 if (lane->getReachability() >= 0) {
3309 FXEvent* evt = (FXEvent*)eventData;
3316 if (evt->click_count == 2) {
3317 handle(
this, FXSEL(SEL_DOUBLECLICKED, 0), eventData);
3331 bool cursorMoveView =
false;
3332 bool cursorInspect =
false;
3333 bool cursorSelect =
false;
3334 bool cursorMoveElement =
false;
3335 bool cursorDelete =
false;
3344 cursorMoveView =
true;
3348 cursorInspect =
true;
3350 cursorSelect =
true;
3352 cursorMoveElement =
true;
3354 cursorDelete =
true;
3361 cursorMoveView =
true;
3365 cursorInspect =
true;
3367 cursorSelect =
true;
3369 cursorMoveElement =
true;
3371 cursorDelete =
true;
3376 cursorMoveView =
true;
3380 cursorInspect =
true;
3382 cursorSelect =
true;
3384 cursorDelete =
true;
3392 }
else if (cursorInspect) {
3403 }
else if (cursorSelect) {
3414 }
else if (cursorMoveElement) {
3418 }
else if (cursorDelete) {
3442 const float minB[2] = { (float)bound.
xmin(), (float)bound.
ymin() };
3443 const float maxB[2] = { (float)bound.
xmax(), (float)bound.
ymax() };
3447 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
3448 glEnable(GL_POLYGON_OFFSET_FILL);
3449 glEnable(GL_POLYGON_OFFSET_LINE);
3497 for (
const auto& selectedJunction : selectedJunctions) {
3499 for (
const auto& incomingEdge : selectedJunction->getGNEIncomingEdges()) {
3503 for (
const auto& outgoingEdge : selectedJunction->getGNEOutgoingEdges()) {
3538 WRITE_WARNING(
TL(
"Grid is still active, press ctrl+g to deactivate"));
3559 for (
const auto& selectedJunction : selectedJunctions) {
3579 if (junction !=
nullptr) {
3592 if (junction !=
nullptr) {
3605 if (junction !=
nullptr) {
3617 if (junction !=
nullptr) {
3629 if (junction !=
nullptr) {
3658 if (junction !=
nullptr) {
3671 for (
const auto& selectedJunction : selectedJunctions) {
3689 if (junction !=
nullptr) {
3702 for (
const auto& selectedJunction : selectedJunctions) {
3720 if (junction !=
nullptr) {
3725 for (
const auto& selectedJunction : selectedJunctions) {
3748 if (junction !=
nullptr) {
3759 for (
const auto& selectedJunction : selectedJunctions) {
3761 if (selectedJunction->getNBNode()->getControllingTLS().empty()) {
3798 WRITE_WARNING(
TL(
"Grid is still active, press ctrl+g to deactivate"));
3833 WRITE_WARNING(
TL(
"Grid is still active, press ctrl+g to deactivate"));
3856 WRITE_WARNING(
TL(
"Grid is still active, press ctrl+g to deactivate"));
4074 std::set<GNEEdge*> edgesToUpdate;
4077 if (vehicle.second->getParentEdges().size() > 0) {
4078 edgesToUpdate.insert(vehicle.second->getParentEdges().front());
4079 }
else if (vehicle.second->getChildDemandElements().size() > 0 && (vehicle.second->getChildDemandElements().front()->getTagProperty().getTag() ==
GNE_TAG_ROUTE_EMBEDDED)) {
4080 edgesToUpdate.insert(vehicle.second->getChildDemandElements().front()->getParentEdges().front());
4084 if (routeFlow.second->getParentEdges().size() > 0) {
4085 edgesToUpdate.insert(routeFlow.second->getParentEdges().front());
4086 }
else if (routeFlow.second->getChildDemandElements().size() > 0 && (routeFlow.second->getChildDemandElements().front()->getTagProperty().getTag() ==
GNE_TAG_ROUTE_EMBEDDED)) {
4087 edgesToUpdate.insert(routeFlow.second->getChildDemandElements().front()->getParentEdges().front());
4091 if (trip.second->getParentEdges().size() > 0) {
4092 edgesToUpdate.insert(trip.second->getParentEdges().front());
4096 if (flow.second->getParentEdges().size() > 0) {
4097 edgesToUpdate.insert(flow.second->getParentEdges().front());
4101 for (
const auto& edge : edgesToUpdate) {
4102 edge->updateVehicleSpreadGeometries();
4319 if (personOrPersonPlan) {
4373 if (containerOrContainerPlan) {
4597 if (AC && !AC->isAttributeCarrierSelected()) {
4608 if (AC && AC->isAttributeCarrierSelected()) {
4619 if (edge && !edge->isAttributeCarrierSelected()) {
4630 if (edge && edge->isAttributeCarrierSelected()) {
4720 menuChecks.menuCheckToggleGrid->show();
4721 menuChecks.menuCheckToggleDrawJunctionShape->show();
4722 menuChecks.menuCheckDrawSpreadVehicles->show();
4723 menuChecks.menuCheckShowDemandElements->show();
4725 menuChecks.separator->show();
4740 menuChecks.menuCheckSelectEdges->show();
4741 menuChecks.menuCheckShowConnections->show();
4742 menuChecks.menuCheckShowAdditionalSubElements->show();
4743 menuChecks.menuCheckShowTAZElements->show();
4759 menuChecks.menuCheckShowAdditionalSubElements->show();
4760 menuChecks.menuCheckShowTAZElements->show();
4762 menuChecks.menuCheckSelectEdges->show();
4763 menuChecks.menuCheckShowConnections->show();
4777 menuChecks.menuCheckSelectEdges->show();
4778 menuChecks.menuCheckShowConnections->show();
4779 menuChecks.menuCheckExtendSelection->show();
4780 menuChecks.menuCheckShowAdditionalSubElements->show();
4781 menuChecks.menuCheckShowTAZElements->show();
4793 menuChecks.menuCheckChainEdges->show();
4794 menuChecks.menuCheckAutoOppositeEdge->show();
4806 menuChecks.menuCheckWarnAboutMerge->show();
4807 menuChecks.menuCheckShowJunctionBubble->show();
4808 menuChecks.menuCheckMoveElevation->show();
4824 menuChecks.menuCheckChangeAllPhases->show();
4834 menuChecks.menuCheckShowAdditionalSubElements->show();
4876 menuChecks.updateShortcuts();
4926 menuChecks.menuCheckToggleGrid->show();
4927 menuChecks.menuCheckToggleDrawJunctionShape->show();
4928 menuChecks.menuCheckDrawSpreadVehicles->show();
4929 menuChecks.menuCheckHideShapes->show();
4930 menuChecks.menuCheckShowAllTrips->show();
4931 menuChecks.menuCheckShowAllPersonPlans->show();
4932 menuChecks.menuCheckLockPerson->show();
4933 menuChecks.menuCheckShowAllContainerPlans->show();
4934 menuChecks.menuCheckLockContainer->show();
4935 menuChecks.menuCheckShowOverlappedRoutes->show();
4937 menuChecks.separator->show();
4950 menuChecks.menuCheckHideNonInspectedDemandElements->show();
5048 menuChecks.updateShortcuts();
5090 menuChecks.menuCheckToggleDrawJunctionShape->show();
5091 menuChecks.menuCheckShowAdditionals->show();
5092 menuChecks.menuCheckShowShapes->show();
5093 menuChecks.menuCheckShowDemandElements->show();
5095 menuChecks.separator->show();
5111 menuChecks.menuCheckToggleTAZRelDrawing->show();
5112 menuChecks.menuCheckToggleTAZDrawFill->show();
5113 menuChecks.menuCheckToggleTAZRelOnlyFrom->show();
5114 menuChecks.menuCheckToggleTAZRelOnlyTo->show();
5127 menuChecks.menuCheckToggleTAZRelDrawing->show();
5128 menuChecks.menuCheckToggleTAZRelOnlyFrom->show();
5129 menuChecks.menuCheckToggleTAZRelOnlyTo->show();
5142 menuChecks.menuCheckToggleTAZRelDrawing->show();
5143 menuChecks.menuCheckToggleTAZRelOnlyFrom->show();
5144 menuChecks.menuCheckToggleTAZRelOnlyTo->show();
5172 menuChecks.menuCheckToggleTAZRelDrawing->show();
5173 menuChecks.menuCheckToggleTAZDrawFill->show();
5174 menuChecks.menuCheckToggleTAZRelOnlyFrom->show();
5175 menuChecks.menuCheckToggleTAZRelOnlyTo->show();
5188 menuChecks.updateShortcuts();
5244 if (additionalElement) {
5256 if (demandElement) {
5358 bool deleteLastCreatedPoint =
false;
5368 if (temporalShape.size() > 0) {
5381 if (deleteLastCreatedPoint) {
5414 glTranslated(mousePosition.
x(), mousePosition.
y(), 0.1);
5469 auto shape = lane->getLaneShape();
5471 shape.move2side(lane->getDrawingConstants()->getDrawingWidth() * -1);
5473 const auto splitPosition = shape.positionAtOffset2D(offset);
5485 glTranslated(splitPosition.x(), splitPosition.y(), 0.1);
5514 glTranslated(junction->getNBNode()->getPosition().x(), junction->getNBNode()->getPosition().y(), 0.1);
5518 const double circleWidth = (junction->getNBNode()->getRadius() < 0) ? 4.0 : junction->getNBNode()->getRadius();
5704 }
else if (oppositeEdges.size() > 0) {
5742 if (AC && (AC->getTagProperty().isNetworkElement() || AC->getTagProperty().isAdditionalElement())) {
5744 if (AC->isAttributeCarrierSelected()) {
5783 WRITE_WARNING(
TL(
"Shift + click to create two additionals in the same position"));
5827 bool updateTemporalShape =
false;
5832 if (!updateTemporalShape) {
5956 if (frontAC->isAttributeCarrierSelected()) {
5993 if (frontAC->isAttributeCarrierSelected()) {
6032 WRITE_WARNING(
TL(
"Control + click to create two stop in the same position"));
6141 if (AC && AC->getTagProperty().getTag() ==
SUMO_TAG_TAZ) {
6154 if (AC->isAttributeCarrierSelected()) {
6155 if (!AC->getGUIGlObject()->isGLObjectLocked()) {
FXDEFMAP(GNEViewNet) GNEViewNetMap[]
@ DATA_MEANDATA
mode for create meanData elements
@ DATA_EDGERELDATA
mode for create edgeRelData elements
@ DATA_SELECT
mode for selecting data elements
@ DATA_TAZRELDATA
mode for create TAZRelData elements
@ DATA_INSPECT
mode for inspecting data elements
@ DATA_EDGEDATA
mode for create edgeData 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..)
@ NETWORK_SHAPE
Mode for editing Polygons.
@ NETWORK_DELETE
mode for deleting network elements
@ NETWORK_MOVE
mode for moving network elements
@ NETWORK_WIRE
Mode for editing wires.
@ NETWORK_ADDITIONAL
Mode for editing additionals.
@ NETWORK_TAZ
Mode for editing TAZ.
@ NETWORK_CREATE_EDGE
mode for creating new edges
@ NETWORK_TLS
mode for editing tls
@ NETWORK_CROSSING
Mode for editing crossing.
@ NETWORK_SELECT
mode for selecting network elements
@ NETWORK_INSPECT
mode for inspecting network elements
@ NETWORK_PROHIBITION
Mode for editing connection prohibitions.
@ NETWORK_CONNECT
mode for connecting lanes
@ NETWORK_DECAL
Mode for editing decals.
@ DEMAND_PERSONPLAN
Mode for editing person plan.
@ DEMAND_INSPECT
mode for inspecting demand elements
@ DEMAND_CONTAINER
Mode for editing container.
@ DEMAND_DELETE
mode for deleting demand elements
@ DEMAND_ROUTEDISTRIBUTION
Mode for editing route distributions.
@ DEMAND_PERSON
Mode for editing person.
@ DEMAND_TYPEDISTRIBUTION
Mode for editing type distributions.
@ DEMAND_SELECT
mode for selecting demand elements
@ DEMAND_ROUTE
Mode for editing routes.
@ DEMAND_VEHICLE
Mode for editing vehicles.
@ DEMAND_MOVE
mode for moving demand elements
@ DEMAND_STOP
Mode for editing stops.
@ DEMAND_CONTAINERPLAN
Mode for editing container plan.
@ DEMAND_TYPE
Mode for editing types.
@ MID_GNE_NETWORKVIEWOPTIONS_AUTOOPPOSITEEDGES
automatically create opposite edge
@ MID_GNE_ADDSELECT_EDGE
Add edge to selected items - menu entry.
@ MID_HOTKEY_F3_SUPERMODE_DEMAND
select demand supermode in netedit
@ MID_GNE_LANE_EDIT_SHAPE
edit lane shape
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLPERSONPLANS
show all person plans
@ MID_HOTKEY_SHIFT_S_LOCATESTOP
Locate stop - button.
@ MID_GNE_LANE_TRANSFORM_BIKE
transform lane to bikelane
@ MID_GNE_DATAVIEWOPTIONS_TAZRELDRAWING
toggle TAZRel drawing
@ MID_GNE_EDGE_REVERSE
reverse an edge
@ MID_GNE_JUNCTION_ADDTLS
Add TLS into junction.
@ MID_ADDSELECT
Add to selected items - menu entry.
@ MID_HOTKEY_U_MODE_DECAL_TYPEDISTRIBUTION
hotkey for mode decal AND type distribution
@ MID_GNE_LANE_ADD_BUS
add busLane
@ MID_GNE_NETWORKVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
@ MID_GNE_JUNCTION_RESET_EDGE_ENDPOINTS
reset edge endpoints
@ MID_GNE_NETWORKVIEWOPTIONS_MOVEELEVATION
move elevation instead of x,y
@ MID_GNE_NETWORKVIEWOPTIONS_HIDECONNECTIONS
hide connections
@ MID_GNE_REMOVESELECT_EDGE
Remove edge from selected items - Menu Entry.
@ 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_ADDREVERSE
add reverse element
@ MID_GNE_CONNECTION_SMOOTH_SHAPE
@ brief smooth connection shape
@ 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_GNE_JUNCTION_CLEAR_CONNECTIONS
clear junction's connections
@ MID_HOTKEY_A_MODE_STARTSIMULATION_ADDITIONALS_STOPS
hotkey for start simulation in SUMO and set editing mode additionals AND stops in netedit
@ MID_GNE_JUNCTION_SELECT_ROUNDABOUT
select all roundabout nodes and edges of the current roundabout
@ MID_GNE_JUNCTION_RESET_SHAPE
reset junction shape
@ MID_GNE_NETWORKVIEWOPTIONS_ASKFORMERGE
ask before merging junctions
@ MID_GNE_JUNCTION_RESET_CONNECTIONS
reset junction's connections
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWGRID
show grid
@ MID_GNE_JUNCTION_SPLIT
turn junction into multiple junctions
@ MID_GNE_EDGE_STRAIGHTEN_ELEVATION
interpolate z values linear between junctions
@ 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_GNE_POLYGON_CLOSE
close opened polygon
@ MID_GNE_EDGE_SMOOTH
smooth geometry
@ 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_SHIFT_O_LOCATEPOI
Locate poi - button.
@ 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_LANE_RESET_CUSTOMSHAPE
reset custom shape
@ MID_GNE_EDGE_STRAIGHTEN
remove inner geometry
@ MID_GNE_DEMANDVIEWOPTIONS_HIDESHAPES
hide shapes
@ MID_GNE_LANE_TRANSFORM_BUS
transform lane to busLane
@ MID_GNE_POLYGON_SET_FIRST_POINT
Set a vertex of polygon as first vertex.
@ MID_GNE_SHAPEEDITED_DELETE_GEOMETRY_POINT
delete geometry point in shape edited
@ MID_HOTKEY_SHIFT_A_LOCATEADDITIONAL
Locate additional structure - button.
@ MID_GNE_LANE_DUPLICATE
duplicate a lane
@ MID_GNE_DATAVIEWOPTIONS_SHOWADDITIONALS
show additionals
@ MID_HOTKEY_SHIFT_R_LOCATEROUTE
Locate route - button.
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWBUBBLES
show junctions as bubbles
@ MID_GNE_LANE_ADD_GREENVERGE_FRONT
add greenVerge front of current lane
@ MID_GNE_INTERVALBAR_END
end changed in InterbalBar
@ MID_HOTKEY_SHIFT_W_LOCATEWALKINGAREA
Locate edge - button.
@ MID_GNE_NETWORKVIEWOPTIONS_EXTENDSELECTION
extend selection
@ MID_GNE_LANE_REMOVE_GREENVERGE
remove greenVerge
@ MID_HOTKEY_S_MODE_STOPSIMULATION_SELECT
hotkey for stop simulation in SUMO and set select mode in netedit
@ MID_GNE_EDGE_ADD_REVERSE_DISCONNECTED
add reverse edge disconnected (used for for spreadtype center)
@ MID_GNE_EDGE_SPLIT_BIDI
split an edge
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWSUBADDITIONALS
show sub-additionals
@ MID_GNE_JUNCTION_REPLACE
turn junction into geometry node
@ MID_HOTKEY_SHIFT_C_LOCATECONTAINER
Locate container - button.
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLCONTAINERPLANS
show all container plans
@ MID_HOTKEY_SHIFT_V_LOCATEVEHICLE
Locate vehicle - button.
@ MID_GNE_VIEW_DEFAULT
set default view
@ MID_HOTKEY_F4_SUPERMODE_DATA
select data supermode in netedit
@ MID_HOTKEY_SHIFT_L_LOCATEPOLY
Locate polygons - button.
@ MID_GNE_LANE_REMOVE_BIKE
remove bikelane
@ MID_GNE_SHAPEEDITED_RESET
reset shape
@ MID_HOTKEY_SHIFT_E_LOCATEEDGE
Locate edge - button.
@ MID_GNE_VIEW_JUPEDSIM
set juPedSim view
@ MID_GNE_SHAPEEDITED_STRAIGHTEN
straighten shape edited geometry
@ MID_GNE_POI_TRANSFORM
Transform POI to POILane, and viceversa.
@ MID_GNE_LANE_RESET_OPPOSITELANE
reset opposite lane
@ 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_JUNCTION_CONVERT_ROUNDABOUT
convert junction to roundabout
@ MID_GNE_DATAVIEWOPTIONS_TAZDRAWFILL
toggle draw TAZ fill
@ MID_REACHABILITY
show reachability from a given lane
@ MID_HOTKEY_L_MODE_PERSONPLAN
hotkey for mode person plan
@ MID_GNE_EDGE_RESET_LENGTH
reset custom lengths
@ MID_HOTKEY_V_MODE_VEHICLE
hotkey for mode create vehicles
@ MID_HOTKEY_SHIFT_P_LOCATEPERSON
Locate person - button.
@ MID_HOTKEY_I_MODE_INSPECT
hotkey for mode inspecting object attributes
@ MID_GNE_LANE_REMOVE_BUS
remove busLane
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
@ MID_HOTKEY_SHIFT_J_LOCATEJUNCTION
Locate junction - button.
@ MID_GNE_POLYGON_SELECT
select elements within polygon boundary
@ MID_GNE_JUNCTION_SPLIT_RECONNECT
turn junction into multiple junctions and reconnect them heuristically
@ MID_GNE_REVERSE
reverse current element
@ MID_OPEN_ADDITIONAL_DIALOG
open additional dialog (used in netedit)
@ MID_GNE_WALKINGAREA_EDIT_SHAPE
edit crossing shape
@ MID_GNE_DEMANDVIEWOPTIONS_HIDENONINSPECTED
hide non-inspected demand element
@ MID_GNE_JUNCTION_EDIT_SHAPE
edit junction shape
@ MID_GNE_LANE_REMOVE_SIDEWALK
remove sidewalk
@ MID_GNE_SHAPEEDITED_OPEN
open closed shape edited
@ MID_GNE_EDGE_RESET_ENDPOINT
reset default geometry endpoints
@ MID_GNE_INTERVALBAR_GENERICDATATYPE
generic data selected
@ MID_GNE_LANE_ADD_GREENVERGE_BACK
add greenVerge back of current lane
@ MID_GNE_EDGE_SMOOTH_ELEVATION
smooth elevation with regard to adjoining edges
@ 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_EDGE_ADD_REVERSE
add reverse edge
@ MID_GNE_EDGE_APPLYTEMPLATE
apply template
@ MID_GNE_EDGE_USEASTEMPLATE
use edge as tempalte
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
@ MID_GNE_SHAPEEDITED_SIMPLIFY
simplify shape edited geometry
@ MID_GNE_DEMANDVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
@ MID_GNE_LANE_ADD_SIDEWALK
add sidewalk
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWOVERLAPPEDROUTES
show overlapped routes
@ MID_GNE_SHAPEEDITED_FINISH
finish editing shape edited
@ MID_GNE_RESET_GEOMETRYPOINT
reset geometry point
@ MID_GNE_CONNECTION_EDIT_SHAPE
edit connection shape
@ MID_GNE_SHAPEEDITED_CLOSE
close opened shape edited
@ MID_GNE_INTERVALBAR_DATASET
data set selected
@ MID_HOTKEY_SHIFT_T_LOCATETLS
Locate TLS - button.
@ MID_GNE_LANE_TRANSFORM_SIDEWALK
transform lane to sidewalk
@ MID_GNE_SHAPEEDITED_SET_FIRST_POINT
Set a vertex of shape edited as first vertex.
@ MID_GNE_LANE_ADD_BIKE
add bikelane
@ 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_EDGE_SPLIT
split an edge
@ MID_GNE_LANE_TRANSFORM_GREENVERGE
transform lane to greenVerge
@ MID_GNE_CUSTOM_GEOMETRYPOINT
set custom geometry point
@ 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_GNE_EDGE_EDIT_ENDPOINT
change default geometry endpoints
@ MID_GNE_POLYGON_DELETE_GEOMETRY_POINT
delete geometry point
@ MID_HOTKEY_P_MODE_POLYGON_PERSON
hotkey for mode creating polygons
@ MID_GNE_JUNCTION_ADDJOINTLS
Add join TLS into junctions.
@ MID_GNE_CROSSING_EDIT_SHAPE
edit crossing shape
@ MID_GNE_POLYGON_OPEN
open closed polygon
@ MID_GNE_POLYGON_SIMPLIFY_SHAPE
simplify polygon geometry
@ MID_REMOVESELECT
Remove from selected items - Menu Entry.
GUICompleteSchemeStorage gSchemeStorage
@ MOVEELEMENT
move element cursor
@ MOVEVIEW
move view cursor
@ SELECT_LANE
select lanecursor
@ DELETE_CURSOR
delete cursor
@ INSPECT_LANE
inspect lane cursor
#define GUIDesignButtonPopup
checkable button placed in popup (for example, locate buttons)
#define GUIDesignVerticalSeparator
vertical separator
@ GLO_TAZRELDATA
TAZ relation data.
@ GLO_WALKINGAREA
a walkingArea
@ GLO_TEMPORALSHAPE
temporal shape (used in netedit)
@ GLO_TESTELEMENT
test element (used in netedit)
@ GLO_FRONTELEMENT
front element (used in netedit)
@ GLO_CONNECTION
a connection
GUIViewObjectsHandler gViewObjectsHandler
GUIViewUpdater gViewUpdater
#define WRITE_WARNINGF(...)
#define WRITE_WARNING(msg)
StringBijection< SUMOVehicleClass > SumoVehicleClassStrings(sumoVehicleClassStringInitializer, SVC_CUSTOM2, false)
long long int SVCPermissions
bitset where each bit declares whether a certain SVC may use this edge/lane
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
@ SVC_IGNORING
vehicles ignoring classes
@ SVC_BICYCLE
vehicle is a bicycle
@ SVC_BUS
vehicle is a bus
@ SVC_PEDESTRIAN
pedestrian
@ SUMO_TAG_EDGEREL
a relation between two edges
@ SUMO_TAG_TAZ
a traffic assignment zone
@ SUMO_TAG_POI
begin/end of the description of a Point of interest
@ SUMO_TAG_VEHICLE
description of a vehicle
@ GNE_TAG_FLOW_ROUTE
a flow definition using a route instead of a from-to edges route
@ SUMO_TAG_FLOW
a flow definition using from and to edges or a route
@ SUMO_TAG_CONNECTION
connectioon between two lanes
@ SUMO_TAG_JUNCTION
begin/end of the description of a junction
@ SUMO_TAG_CROSSING
crossing between edges for pedestrians
@ SUMO_TAG_POLY
begin/end of the description of a polygon
@ SUMO_TAG_LANE
begin/end of the description of a single lane
@ GNE_TAG_JPS_OBSTACLE
polygon used for draw juPedSim obstacles
@ SUMO_TAG_TAZREL
a relation between two TAZs
@ GNE_TAG_ROUTE_EMBEDDED
embedded route
@ SUMO_TAG_INDUCTION_LOOP
alternative tag for e1 detector
@ GNE_TAG_JPS_WALKABLEAREA
polygon used for draw juPedSim walkable areas
@ SUMO_TAG_TRIP
a single trip definition (used by router)
@ SUMO_TAG_EDGE
begin/end of the description of an edge
@ GNE_ATTR_OPPOSITE
to busStop (used by personPlans)
@ GNE_ATTR_SELECTED
element is selected
@ SUMO_ATTR_CUSTOMSHAPE
whether a given shape is user-defined
@ SUMO_ATTR_SHAPE
edge: the shape in xml-definition
@ GNE_ATTR_SHAPE_END
last coordinate of edge shape
@ SUMO_ATTR_TLID
link,node: the traffic light id responsible for this link
@ GNE_ATTR_SHAPE_START
first coordinate of edge shape
const double SUMO_const_laneWidth
const unsigned char TLS[]
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
void parseSumoBaseObject(CommonXMLStructure::SumoBaseObject *obj)
parse SumoBaseObject (it's called recursivelly)
A class that stores a 2D geometrical boundary.
void add(double x, double y, double z=0)
Makes the boundary include the given coordinate.
double ymin() const
Returns minimum y-coordinate.
double xmin() const
Returns minimum x-coordinate.
Boundary & grow(double by)
extends the boundary by the given amount
double ymax() const
Returns maximum y-coordinate.
double xmax() const
Returns maximum x-coordinate.
void addBoolAttribute(const SumoXMLAttr attr, const bool value)
add bool attribute into current SumoBaseObject node
void addDoubleAttribute(const SumoXMLAttr attr, const double value)
add double attribute into current SumoBaseObject node
void addStringAttribute(const SumoXMLAttr attr, const std::string &value)
add string attribute into current SumoBaseObject node
static void drawLine(const Position &beg, double rot, double visLength)
Draws a thin line.
static void setColor(const RGBColor &c)
Sets the gl-color to this value.
static void drawOutlineCircle(double radius, double iRadius, int steps=8)
Draws an unfilled circle around (0,0)
static void drawFilledCircle(const double widradiusth, const int steps=8)
Draws a filled circle around (0,0)
static void popMatrix()
pop matrix
static void pushMatrix()
push matrix
GNEConsecutiveSelector * getConsecutiveLaneSelector() const
get consecutive lane selector
GNENetworkSelector * getLanesSelector() const
get edges selector
bool createPath(const bool useLastRoute)
create path
bool addAdditional(const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
add additional element
GNENetworkSelector * getEdgesSelector() const
get edges selector
GNENeteditAttributes * getNeteditAttributes() const
get Netedit parameter
Builds additional objects for GNENet (busStops, chargingStations, detectors, etc.....
An Element which don't belong to GNENet but has influence in the simulation.
virtual void openAdditionalDialog()
open Additional Dialog
GNEApplicationWindowHelper::EditMenuCommands & getEditMenuCommands()
get Edit Menu Commands (needed for show/hide menu commands)
GNEApplicationWindowHelper::ToolbarsGrip & getToolbarsGrip()
get ToolbarsGrip
bool isUndoRedoAllowed() const
const std::string getID() const
get ID (all Attribute Carriers have one)
bool isAttributeCarrierSelected() const
check if attribute carrier is selected
const std::string & getTagStr() const
get tag assigned to this object in string format
const GNETagProperties & getTagProperty() const
get tagProperty associated with this Attribute Carrier
void unselectAttributeCarrier(const bool changeFlag=true)
unselect attribute carrier using GUIGlobalSelection
void selectAttributeCarrier(const bool changeFlag=true)
select attribute carrier using GUIGlobalSelection
virtual GUIGlObject * getGUIGlObject()=0
static void changeAttribute(GNEAttributeCarrier *AC, SumoXMLAttr key, const std::string &value, GNEUndoList *undoList, const bool force=false)
change attribute
void smootShape()
smoothShape
long onCmdSaveModifications(FXObject *, FXSelector, void *)
Called when the user presses the OK-Button saves any connection modifications.
long onCmdCancelModifications(FXObject *, FXSelector, void *)
Called when the user presses the Cancel-button discards any connection modifications.
ConnectionModifications * getConnectionModifications() const
get pointer to ConnectionModifications module
void handleLaneClick(const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
either sets the current lane or toggles the connection of the
void drawTemporalConsecutiveLanePath() const
draw temporal consecutive lane path
void abortPathCreation()
abort path creation
void removeLastElement()
remove path element
GNEPlanCreator * getPlanCreator() const
get plan creator module
bool addContainer(const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
add vehicle element
GNEPlanCreator * getPlanCreator() const
get plan creator module
bool addContainerPlanElement(const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
add container plan element
void processClick(const Position &clickedPosition, const GNEViewNetHelper::ViewObjectsSelector &viewObjects, const bool oppositeEdge, const bool chainEdge)
handle processClick and set the relative coloring
void abortEdgeCreation()
abort current edge creation
void show()
show create edge frame
const GNEJunction * getJunctionSource() const
get junction source for new edge
void clearEdgesHotkey()
clear edges (used when user press ESC key in Crossing mode)
void createCrossingHotkey()
create crossing (used when user press ENTER key in Crossing mode)
void addCrossing(const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
add Crossing element
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
GNEJunction * getParentJunction() const
get parent Junction
An Element which don't belong to GNENet but has influence in the simulation.
bool deleteOnlyGeometryPoints() const
check if only delete geometry points checkbox is enabled
bool removeGeometryPoint(const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
remove geometry point
DeleteOptions * getDeleteOptions() const
get delete options modul
void removeSelectedAttributeCarriers()
remove selected attribute carriers (element)
void removeAttributeCarrier(const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
remove attribute carrier (element)
void show()
show delete frame
void refreshDistributionSelector()
refresh modul
void startDrawing()
start drawing
bool isDrawing() const
return true if currently a shape is drawed
bool getDeleteLastCreatedPoint()
get flag delete last created point
void abortDrawing()
abort drawing
void setDeleteLastCreatedPoint(bool value)
enable or disable delete last created point
void stopDrawing()
stop drawing and check if shape can be created
const PositionVector & getTemporalShape() const
get Temporal shape
bool addEdgeData(const GNEViewNetHelper::ViewObjectsSelector &viewObjects, const GNEViewNetHelper::MouseButtonKeyPressed &mouseButtonKeyPressed)
add additional element
A road/street connecting two junctions (netedit-version)
void smooth(GNEUndoList *undoList)
make geometry smooth
NBEdge * getNBEdge() const
returns the internal NBEdge
void smoothElevation(GNEUndoList *undoList)
smooth elevation with regard to adjoining edges
const std::vector< GNELane * > & getLanes() const
returns a reference to the lane vector
std::vector< GNEEdge * > getOppositeEdges() const
get opposite edges
void copyTemplate(const GNEEdgeTemplate *edgeTemplate, GNEUndoList *undoList)
copy edge attributes from edgetemplate
void editEndpoint(Position pos, GNEUndoList *undoList)
makes pos the new geometry endpoint at the appropriate end, or remove current existent endpoint
Position getSplitPos(const Position &clickPos)
void straightenElevation(GNEUndoList *undoList)
interpolate z values linear between junctions
void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)
void resetEndpoint(const Position &pos, GNEUndoList *undoList)
restores the endpoint to the junction position at the appropriate end
bool addEdgeRelationData(const GNEViewNetHelper::ViewObjectsSelector &viewObjects, const GNEViewNetHelper::MouseButtonKeyPressed &mouseButtonKeyPressed)
add additional element
void focusUpperElement()
focus upper element of frame
virtual void show()
show Frame
GNEPathCreator * getPathCreator() const
get GNEPathCreator modul
An Element which don't belong to GNENet but has influence in the simulation.
Dialog to edit geometry points.
const std::vector< GNEDemandElement * > & getParentDemandElements() const
get parent demand elements
bool isSelectingParent() const
check if we're selecting a new parent
void setNewParent(GNEAttributeCarrier *clickedAC)
set new parent
void setEdgeTemplate(const GNEEdge *edge)
set edge template
GNEEdgeTemplate * getEdgeTemplate() const
get edge template (to copy attributes from)
void inspectSingleElement(GNEAttributeCarrier *AC)
Inspect a single element.
TemplateEditor * getTemplateEditor() const
get template editor
bool processDemandSupermodeClick(const Position &clickedPosition, GNEViewNetHelper::ViewObjectsSelector &viewObjects)
process click over Viewnet in Supermode Demand
void clearInspectedAC()
Clear all current inspected ACs.
void show()
show inspector frame
GNEOverlappedInspection * getOverlappedInspection() const
get GNEOverlappedInspection modul
GNEInspectorFrame::NeteditAttributesEditor * getNeteditAttributesEditor() const
get Netedit Attributes editor
bool processNetworkSupermodeClick(const Position &clickedPosition, GNEViewNetHelper::ViewObjectsSelector &viewObjects)
process click over Viewnet in Supermode Network
bool processDataSupermodeClick(const Position &clickedPosition, GNEViewNetHelper::ViewObjectsSelector &viewObjects)
process click over Viewnet in Supermode Data
const std::vector< GNEEdge * > & getGNEIncomingEdges() const
Returns incoming GNEEdges.
std::string getAttribute(SumoXMLAttr key) const
void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)
Position getPositionInView() const
Returns position of hierarchical element in view.
const std::vector< GNEEdge * > & getGNEOutgoingEdges() const
Returns incoming GNEEdges.
NBNode * getNBNode() const
Return net build node.
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
const PositionVector & getLaneShape() const
get elements shape
int getIndex() const
returns the index of the lane
void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)
GNEEdge * getParentEdge() const
get parent edge
virtual void removeGeometryPoint(const Position clickedPosition, GNEUndoList *undoList)=0
remove geometry point in the clicked position
void show()
show prohibition frame
GNEAttributeCarrier * retrieveAttributeCarrier(const GUIGlID id, bool hardFail=true) const
get a single attribute carrier based on a GLID
const std::unordered_map< SumoXMLTag, std::unordered_map< const GUIGlObject *, GNEDemandElement * > > & getDemandElements() const
get demand elements
std::vector< GNEAdditional * > getSelectedShapes() const
get selected shapes
GNELane * retrieveLane(const std::string &id, bool hardFail=true, bool checkVolatileChange=false) const
get lane by id
GNECrossing * retrieveCrossing(const GUIGlObject *glObject, bool hardFail=true) const
get Crossing by AC
GNEAdditional * retrieveAdditional(SumoXMLTag type, const std::string &id, bool hardFail=true) const
Returns the named additional.
const std::unordered_map< SumoXMLTag, std::unordered_map< const GUIGlObject *, GNEGenericData * > > & getGenericDatas() const
get all generic datas
GNEWalkingArea * retrieveWalkingArea(const GUIGlObject *glObject, bool hardFail=true) const
get WalkingArea by GlObject
bool isNetworkElementAroundShape(GNEAttributeCarrier *AC, const PositionVector &shape) const
check if shape of given AC (network element) is around the given shape
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.
std::vector< GNELane * > getSelectedLanes() const
get selected lanes
const std::map< std::string, GNEEdge * > & getEdges() const
map with the ID and pointer to edges of net
std::vector< GNEJunction * > getSelectedJunctions() const
return selected junctions
GNEDataInterval * retrieveDataInterval(const GNEAttributeCarrier *AC, bool hardFail=true) const
Returns the data interval.
GNEEdge * retrieveEdge(const std::string &id, bool hardFail=true) const
get edge by id
const std::unordered_map< const GUIGlObject *, GNELane * > & getLanes() const
get lanes
std::vector< GNEEdge * > getSelectedEdges() const
return all edges
const std::map< std::string, GNEJunction * > & getJunctions() const
get junctions
GNEDemandElement * retrieveDemandElement(SumoXMLTag type, const std::string &id, bool hardFail=true) const
Returns the named demand element.
GNEGenericData * retrieveGenericData(const GUIGlObject *glObject, bool hardFail=true) const
Returns the generic data.
std::vector< GNEAttributeCarrier * > getSelectedAttributeCarriers(const bool ignoreCurrentSupermode)
get all selected attribute carriers (or only relative to current supermode
GNEConnection * retrieveConnection(const std::string &id, bool hardFail=true) const
get Connection by id
A NBNetBuilder extended by visualisation and editing capabilities.
void deleteEdge(GNEEdge *edge, GNEUndoList *undoList, bool recomputeConnections)
removes edge
void deleteLane(GNELane *lane, GNEUndoList *undoList, bool recomputeConnections)
removes lane
void deleteCrossing(GNECrossing *crossing, GNEUndoList *undoList)
remove crossing
SUMORTree & getGrid()
Returns the RTree used for visualisation speed-up.
void deleteAdditional(GNEAdditional *additional, GNEUndoList *undoList)
remove additional
void computeAndUpdate(OptionsCont &neteditOptions, bool volatileOptions)
recompute the network and update lane geometries
GNEPathManager * getDataPathManager()
get data path manager
void reverseEdge(GNEEdge *edge, GNEUndoList *undoList)
reverse edge
NBTrafficLightLogicCont & getTLLogicCont()
returns the tllcont of the underlying netbuilder
bool restrictLane(SUMOVehicleClass vclass, GNELane *lane, GNEUndoList *undoList)
transform lane to restricted lane
void deleteDemandElement(GNEDemandElement *demandElement, GNEUndoList *undoList)
remove demand element
void duplicateLane(GNELane *lane, GNEUndoList *undoList, bool recomputeConnections)
duplicates lane
void deleteDataInterval(GNEDataInterval *dataInterval, GNEUndoList *undoList)
remove data interval
void deleteConnection(GNEConnection *connection, GNEUndoList *undoList)
remove connection
GNEPathManager * getDemandPathManager()
get demand path manager
void resetJunctionConnections(GNEJunction *junction, GNEUndoList *undoList)
reset junction's connections
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
void deleteGenericData(GNEGenericData *genericData, GNEUndoList *undoList)
remove generic data
std::pair< GNEJunction *, GNEEdge * > splitEdge(GNEEdge *edge, const Position &pos, GNEUndoList *undoList, GNEJunction *newJunction=0)
split edge at position by inserting a new junction
GNENetHelper::AttributeCarriers * getAttributeCarriers() const
get all attribute carriers used in this net
GNEEdge * addReversedEdge(GNEEdge *edge, const bool disconnected, GNEUndoList *undoList)
add reversed edge
void splitEdgesBidi(GNEEdge *edge, GNEEdge *oppositeEdge, const Position &pos, GNEUndoList *undoList)
split all edges at position by inserting one new junction
bool removeRestrictedLane(SUMOVehicleClass vclass, GNEEdge *edge, GNEUndoList *undoList)
remove restricted lane
void mergeJunctions(GNEJunction *moved, GNEJunction *target, GNEUndoList *undoList)
merge the given junctions edges between the given junctions will be deleted
bool addRestrictedLane(SUMOVehicleClass vclass, GNEEdge *edge, int index, GNEUndoList *undoList)
add restricted lane to edge
bool addGreenVergeLane(GNEEdge *edge, int index, GNEUndoList *undoList)
add restricted lane to edge
void deleteDataSet(GNEDataSet *dataSet, GNEUndoList *undoList)
remove data set
GNEPathManager * getNetworkPathManager()
get network path manager
void splitJunction(GNEJunction *junction, bool reconnect, GNEUndoList *undoList)
replace the selected junction by a list of junctions for each unique edge endpoint
void selectRoundabout(GNEJunction *junction, GNEUndoList *undoList)
select all roundabout edges and junctions for the current roundabout
void replaceJunctionByGeometry(GNEJunction *junction, GNEUndoList *undoList)
replace the selected junction by geometry node(s) and merge the edges
void createRoundabout(GNEJunction *junction, GNEUndoList *undoList)
transform the given junction into a roundabout
void requireRecompute()
inform the net about the need for recomputation
void initGNEConnections()
initialize GNEConnections
void deleteJunction(GNEJunction *junction, GNEUndoList *undoList)
removes junction and all incident edges
NBEdgeCont & getEdgeCont()
returns the NBEdgeCont of the underlying netbuilder
GNEViewNet * getViewNet() const
get view net
void clearJunctionConnections(GNEJunction *junction, GNEUndoList *undoList)
clear junction's connections
void computeDemandElements(GNEApplicationWindow *window)
compute demand elements param[in] window The window to inform about delay
void drawLaneReference(const GNELane *lane) const
draw lane reference
void closeShapeEdited(GNEUndoList *undoList)
close shape edited
void setFirstGeometryPointShapeEdited(const int index, GNEUndoList *undoList)
set first geometry point shape edited
void openShapeEdited(GNEUndoList *undoList)
open shape edited
int getGeometryPointUnderCursorShapeEdited() const
get index geometry point under cursor of shape edited
void simplifyShapeEdited(GNEUndoList *undoList)
simplify shape edited
void straigthenShapeEdited(GNEUndoList *undoList)
straigthen shape edited
void deleteGeometryPointShapeEdited(const int index, GNEUndoList *undoList)
delete geometry point shape edited
void resetShapeEdited(GNEUndoList *undoList)
reset shape edited
void clearSelection()
clear selection
bool overlappedInspectionShown() const
check if overlappedInspection modul is shown
bool checkSavedPosition(const Position &clickedPosition) const
check if given position is near to saved position
long onCmdCreatePath(FXObject *, FXSelector, void *)
void abortPathCreation()
abort path creation
void removeLastElement()
remove path element
bool createPath(const bool useLastRoute)
create path
void drawTemporalRoute(const GUIVisualizationSettings &s) const
draw temporal route
void calculateReachability(const SUMOVehicleClass vClass, GNEEdge *originEdge)
calculate reachability for given edge
void clearPathDraw()
clear path draw
PathCalculator * getPathCalculator()
obtain instance of PathCalculator
PathDraw * getPathDraw()
obtain instance of PathDraw
void redrawPathElements(const GUIVisualizationSettings &s) const
redraw path elements saved in gViewObjectsHandler buffer
GNEPlanCreator * getPlanCreator() const
get plan creator module
GNEPlanSelector * getPlanSelector() const
get personPlan selector
bool addPerson(const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
add vehicle element
bool addPersonPlanElement(const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
add person plan element
GNEPlanCreator * getPlanCreator() const
get plan creator module
GNEPlanSelector * getPlanSelector() const
get personPlan selector
void removeLastElement()
remove path element
long onCmdCreatePath(FXObject *, FXSelector, void *)
void abortPathCreation()
abort path creation
void drawTemporalRoute(const GUIVisualizationSettings &s) const
draw temporal route
const GNETagProperties & getCurrentPlanTagProperties() const
get current plan tag properties
int getVertexIndex(Position pos, bool snapToGrid)
return index of a vertex of shape, or of a new vertex if position is over an shape's edge
void closePolygon(bool allowUndo=true)
close polygon
void changeFirstGeometryPoint(int oldIndex, bool allowUndo=true)
change first geometry point
void deleteGeometryPoint(const Position &pos, bool allowUndo=true)
delete the geometry point closest to the given pos
void simplifyShape(bool allowUndo=true)
replace the current shape with a rectangle
void openPolygon(bool allowUndo=true)
open polygon
long onCmdCancel(FXObject *, FXSelector, void *)
Called when the user presses the Cancel-button discards any prohibition modifications.
void handleProhibitionClick(const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
handle prohibitions and set the relative coloring
GNEProhibitionFrame::Selection * getSelectionModul() const
get selection module
void show()
show prohibition frame
GNEDistributionFrame::DistributionSelector * getDistributionSelector() const
get route distribution selector
void show()
show delete frame
GNEPathCreator * getPathCreator() const
get path creator module
bool addEdgeRoute(GNEEdge *clickedEdge, const GNEViewNetHelper::MouseButtonKeyPressed &mouseButtonKeyPressed)
add route edge
static void addReverse(GNEDemandElement *element)
add reverse for given demand element
static void reverse(GNEDemandElement *element)
reverse given demand element
void clearCurrentSelection() const
clear current selection with possibility of undo/redo
bool selectAttributeCarrier(const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
select attribute carrier (element)
bool processClick(const Position &clickedPosition, const GNEViewNetHelper::ViewObjectsSelector &viewObjects, bool &updateTemporalShape)
process click over Viewnet
GNEDrawingShape * getDrawingShapeModule() const
get drawing mode editor
bool addStop(const GNEViewNetHelper::ViewObjectsSelector &viewObjects, const GNEViewNetHelper::MouseButtonKeyPressed &mouseButtonKeyPressed)
add Stop element
void setTAZ(GNETAZ *editedTAZ)
set current TAZ
GNETAZ * getTAZ() const
get current TAZ
bool isChangesPending() const
return true if there is changes to save
long onCmdSaveChanges(FXObject *, FXSelector, void *)
TAZSaveChanges * getTAZSaveChangesModule() const
get TAZ Save Changes modul
GNEDrawingShape * getDrawingShapeModule() const
get drawing mode modul
CurrentTAZ * getCurrentTAZModule() const
get Current TAZ modul
void processEdgeSelection(const std::vector< GNEEdge * > &edges)
process selection of edges in view net
bool processClick(const Position &clickedPosition, const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
process click over Viewnet
bool setTAZ(const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
set clicked TAZ
void buildTAZRelationData()
build TAZRelation data
void clearTAZSelection()
clear TAZ selection
bool isSetDetectorsToggleButtonEnabled() const
toggle button for set detectors mode
void disableE1DetectorMode()
disable detector mode
const std::map< std::string, std::string > & getE1Detectors() const
get E1 detectors vinculated with this TLS
bool checkHaveModifications() const
check if current TLS was modified
long onCmdSaveChanges(FXObject *, FXSelector, void *)
Called when the user presses the save-Button.
void discardChanges(const bool editJunctionAgain)
discard changes
const std::vector< std::string > & getSelectedJunctionIDs() const
get selected junction IDs
long onCmdCancelJoin(FXObject *, FXSelector, void *)
cancel join
long onCmdAcceptJoin(FXObject *, FXSelector, void *)
accept join
GNEJunction * getCurrentJunction() const
get current modified junction
bool isJoiningJunctions() const
is joining junctions
GNETLSEditorFrame::TLSAttributes * getTLSAttributes() const
get module for TLS attributes
void editJunction(GNEJunction *junction)
edits the traffic light for the given junction
void editTLS(const Position &clickedPosition, const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
edits the traffic light for the given clicked junction
GNETLSEditorFrame::TLSJunction * getTLSJunction() const
get module for TLS Junction
GNETLSEditorFrame::TLSDefinition * getTLSDefinition() const
get module for TLS Definition
void show()
show inspector frame
bool isContainer() const
return true if tag correspond to a container element
bool planRoute() const
return true if tag correspond to a plan placed over route
bool isPlacedInRTree() const
return true if Tag correspond to an element that has to be placed in RTREE
SumoXMLTag getTag() const
get Tag vinculated with this attribute Property
bool hasDialog() const
return true if tag correspond to an element that can be edited using a dialog
bool isAdditionalElement() const
return true if tag correspond to an additional element (note: this include TAZ, shapes and wires)
bool isPerson() const
return true if tag correspond to a person element
GNEDistributionFrame::DistributionSelector * getDistributionSelector() const
get type distribution selector
void end()
End undo command sub-group. If the sub-group is still empty, it will be deleted; otherwise,...
void begin(GUIIcon icon, const std::string &description)
Begin undo command sub-group with current supermode. This begins a new group of commands that are tre...
void abortAllChangeGroups()
reverts and discards ALL active chained change groups
void add(GNEChange *command, bool doit=false, bool merge=true)
Add new command, executing it if desired. The new command will be merged with the previous command if...
GNEPathCreator * getPathCreator() const
get GNEPathCreator module
bool addVehicle(const GNEViewNetHelper::ViewObjectsSelector &viewObjects, const GNEViewNetHelper::MouseButtonKeyPressed &mouseButtonKeyPressed)
add vehicle element
class used for group inspected elements
bool isInspectingElements() const
check if we're inspecting at least one element
const std::unordered_set< GNEAttributeCarrier * > & getACs() const
get hash table with all inspected ACs
GNEAttributeCarrier * getFirstAC() const
class used to group all variables related to interval bar
void setDataSet()
set dataSet
void setParameter()
set parameter
void hideIntervalBar()
hide all options menu checks
void setGenericDataType()
set generic data type
void showIntervalBar()
show interval option bar
void buildIntervalBarElements()
build interval bar elements
void setInterval()
update limit by interval
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
class used to group all variables related with objects under cursor after a click over view
void updateObjects()
update objects (using gViewObjectsHandler)
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
void filterLockedElements(const std::vector< GUIGlObjectType > ignoreFilter={})
filter locked elements (except the ignoreFilter)
GNEPOI * getPOIFront() const
get front POI or a pointer to nullptr
GNEEdge * getEdgeFront() const
get front edge or a pointer to nullptr
GNEAttributeCarrier * getAttributeCarrierFront() const
get front attribute carrier or a pointer to nullptr
void filterDemandElements(const bool includeRoutes)
filter (remove) demand elements
void filterAdditionals(const bool includeStoppigPlaces, const bool includeTAZs)
filter (remove) additionals
GNELane * getLaneFront() const
get front lane or a pointer to nullptr
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
GNEJunction * getJunctionFront() const
get front junction or a pointer to nullptr
void filterLanes()
filter (remove) lanes
const std::vector< GUIGlObject * > & getGLObjects() const
get vector with GL objects
void filterShapes()
filter (remove) polys and POIs
GNEViewNetHelper::EditNetworkElementShapes myEditNetworkElementShapes
struct for grouping all variables related with edit shapes
long onCmdToggleShowDemandElementsNetwork(FXObject *, FXSelector, void *)
toggle show demand elements (network)
long onCmdClosePolygon(FXObject *, FXSelector, void *)
close opened polygon
bool isCurrentlyMovingElements() const
check if an element is being moved
long onCmdEditCrossingShape(FXObject *, FXSelector, void *)
edit crossing shape
void processMoveMouseNetwork(const bool mouseLeftButtonPressed)
process move mouse function in Supermode Network
const GNEViewNetHelper::DataViewOptions & getDataViewOptions() const
get data view options
GNENet * getNet() const
get the net object
long onCmdSetFirstGeometryPoint(FXObject *, FXSelector, void *)
set as first geometry point the closes geometry point
long onCmdEdgeUseAsTemplate(FXObject *, FXSelector, void *)
use edge as template
long onCmdSmoothConnectionShape(FXObject *, FXSelector, void *)
edit connection shape
GNEViewNetHelper::CommonCheckableButtons myCommonCheckableButtons
variable used to save checkable buttons for common supermodes
long onMouseMove(FXObject *, FXSelector, void *)
called when user moves mouse
const GNEAttributeCarrier * getFrontAttributeCarrier() const
get front attributeCarrier
void hotkeyBackSpace()
handle backspace keypress
GNEDemandElement * myLastCreatedRoute
last created route
const GNEViewNetHelper::EditModes & getEditModes() const
get edit modes
long onCmdAddSelected(FXObject *, FXSelector, void *)
select AC under cursor
const GNEViewNetHelper::EditNetworkElementShapes & getEditNetworkElementShapes() const
get Edit Shape module
void setFrontAttributeCarrier(GNEAttributeCarrier *AC)
set front attributeCarrier
GNECrossing * getCrossingAtPopupPosition()
try to retrieve a crossing at popup position
void buildViewToolBars(GUIGlChildWindow *v)
builds the view toolbars
void updateNetworkModeSpecificControls()
updates Network mode specific controls
long onCmdAddTLS(FXObject *, FXSelector, void *)
add TLS
long onCmdSmoothEdges(FXObject *, FXSelector, void *)
smooth geometry
long onCmdStraightenEdges(FXObject *, FXSelector, void *)
makes selected edges straight
const GNEViewNetHelper::MouseButtonKeyPressed & getMouseButtonKeyPressed() const
get Key Pressed module
void updateCursor()
update cursor after every click/key press/release
void updateDataModeSpecificControls()
updates Data mode specific controls
GNEEdge * getEdgeAtPopupPosition()
try to retrieve an edge at popup position
long onCmdToggleShowDemandElementsData(FXObject *, FXSelector, void *)
toggle show demand elements (data)
GNEViewNetHelper::EditModes myEditModes
variable used to save variables related with edit moves modes
long onCmdReplaceJunction(FXObject *, FXSelector, void *)
replace node by geometry
bool restrictLane(GNELane *lane, SUMOVehicleClass vclass)
restrict lane
long onCmdSplitJunction(FXObject *, FXSelector, void *)
split junction into multiple junctions
void drawGrid() const
draw grid and update grid button
void deleteDemandAttributeCarrier(const GNEAttributeCarrier *AC)
delete given demand attribute carriers
long onCmdClearConnections(FXObject *, FXSelector, void *)
clear junction connections
void abortOperation(bool clearSelection=true)
abort current edition operation
long onCmdToggleTAZDrawFill(FXObject *, FXSelector, void *)
toggle TAZdrawFill
long onCmdResetEndPoints(FXObject *, FXSelector, void *)
reset edge end points
void updateObjectsInPosition(const Position &pos)
update objects and boundaries in position
GNEViewNetHelper::TestingMode myTestingMode
variable used to save variables related with testing mode
GNEDemandElement * getLastCreatedRoute() const
get last created route
GNEViewNetHelper::InspectedElements & getInspectedElements()
get inspected elements
long onCmdToggleWarnAboutMerge(FXObject *, FXSelector, void *)
toggle warn for merge
long onCmdToggleDrawSpreadVehicles(FXObject *, FXSelector, void *)
toggle draw vehicles in begin position or spread in lane
GNEPOI * getPOIAtPopupPosition()
try to retrieve a POILane at popup position
GNEViewNetHelper::SelectingArea mySelectingArea
variable used for grouping all variables related with selecting areas
GNENetworkElement * getShapeEditedAtPopupPosition()
try to retreive a edited shape at popup position
const GNEViewNetHelper::MoveSingleElementModul & getMoveSingleElementValues() const
get move single element values
long onCmdToggleShowConnections(FXObject *, FXSelector, void *)
toggle show connections
void updateObjectsInBoundary(const Boundary &boundary)
get objects in the given boundary
long onCmdLaneReachability(FXObject *, FXSelector sel, void *)
show lane reachability
long onCmdToggleShowTAZElements(FXObject *, FXSelector, void *)
toggle show TAZ elements
GNEViewNetHelper::NetworkCheckableButtons myNetworkCheckableButtons
variable used to save checkable buttons for Supermode Network
long onCmdCloseShapeEdited(FXObject *, FXSelector, void *)
close opened shape edited
std::vector< std::string > getEdgeDataAttrs() const
return list of loaded edgeData attributes
bool myCreatedPopup
flag for mark if during this frame a popup was created (needed to avoid problems in linux with Cursor...
void openSelectDialogAtCursor(const std::vector< GUIGlObject * > &GLObjects)
open select dialog at cursor
long onCmdSimplifyShapeEdited(FXObject *, FXSelector, void *)
void openObjectDialogAtCursor(const FXEvent *ev)
open object dialog
void processClick(void *eventData)
Auxiliary function used by onLeftBtnPress(...)
void drawNeteditAttributesReferences()
draw circle in testing mode (needed for grid)
long onCmdSimplifyShape(FXObject *, FXSelector, void *)
simply shape of current polygon
GNELane * getLaneAtPopupPosition()
try to retrieve a lane at popup position
GNEAttributeCarrier * myFrontAttributeCarrier
front attribute carrier
GNEViewNetHelper::MouseButtonKeyPressed myMouseButtonKeyPressed
variable used to save key status after certain events
void recalculateBoundaries()
recalculate boundaries
GNEViewNetHelper::IntervalBar myIntervalBar
variable used to save IntervalBar
GNEViewParent * myViewParent
view parent
bool showJunctionAsBubbles() const
return true if junction must be showed as bubbles
bool changeAllPhases() const
change all phases
long onCmdEditJunctionShape(FXObject *, FXSelector, void *)
edit junction shape
long onCmdToggleMoveElevation(FXObject *, FXSelector, void *)
toggle move elevation
GNEWalkingArea * getWalkingAreaAtPopupPosition()
try to retrieve a walkingArea at popup position
long onCmdToggleShowAllPersonPlans(FXObject *, FXSelector, void *)
toggle show all person plans in super mode demand
bool setColorScheme(const std::string &name)
set color scheme
long onCmdOpenAdditionalDialog(FXObject *, FXSelector, void *)
open additional dialog
long onCmdToggleTAZRelOnlyTo(FXObject *, FXSelector, void *)
toggle TAZRez only to
long onCmdEgeApplyTemplate(FXObject *, FXSelector, void *)
apply template to edge
long onCmdSetNeteditView(FXObject *, FXSelector sel, void *)
called when a new view is set
const GNEViewNetHelper::NetworkViewOptions & getNetworkViewOptions() const
get network view options
void hotkeyFocusFrame()
handle focus frame keypress
long onCmdToggleChainEdges(FXObject *, FXSelector, void *)
toggle chain edges
GNEViewNetHelper::DemandViewOptions myDemandViewOptions
variable used to save variables related with view options in supermode Demand
void drawTemporalJunctionTLSLines() const
draw temporal Junction TLS Lines
std::vector< std::string > getEdgeLaneParamKeys(bool edgeKeys) const
return list of available edge parameters
long onCmdLaneOperation(FXObject *, FXSelector sel, void *)
add/remove/restrict lane
void processMoveMouseData(const bool mouseLeftButtonPressed)
process move mouse function in Supermode Data
GNEFrame * myCurrentFrame
the current frame
bool autoSelectNodes()
whether to autoselect nodes or to lanes
void drawTemporalRoundabout() const
draw temporal roundabout
void deleteDataAttributeCarrier(const GNEAttributeCarrier *AC)
delete data attribute carriers
long onCmdToggleLockContainer(FXObject *, FXSelector, void *)
toggle lock container in super mode demand
GNEUndoList * myUndoList
a reference to the undolist maintained in the application
void drawTranslateFrontAttributeCarrier(const GNEAttributeCarrier *AC, double typeOrLayer, const double extraOffset=0)
draw front attributeCarrier
GNEViewNetHelper::NetworkViewOptions myNetworkViewOptions
variable used to save variables related with view options in supermode Network
void doInit()
called after some features are already initialized
long onCmdResetEdgeEndPoints(FXObject *, FXSelector, void *)
edit junction shape
void buildEditModeControls()
create edit mode buttons and elements
GNEViewNetHelper::MoveSingleElementModul myMoveSingleElement
modul used for moving single element
long onMiddleBtnRelease(FXObject *, FXSelector, void *)
called when user releases mouse's left button
int getDrawingToggle() const
get draw toggle (used to avoid drawing junctions twice)
GNEViewNetHelper::DataCheckableButtons myDataCheckableButtons
variable used to save checkable buttons for Supermode Data
long onCmdToggleShowGrid(FXObject *, FXSelector, void *)
toggle show grid
void processLeftButtonPressDemand(void *eventData)
process left button press function in Supermode Demand
GNEDemandElement * getDemandElementAtPopupPosition()
try to retrieve a demand element at popup position
GNEViewNetHelper::TimeFormat myTimeFormat
variable used for grouping all variables related with switch time
long onLeaveConvertRoundabout(FXObject *, FXSelector, void *)
leave to convert junction to roundabout
GNEViewNetHelper::IntervalBar & getIntervalBar()
get interval bar
long onCmdEditLaneShape(FXObject *, FXSelector, void *)
edit lane shape
long onCmdToggleHideNonInspecteDemandElements(FXObject *, FXSelector, void *)
toggle hide non inspected demand elements
GNEViewParent * getViewParent() const
get the net object
long onCmdToggleDrawJunctionShape(FXObject *, FXSelector, void *)
toggle draw junction shape
bool checkOverLockedElement(const GUIGlObject *GLObject, const bool isSelected) const
check if given element is locked (used for drawing select and delete contour)
long onCmdStraightenShapeEdited(FXObject *, FXSelector, void *)
straight shape edited
long onCmdAddReversedEdge(FXObject *, FXSelector, void *)
add reversed edge
void processLeftButtonReleaseNetwork()
process left button release function in Supermode Network
long onCmdDeleteGeometryPointShapeEdited(FXObject *, FXSelector, void *)
delete the closes geometry point in shape edited
bool checkSelectEdges() const
check if select edges (toggle using button or shift)
long onMiddleBtnPress(FXObject *, FXSelector, void *)
called when user press mouse's left button
long onCmdAddReversedEdgeDisconnected(FXObject *, FXSelector, void *)
add reversed edge disconnected
long onCmdIntervalBarGenericDataType(FXObject *, FXSelector, void *)
change generic data type in interval bar
long onCmdConvertRoundabout(FXObject *, FXSelector, void *)
convert junction to roundabout
long onCmdRemoveEdgeSelected(FXObject *, FXSelector, void *)
unselect Edge under cursor
long onCmdAddReverse(FXObject *, FXSelector, void *)
add a reverse demand element
long onCmdToggleShowShapes(FXObject *, FXSelector, void *)
toggle show shapes in super mode data
long onRightBtnPress(FXObject *, FXSelector, void *)
called when user press mouse's right button
long onCmdOpenPolygon(FXObject *, FXSelector, void *)
open closed polygon
GNEViewNetHelper::InspectedElements myInspectedElements
inspected element
long onCmdSetCustomGeometryPoint(FXObject *, FXSelector, void *)
set custom geometry point
bool removeRestrictedLane(GNELane *lane, SUMOVehicleClass vclass)
remove restricted lane
long onCmdIntervalBarDataSet(FXObject *, FXSelector, void *)
change data set in interval bar
GNEViewNetHelper::SaveElements & getSaveElements()
get variable used to save elements
void processLeftButtonReleaseDemand()
process left button release function in Supermode Demand
void resetLastClickedPosition()
reset last clicked position
const GNEViewNetHelper::TestingMode & getTestingMode() const
get testing mode
GNEUndoList * getUndoList() const
get the undoList object
void processLeftButtonPressData(void *eventData)
process left button press function in Supermode Data
long onCmdTransformPOI(FXObject *, FXSelector, void *)
transform POI to POILane, and vice versa
void saveVisualizationSettings() const
GNEViewNetHelper::SaveElements mySaveElements
variable used for grouping all variables related with salve elements
const GNEViewNetHelper::MoveMultipleElementModul & getMoveMultipleElementValues() const
get move multiple element values
void deleteNetworkAttributeCarrier(const GNEAttributeCarrier *AC)
delete given network attribute carriers
GNEViewNetHelper::LockManager myLockManager
lock manager
long onCmdAddEdgeSelected(FXObject *, FXSelector, void *)
select Edge under cursor
long onCmdIntervalBarSetEnd(FXObject *, FXSelector, void *)
change end in interval bar
const GNEViewNetHelper::ViewObjectsSelector & getViewObjectsSelector() const
get objects under cursor
void drawTemporalDrawingShape() const
draw temporal polygon shape in Polygon Mode
void setLastCreatedRoute(GNEDemandElement *lastCreatedRoute)
set last created route
void drawTestsCircle() const
draw circle in testing mode (needed for grid)
long onCmdSplitEdgeBidi(FXObject *, FXSelector, void *)
split edge at cursor position
long onCmdAddJoinTLS(FXObject *, FXSelector, void *)
add Join TLS
GUIGlID getToolTipID()
returns the id of object under cursor to show their tooltip
GNEJunction * getJunctionAtPopupPosition()
try to retrieve a junction at popup position
void drawTemporalSplitJunction() const
draw temporal split junction in create edge mode
long onCmdSetSupermode(FXObject *, FXSelector sel, void *)
long onCmdToggleExtendSelection(FXObject *, FXSelector, void *)
toggle extend selection
GNEViewNetHelper::DemandCheckableButtons myDemandCheckableButtons
variable used to save checkable buttons for Supermode Demand
const GUIGlObject * getFrontGLObject() const
get front glObject
bool checkMergeJunctions()
try to merge moved junction with another junction in that spot return true if merging did take place
bool aksChangeSupermode(const std::string &operation, Supermode expectedSupermode)
ask about change supermode
GNETAZ * getTAZAtPopupPosition()
try to retrieve a TAZ at popup position
long onCmdSetMode(FXObject *, FXSelector sel, void *)
called when user press a mode button (Network or demand)
long onCmdResetEdgeEndpoint(FXObject *, FXSelector, void *)
change geometry endpoint
bool askMergeJunctions(const GNEJunction *movedJunction, const GNEJunction *targetJunction)
ask merge junctions
long onCmdIntervalBarSetBegin(FXObject *, FXSelector, void *)
change begin in interval bar
long onCmdResetLength(FXObject *, FXSelector, void *)
reset custom edge lengths
Position myLastClickedPosition
last clicked position
long onCmdSelectPolygonElements(FXObject *, FXSelector, void *)
select elements within polygon boundary
long onCmdSetFirstGeometryPointShapeEdited(FXObject *, FXSelector, void *)
set first geometry point in shape edited
long onLeftBtnRelease(FXObject *, FXSelector, void *)
called when user releases mouse's left button
long onCmdRemoveSelected(FXObject *, FXSelector, void *)
unselect AC under cursor
long onCmdDeleteGeometryPoint(FXObject *, FXSelector, void *)
delete the closes geometry point
long onCmdDuplicateLane(FXObject *, FXSelector, void *)
duplicate selected lane
void processLeftButtonPressNetwork(void *eventData)
mouse process functions
void hotkeyEnter()
handle enter keypress
GNEConnection * getConnectionAtPopupPosition()
try to retrieve a connection at popup position
long onCmdOpenShapeEdited(FXObject *, FXSelector, void *)
open closed shape edited
long onKeyPress(FXObject *o, FXSelector sel, void *data)
called when user press a key
long onCmdToggleShowOverlappedRoutes(FXObject *, FXSelector, void *)
toggle hide non inspected demand elements
long onCmdToggleAutoOppositeEdge(FXObject *, FXSelector, void *)
toggle autoOpposite edge
long onCmdSplitEdge(FXObject *, FXSelector, void *)
split edge at cursor position
GNEViewNetHelper::LockManager & getLockManager()
get lock manager
long onCmdStraightenEdgesElevation(FXObject *, FXSelector, void *)
interpolate z values linear between junctions
void updateControls()
update control contents after undo/redo or recompute
GNEViewNetHelper::MoveMultipleElementModul myMoveMultipleElements
modul used for moving multiple elements
long onCmdSplitJunctionReconnect(FXObject *, FXSelector, void *)
split junction into multiple junctions and reconnect them
long onCmdFinishShapeEdited(FXObject *, FXSelector, void *)
finish shape edited
void buildSelectionACPopupEntry(GUIGLObjectPopupMenu *ret, GNEAttributeCarrier *AC)
Builds an entry which allows to (de)select the object.
void hotkeyDel()
handle del keypress
long onCmdToggleChangeAllPhases(FXObject *, FXSelector, void *)
toggle change all phases
long onEnterConvertRoundabout(FXObject *, FXSelector, void *)
enter to convert junction to roundabout
bool myDrawPreviewRoundabout
draw preview roundabout
void redrawPathElementContours()
redraw elements only for calculating boundary
GNEViewNet()
FOX needs this.
long onCmdToggleTAZRelDrawing(FXObject *, FXSelector, void *)
toggle TAZRel drawing
long onCmdToggleShowJunctionBubbles(FXObject *, FXSelector, void *)
toggle show junction bubbles
bool selectingDetectorsTLSMode() const
check if we're selecting detectors in TLS mode
bool selectingJunctionsTLSMode() const
check if we're selecting junctions in TLS mode
long onCmdToggleShowAdditionalSubElements(FXObject *, FXSelector, void *)
toggle show additional sub-elements
long onCmdSmoothEdgesElevation(FXObject *, FXSelector, void *)
smooth elevation with regard to adjoining edges
long onCmdToggleShowAllContainerPlans(FXObject *, FXSelector, void *)
toggle show all container plans in super mode demand
long onCmdResetJunctionShape(FXObject *, FXSelector, void *)
reset junction shape
long onCmdToggleTAZRelOnlyFrom(FXObject *, FXSelector, void *)
toggle TAZRez only from
long onCmdResetShapeEdited(FXObject *, FXSelector, void *)
reset shape edited
long onRightBtnRelease(FXObject *, FXSelector, void *)
called when user releases mouse's right button
void buildColorRainbow(const GUIVisualizationSettings &s, GUIColorScheme &scheme, int active, GUIGlObjectType objectType, const GUIVisualizationRainbowSettings &rs)
recalibrate color scheme according to the current value range
long onCmdIntervalBarSetParameter(FXObject *, FXSelector, void *)
change parameter in interval bar
void drawTemporalE1TLSLines() const
draw temporal E1 TLS Lines
long onCmdReverseEdge(FXObject *, FXSelector, void *)
reverse edge
void processLeftButtonReleaseData()
process left button release function in Supermode Data
long onCmdToggleShowAdditionals(FXObject *, FXSelector, void *)
toggle show additionals in super mode data
long onCmdToggleLockPerson(FXObject *, FXSelector, void *)
toggle lock person in super mode demand
GNEViewNetHelper::TimeFormat & getTimeFormat()
get variable used to switch between time formats
GNENet * myNet
Pointer to current net. (We are not responsible for deletion)
GNEPoly * getPolygonAtPopupPosition()
try to retrieve a polygon at popup position
long onCmdToggleSelectEdges(FXObject *, FXSelector, void *)
toggle select edges
GNEViewNetHelper::DataViewOptions myDataViewOptions
variable used to save variables related with view options in supermode Data
int myDrawingToggle
drawin toggle (used in drawGLElements to avoid draw elements twice)
long onCmdToggleShowTrips(FXObject *, FXSelector, void *)
toggle show all trips in super mode demand
long onCmdToggleHideShapes(FXObject *, FXSelector, void *)
toggle hide shapes in super mode demand
long onCmdEditEdgeEndpoint(FXObject *, FXSelector, void *)
change geometry endpoint
const GNEViewNetHelper::DemandViewOptions & getDemandViewOptions() const
get demand view options
long onCmdToggleHideConnections(FXObject *, FXSelector, void *)
toggle hide connections
void openDeleteDialogAtCursor(const std::vector< GUIGlObject * > &GLObjects)
open delete dialog at cursor
long onKeyRelease(FXObject *o, FXSelector sel, void *data)
called when user release a key
long onCmdResetConnections(FXObject *, FXSelector, void *)
reset junction connections
long onCmdResetLaneCustomShape(FXObject *, FXSelector, void *)
reset custom shapes of selected lanes
bool addRestrictedLane(GNELane *lane, SUMOVehicleClass vclass, const bool insertAtFront)
add restricted lane
void setStatusBarText(const std::string &text)
set statusBar text
long onCmdEditWalkingAreaShape(FXObject *, FXSelector, void *)
edit walkingArea shape
void processMoveMouseDemand(const bool mouseLeftButtonPressed)
process move mouse function in Supermode Demand
long onCmdResetOppositeLane(FXObject *, FXSelector, void *)
reset oppositeLane of current lane
void setSelectorFrameScale(double selectionScale)
set selection scaling (in GNESelectorFrame)
void viewUpdated()
called when view is updated
long onCmdEditConnectionShape(FXObject *, FXSelector, void *)
edit connection shape
void updateDemandModeSpecificControls()
updates Demand mode specific controls
void forceSupemodeNetwork()
force supermode network(used after load/create new network)
GNEAdditional * getAdditionalAtPopupPosition()
try to retrieve a additional at popup position
long onCmdReverse(FXObject *, FXSelector, void *)
reverse current demand element
void drawTemporalJunction() const
draw temporal junction in create edge mode
long onCmdSelectRoundabout(FXObject *, FXSelector, void *)
select all roundabout nodes and edges
long onLeftBtnPress(FXObject *, FXSelector, void *)
void updateViewNet(const bool ignoreViewUpdater=true) const
Mark the entire GNEViewNet to be repainted later.
int doPaintGL(int mode, const Boundary &drawingBoundary)
do paintGL
std::vector< std::string > getRelDataAttrs() const
return list of loaded edgeRelation and tazRelation attributes
int drawGLElements(const Boundary &bound)
draw functions
long onCmdIntervalBarLimit(FXObject *, FXSelector, void *)
change limit interval in interval bar
GNEViewNetHelper::ViewObjectsSelector myViewObjectsSelector
variable use to select objects in view
A single child window which contains a view of the simulation area.
GNECrossingFrame * getCrossingFrame() const
get frame for NETWORK_CROSSING
GNEConnectorFrame * getConnectorFrame() const
get frame for NETWORK_CONNECT
GNEStopFrame * getStopFrame() const
get frame for DEMAND_STOP
GNEProhibitionFrame * getProhibitionFrame() const
get frame for NETWORK_PROHIBITION
GNEPersonPlanFrame * getPersonPlanFrame() const
get frame for DEMAND_PERSONFRAME
GNEMeanDataFrame * getMeanDataFrame() const
get frame for DATA_TAZRELDATA
GNEShapeFrame * getShapeFrame() const
get frame for NETWORK_SHAPE
GNETAZRelDataFrame * getTAZRelDataFrame() const
get frame for DATA_TAZRELDATA
GNEMoveFrame * getMoveFrame() const
get frame for move elements
GNESelectorFrame * getSelectorFrame() const
get frame for select elements
GNEContainerPlanFrame * getContainerPlanFrame() const
get frame for DEMAND_CONTAINERFRAME
GNEEdgeDataFrame * getEdgeDataFrame() const
get frame for DATA_EDGEDATA
GNEDeleteFrame * getDeleteFrame() const
get frame for delete elements
GNETypeDistributionFrame * getTypeDistributionFrame() const
get frame for DEMAND_TYPEDISTRIBUTION
GNEVehicleFrame * getVehicleFrame() const
get frame for DEMAND_VEHICLE
GNEDecalFrame * getDecalFrame() const
get frame for NETWORK_DECAL
void hideAllFrames()
hide all frames
GNETypeFrame * getTypeFrame() const
get frame for DEMAND_TYPE
GNETAZFrame * getTAZFrame() const
get frame for NETWORK_TAZ
GNETLSEditorFrame * getTLSEditorFrame() const
get frame for NETWORK_TLS
GNEApplicationWindow * getGNEAppWindows() const
get GNE Application Windows
GNEContainerFrame * getContainerFrame() const
get frame for DEMAND_CONTAINER
GNEAdditionalFrame * getAdditionalFrame() const
get frame for NETWORK_ADDITIONAL
GNERouteDistributionFrame * getRouteDistributionFrame() const
get frame for DEMAND_ROUTEDISTRIBUTION
GNEWireFrame * getWireFrame() const
get frame for NETWORK_WIRE
GNEPersonFrame * getPersonFrame() const
get frame for DEMAND_PERSON
GNEInspectorFrame * getInspectorFrame() const
get frame for inspect elements
GNEEdgeRelDataFrame * getEdgeRelDataFrame() const
get frame for DATA_EDGERELDATA
GNECreateEdgeFrame * getCreateEdgeFrame() const
get frame for NETWORK_CREATEEDGE
GNERouteFrame * getRouteFrame() const
get frame for DEMAND_ROUTE
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
GNEJunction * getParentJunction() const
get parent Junction
GNEConsecutiveSelector * getConsecutiveLaneSelector() const
get consecutive lane selector
bool createPath(const bool useLastRoute)
create path
void show()
show wire frame
bool addWire(const GNEViewNetHelper::ViewObjectsSelector &viewObjects)
add wire element
bool contains(const std::string &name) const
Returns the information whether a setting with the given name is stored.
GUIVisualizationSettings & get(const std::string &name)
Returns the named scheme.
const std::vector< std::string > & getNames() const
Returns a list of stored settings names.
Dialog for edit rerouter intervals.
static FXCursor * getCursor(GUICursor which)
returns a cursor previously defined in the enum GUICursor
static FXMenuCommand * buildFXMenuCommand(FXComposite *p, const std::string &text, FXIcon *icon, FXObject *tgt, FXSelector sel, const bool disable=false)
build menu command
std::string getCurrentScheme() const
Returns the name of the currently chosen scheme.
void setCurrentScheme(const std::string &)
Sets the named scheme as the current.
static void drawGeometry(const GUIVisualizationSettings::Detail d, const GUIGeometry &geometry, const double width, double offset=0)
draw geometry
static void drawChildLine(const GUIVisualizationSettings &s, const Position &child, const Position &parent, const RGBColor &color, const bool drawEntire, const double lineWidth)
draw line between child and parent (used in netedit)
void updateGeometry(const PositionVector &shape)
update entire geometry
MFXComboBoxIcon * getColoringSchemesCombo()
return combobox with the current coloring schemes (standard, fastest standard, real world....
FXPopup * getLocatorPopup()
@ brief return a pointer to locator popup
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)
GUIGlID getGlID() const
Returns the numerical id of the object.
GUIGlObject * getObjectBlocking(GUIGlID id) const
Returns the object from the container locking it.
static GUIGlObjectStorage gIDStorage
A single static instance of this class.
static FXIcon * getIcon(const GUIIcon which)
returns a icon previously defined in the enum GUIIcon
MFXStaticToolTip * getStaticTooltipMenu() const
get static toolTip for menus
virtual void setStatusBarText(const std::string &)
get status bar text (can be implemented in children)
virtual double getRotation() const =0
Returns the rotation of the canvas stored in this changer.
virtual double getZoom() const =0
Returns the zoom factor computed stored in this changer.
virtual void onLeftBtnPress(void *data)
mouse functions
virtual double getXPos() const =0
Returns the x-offset of the field to show stored in this changer.
virtual double getYPos() const =0
Returns the y-offset of the field to show stored in this changer.
T getColor(const double value) const
const std::string & getName() const
int addColor(const T &color, const double threshold, const std::string &name="")
bool myAmInitialised
Internal information whether doInit() was called.
Position snapToActiveGrid(const Position &pos, bool snapXY=true) const
Returns a position that is mapped to the closest grid point if the grid is active.
std::vector< GUIGlObject * > myCurrentObjectsDialog
vector with current objects dialog
virtual long onLeftBtnRelease(FXObject *, FXSelector, void *)
const SUMORTree * myGrid
The visualization speed-up.
void openObjectDialog(const std::vector< GUIGlObject * > &objects, const bool filter=true)
open object dialog for the given object
void paintGLGrid() const
paints a grid
FXbool makeCurrent()
A reimplementation due to some internal reasons.
Position myClickedPopupPosition
clicked poup position
void buildMinMaxRainbow(const GUIVisualizationSettings &s, GUIColorScheme &scheme, const GUIVisualizationRainbowSettings &rs, double minValue, double maxValue, bool hasMissingData)
helper function for buildColorRainbow
virtual long onMiddleBtnRelease(FXObject *, FXSelector, void *)
virtual long onMouseMove(FXObject *, FXSelector, void *)
bool myPanning
Panning flag.
GUIMainWindow * myApp
The application.
std::vector< GUIGlID > getObjectsInBoundary(Boundary bound)
returns the ids of all objects in the given boundary
const Position & getPopupPosition() const
get position of current popup
double m2p(double meter) const
meter-to-pixels conversion method
GUIVisualizationSettings * myVisualizationSettings
visualization settings
void destroyPopup()
destroys the popup
virtual long onKeyPress(FXObject *o, FXSelector sel, void *data)
keyboard functions
virtual long onMiddleBtnPress(FXObject *, FXSelector, void *)
virtual Position getPositionInformation() const
Returns the cursor's x/y position within the network.
virtual long onKeyRelease(FXObject *o, FXSelector sel, void *data)
GUIDialog_ViewSettings * myGUIDialogViewSettings
Visualization changer.
void drawDecals()
Draws the stored decals.
virtual long onRightBtnRelease(FXObject *, FXSelector, void *)
GUIPerspectiveChanger * myChanger
The perspective changer.
GUIGLObjectPopupMenu * myPopup
The current popup-menu.
virtual long onPaint(FXObject *, FXSelector, void *)
virtual long onRightBtnPress(FXObject *, FXSelector, void *)
void openPopupDialog()
open popup dialog
static void resetTextures()
Reset textures.
void setSelectionPosition(const Position &pos)
set selection position
void addToRedrawPathElements(const GNEPathElement *pathElement)
add path element to redrawing set
void isolateEdgeGeometryPoints()
isolate edge geometry points (used for moving)
void reset()
reset view objects handler
void setSelectionBoundary(const Boundary &boundary)
set selection boundary
const GLObjectsSortedContainer & getSelectedObjects() const
get all elements under cursor sorted by layer
const GNEEdge * markedEdge
marked edge (used in create edge mode, for splitting)
const GNELane * markedLane
marked lane (used in create edge mode, for splitting)
void updateFrontObject(const GUIGlObject *GLObject)
move the given object to the front (currently used only in netedit)
const std::vector< const GNEJunction * > & getMergingJunctions() const
bool allowUpdate()
allow update
Stores the information about how to visualize structures.
GUIVisualizationSizeSettings junctionSize
static const double MISSING_DATA
bool drawForRectangleSelection
whether drawing is performed for the purpose of selecting objects using a rectangle
std::string name
The name of this setting.
bool drawJunctionShape
whether the shape of the junction should be drawn
bool disableLaneIcons
whether drawing is performed in left-hand networks
bool lefthand
whether drawing is performed in left-hand networks
bool showLane2Lane
Information whether lane-to-lane arrows shall be drawn.
GUIVisualizationColorSettings colorSettings
color settings
bool showGrid
Information whether a grid shall be shown.
void save(OutputDevice &dev) const
Writes the settings into an output device.
double scale
information about a lane's width (temporary, used for a single view)
void updateIgnoreHideByZoom()
update ignore hide by zoom (call BEFORE drawing all elements).
bool drawForViewObjectsHandler
whether drawing is performed for the purpose of selecting objects in view using ViewObjectsHandler
GUIVisualizationAdditionalSettings additionalSettings
Additional settings.
double selectorFrameScale
the current selection scaling in netedit (set in SelectorFrame)
GUIColorer junctionColorer
The junction colorer.
static const std::string SCHEME_NAME_PERMISSION_CODE
GUIVisualizationNeteditSizeSettings neteditSizeSettings
netedit size settings
long setCurrentItem(const FXint index, FXbool notify=FALSE)
Set the current item (index is zero-based)
FXint getNumItems() const
Return the number of items in the list.
FXint appendIconItem(const FXString &text, FXIcon *icon=nullptr, FXColor bgColor=FXRGB(255, 255, 255), void *ptr=nullptr)
append icon item in the last position
EdgeVector getAllEdges() const
return all edges
The representation of a single edge during network building.
const PositionVector & getGeometry() const
Returns the geometry of the edge.
const PositionVector getInnerGeometry() const
Returns the geometry of the edge without the endpoints.
const std::set< NBTrafficLightDefinition * > & getControllingTLS() const
Returns the traffic lights that were assigned to this node (The set of tls that control this node)
const Position & getPosition() const
const PositionVector & getShape() const
retrieve the junction shape
bool exist(const std::string &newID, bool requireComputed=true) const
check if exists a definition with the given ID
bool getBool(const std::string &name) const
Returns the boolean-value of the named option (only for Option_Bool)
static OptionsCont & getOptions()
Retrieves the options.
Static storage of an output device and its base (abstract) implementation.
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
void close()
Closes the device and removes it from the dictionary.
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
bool closeTag(const std::string &comment="")
Closes the most recently opened tag and optionally adds a comment.
static OutputDevice & getDevice(const std::string &name, bool usePrefix=true)
Returns the described OutputDevice.
C++ TraCI client API implementation.
A point in 2D or 3D with translation and scaling methods.
static const Position INVALID
used to indicate that a position is valid
double distanceTo(const Position &p2) const
returns the euclidean distance in 3 dimensions
double distanceSquaredTo(const Position &p2) const
returns the square of the distance to another position
double x() const
Returns the x-position.
double y() const
Returns the y-position.
Position positionAtOffset(double pos, double lateralOffset=0) const
Returns the position at the given length.
double nearest_offset_to_point2D(const Position &p, bool perpendicular=true) const
return the nearest offest to point 2D
int indexOfClosest(const Position &p, bool twoD=false) const
void move2side(double amount, double maxExtension=100)
move position vector to side using certain amount
Boundary getBoxBoundary() const
Returns a boundary enclosing this list of lines.
void pop_front()
pop first Position
void setAlpha(unsigned char alpha)
Sets a new alpha value.
static const RGBColor BLUE
static const RGBColor ORANGE
static const RGBColor GREEN
static RGBColor fromHSV(double h, double s, double v)
Converts the given hsv-triplet to rgb, inspired by http://alvyray.com/Papers/CG/hsv2rgb....
static const RGBColor BLACK
static const RGBColor RED
named colors
const PositionVector & getShape() const
Returns the shape of the polygon.
void addAdditionalGLObject(GUIGlObject *o, const double exaggeration=1)
Adds an additional object (detector/shape/trigger) for visualisation.
void removeAdditionalGLObject(GUIGlObject *o, const double exaggeration=1)
Removes an additional object (detector/shape/trigger) from being visualised.
virtual int Search(const float a_min[2], const float a_max[2], const GUIVisualizationSettings &c) const
Find all within search rectangle.
void hideDataViewOptionsMenuChecks()
hide all options menu checks
void hideDemandViewOptionsMenuChecks()
hide all options menu checks
void hideNetworkViewOptionsMenuChecks()
hide all options menu checks
DemandViewOptions demandViewOptions
demand view options
NetworkViewOptions networkViewOptions
network view options
DataViewOptions dataViewOptions
data view options
struct used to group all variables related to view options in supermode Data
void hideDataViewOptionsMenuChecks()
hide all options menu checks
MFXCheckableButton * menuCheckToggleTAZDrawFill
menu check to toggle TAZ draw fill
MFXCheckableButton * menuCheckShowAdditionals
menu check to show Additionals
MFXCheckableButton * menuCheckShowShapes
menu check to show Shapes
MFXCheckableButton * menuCheckToggleTAZRelOnlyFrom
menu check to toggle TAZRel only from
MFXCheckableButton * menuCheckToggleDrawJunctionShape
checkable button to show junction shapes
void buildDataViewOptionsMenuChecks()
build menu checks
MFXCheckableButton * menuCheckToggleTAZRelDrawing
menu check to toggle TAZ Rel drawing
MFXCheckableButton * menuCheckShowDemandElements
menu check to show Demand Elements
MFXCheckableButton * menuCheckToggleTAZRelOnlyTo
menu check to toggle TAZRel only to
struct used to group all variables related to view options in supermode Demand
MFXCheckableButton * menuCheckShowAllTrips
show all trips
void lockPerson(const GNEDemandElement *person)
lock person
MFXCheckableButton * menuCheckToggleGrid
menu check to show grid button
MFXCheckableButton * menuCheckToggleDrawJunctionShape
checkable button to show junction shapes
void lockContainer(const GNEDemandElement *container)
lock container
void buildDemandViewOptionsMenuChecks()
build menu checks
const GNEDemandElement * getLockedPerson() const
get locked person
MFXCheckableButton * menuCheckDrawSpreadVehicles
menu check to draw vehicles in begin position or spread in lane
MFXCheckableButton * menuCheckShowOverlappedRoutes
show overlapped routes
void hideDemandViewOptionsMenuChecks()
hide all options menu checks
void unlockContainer()
unlock container
MFXCheckableButton * menuCheckShowAllPersonPlans
show all person plans
MFXCheckableButton * menuCheckShowAllContainerPlans
show all container plans
MFXCheckableButton * menuCheckHideNonInspectedDemandElements
Hide non inspected demand elements.
void unlockPerson()
unlock person
MFXCheckableButton * menuCheckHideShapes
Hide shapes (Polygons and POIs)
MFXCheckableButton * menuCheckLockPerson
Lock Person.
MFXCheckableButton * menuCheckLockContainer
Lock Container.
struct used to group all variables related with Supermodes
DataEditMode dataEditMode
the current Data edit mode
void buildSuperModeButtons()
build checkable buttons
DemandEditMode demandEditMode
the current Demand edit mode
Supermode currentSupermode
the current supermode
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
MFXCheckableButton * dataButton
checkable button for supermode Data
bool isCurrentSupermodeData() const
@check if current supermode is Data
void setView(FXSelector sel)
set view
bool isCurrentSupermodeNetwork() const
@check if current supermode is Network
MFXCheckableButton * networkButton
checkable button for supermode Network
bool isJuPedSimView() const
check if default view is enabled
void setSupermode(Supermode supermode, const bool force)
set supermode
MFXCheckableButton * demandButton
checkable button for supermode Demand
void setNetworkEditMode(NetworkEditMode networkMode, const bool force=false)
set Network edit mode
void setDataEditMode(DataEditMode dataMode, const bool force=false)
set Data edit mode
struct used to group all variables related with edit shapes of NetworkElements
GNENetworkElement * getEditedNetworkElement() const
pointer to edited network element
void stopEditCustomShape()
edit edit shape
void startEditCustomShape(GNENetworkElement *element)
start edit custom shape
void commitShapeEdited()
save edited shape
struct used to group all variables related with movement of groups of elements
void moveSelection(const bool mouseLeftButtonPressed)
move selection
bool isCurrentlyMovingMultipleElements() const
check if there are moving elements
void finishMoveSelection()
finish moving selection
bool isMovingSelection() const
check if currently there is element being moved
void beginMoveSelection()
begin move selection
void resetMovingSelectedEdge()
reset flag for moving edge
struct used to group all variables related with movement of single elements
bool beginMoveSingleElementDemandMode()
begin move single element in Demand mode
void moveSingleElement(const bool mouseLeftButtonPressed)
move single element in Network AND Demand mode
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
struct used to group all variables related to view options in supermode Network
MFXCheckableButton * menuCheckSelectEdges
checkable button to select only edges
MFXCheckableButton * menuCheckChainEdges
checkable button to the endpoint for a created edge should be set as the new source
MFXCheckableButton * menuCheckShowDemandElements
checkable button to show Demand Elements
MFXCheckableButton * menuCheckMoveElevation
checkable button to apply movement to elevation
MFXCheckableButton * menuCheckShowTAZElements
checkable button to show TAZ elements
MFXCheckableButton * menuCheckAutoOppositeEdge
check checkable to create auto create opposite edge
MFXCheckableButton * menuCheckDrawSpreadVehicles
checkable button to draw vehicles in begin position or spread in lane
MFXCheckableButton * menuCheckShowConnections
checkable button to show connections
MFXCheckableButton * menuCheckHideConnections
checkable button to hide connections in connect mode
MFXCheckableButton * menuCheckToggleDrawJunctionShape
checkable button to show junction shapes
MFXCheckableButton * menuCheckToggleGrid
checkable button to show grid button
bool selectEdges() const
check if select edges checkbox is enabled
MFXCheckableButton * menuCheckShowJunctionBubble
checkable button to show connection as bubble in "Move" mode.
MFXCheckableButton * menuCheckWarnAboutMerge
checkable button to we should warn about merging junctions
void hideNetworkViewOptionsMenuChecks()
hide all options menu checks
MFXCheckableButton * menuCheckShowAdditionalSubElements
checkable button to show additional sub-elements
void buildNetworkViewOptionsMenuChecks()
build menu checks
MFXCheckableButton * menuCheckChangeAllPhases
checkable button to set change all phases
MFXCheckableButton * menuCheckExtendSelection
checkable button to extend to edge nodes
struct used to group all variables related with save elements
void buildSaveElementsButtons()
build save buttons
void finishRectangleSelection()
finish rectangle selection
void drawRectangleSelection(const RGBColor &color) const
draw rectangle selection
void beginRectangleSelection()
begin rectangle selection
bool selectingUsingRectangle
whether we have started rectangle-selection
void moveRectangleSelection()
move rectangle selection
bool startDrawing
whether we have started rectangle-selection
void processRectangleSelection()
process rectangle Selection
std::vector< GNEEdge * > processEdgeRectangleSelection()
process rectangle Selection (only limited to Edges)
struct used to group all variables related with testing
void drawTestingElements(GUIMainWindow *mainWindow)
draw testing element
static const RGBColor TLSConnectionColor
connection color between E1/junctions and TLS
RGBColor selectionColor
basic selection color
static const double junctionBubbleRadius
junction bubble radius
double getExaggeration(const GUIVisualizationSettings &s, const GUIGlObject *o, double factor=20) const
return the drawing size including exaggeration and constantSize values