190 FXGLVisual* glVis, FXGLCanvas* share) :
194 myObjectsUnderCursor(this),
195 myCommonCheckableButtons(this),
196 myNetworkCheckableButtons(this),
197 myDemandCheckableButtons(this),
198 myDataCheckableButtons(this),
199 myNetworkViewOptions(this),
200 myDemandViewOptions(this),
201 myDataViewOptions(this),
203 myMoveSingleElementValues(this),
204 myMoveMultipleElementValues(this),
205 myVehicleOptions(this),
206 myVehicleTypeOptions(this),
207 mySaveElements(this),
208 mySelectingArea(this),
209 myEditNetworkElementShapes(this),
210 myViewParent(viewParent),
212 myCurrentFrame(
nullptr),
213 myUndoList(undoList),
214 myFrontAttributeCarrier(
nullptr) {
216 reparent(actualParent);
218 buildEditModeControls();
222 myNet->setViewNet(
this);
228 myTestingMode.initTestingMode();
253 "\tLocate Junctions\tLocate a junction within the network. (Shift+J)",
255 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
258 "\tLocate Edges\tLocate an edge within the network. (Shift+E)",
260 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
264 "\tLocate Vehicles\tLocate a vehicle within the network. (Shift+V)",
266 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
270 "\tLocate Persons\tLocate a person within the network. (Shift+P)",
272 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
276 "\tLocate Route\tLocate a route within the network. (Shift+R)",
278 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
282 "\tLocate Stops\tLocate a stop within the network. (Shift+S)",
284 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
296 "\tLocate TLS\tLocate a tls within the network. (Shift+T)",
298 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
301 "\tLocate Additional\tLocate an additional structure within the network. (Shift+A)",
303 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
306 "\tLocate PoI\tLocate a PoI within the network. (Shift+O)",
308 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
311 "\tLocate Polygon\tLocate a Polygon within the network. (Shift+L)",
313 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
320 GUISUMOAbstractView::update();
330 std::set<std::pair<std::string, GNEAttributeCarrier*> >
334 std::set<std::pair<std::string, GNEAttributeCarrier*> > result;
342 for (
const auto& GLId : GLIds) {
348 retrievedAC =
dynamic_cast<GNELane*
>(retrievedAC)->getParentEdge();
352 result.insert(std::make_pair(retrievedAC->
getID(), retrievedAC));
374 new FXMenuSeparator(ret);
411 if (GlObject ==
nullptr) {
415 if (GlObject !=
nullptr) {
421 myApp->getCursorPosition(x, y, b);
442 if (oc.
getString(
"gui-testing.setting-output").size() > 0) {
510 bool hide,
double hideThreshold) {
513 double minValue = std::numeric_limits<double>::infinity();
514 double maxValue = -std::numeric_limits<double>::infinity();
520 }
else if (active == 11) {
524 const double val = lane->getColorValue(s, active);
528 minValue =
MIN2(minValue, val);
529 maxValue =
MAX2(maxValue, val);
534 minValue =
MIN2(minValue, junction->getPositionInView().z());
535 maxValue =
MAX2(maxValue, junction->getPositionInView().z());
542 std::set<SVCPermissions> codes;
544 codes.insert(lane->getParentEdge()->getNBEdge()->getPermissions(lane->getIndex()));
546 int step =
MAX2(1, 360 / (
int)codes.size());
550 hue = (hue + step) % 360;
554 if (minValue != std::numeric_limits<double>::infinity()) {
558 const double rawRange = maxValue - minValue;
559 minValue =
MAX2(hideThreshold +
MIN2(1.0, rawRange / 100.0), minValue);
562 double range = maxValue - minValue;
606 if (movedJunction && targetJunction && (movedJunction != targetJunction)) {
609 WRITE_DEBUG(
"Opening FXMessageBox 'merge junctions'");
611 FXuint answer = FXMessageBox::question(
this, MBOX_YES_NO,
612 "Confirm Junction Merger",
"%s",
613 (
"Do you wish to merge junctions '" + movedJunction->
getMicrosimID() +
616 "' will be eliminated and its roads added to '" +
621 WRITE_DEBUG(
"Closed FXMessageBox 'merge junctions' with 'No'");
622 }
else if (answer == 4) {
623 WRITE_DEBUG(
"Closed FXMessageBox 'merge junctions' with 'ESC'");
628 WRITE_DEBUG(
"Closed FXMessageBox 'merge junctions' with 'Yes'");
643 myObjectsUnderCursor(this),
644 myCommonCheckableButtons(this),
645 myNetworkCheckableButtons(this),
646 myDemandCheckableButtons(this),
647 myDataCheckableButtons(this),
648 myNetworkViewOptions(this),
649 myDemandViewOptions(this),
650 myDataViewOptions(this),
652 myMoveSingleElementValues(this),
653 myMoveMultipleElementValues(this),
654 myVehicleOptions(this),
655 myVehicleTypeOptions(this),
656 mySaveElements(this),
657 mySelectingArea(this),
658 myEditNetworkElementShapes(this),
659 myViewParent(nullptr),
661 myCurrentFrame(nullptr),
663 myFrontAttributeCarrier(nullptr) {
667 std::vector<std::string>
669 std::set<std::string> keys;
672 for (
const auto& item : e->getParametersMap()) {
673 keys.insert(item.first);
675 for (
const auto& con : e->getConnections()) {
676 for (
const auto& item : con.getParametersMap()) {
677 keys.insert(item.first);
681 for (
const auto& lane : e->getLanes()) {
683 for (
const auto& item : lane.getParametersMap()) {
684 keys.insert(item.first);
686 for (
const auto& con : e->getConnectionsFromLane(i)) {
687 for (
const auto& item : con.getParametersMap()) {
688 keys.insert(item.first);
695 return std::vector<std::string>(keys.begin(), keys.end());
699 std::vector<std::string>
701 std::set<std::string> keys;
712 return std::vector<std::string>(keys.begin(), keys.end());
730 glMatrixMode(GL_MODELVIEW);
732 glDisable(GL_TEXTURE_2D);
733 glDisable(GL_ALPHA_TEST);
735 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
736 glEnable(GL_DEPTH_TEST);
824 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
825 const float minB[2] = { (float)bound.
xmin(), (float)bound.
ymin() };
826 const float maxB[2] = { (float)bound.
xmax(), (float)bound.
ymax() };
828 glEnable(GL_POLYGON_OFFSET_FILL);
829 glEnable(GL_POLYGON_OFFSET_LINE);
1010 if (clearSelection) {
1044 if (clearSelection) {
1061 if (clearSelection) {
1227 const std::vector<GNEAttributeCarrier*>&
1285 glTranslated(0, 0, objectType + extraOffset);
1373 edge = (((
GNELane*)pointed)->getParentEdge());
1422 return dynamic_cast<GNEPoly*
>(pointed);
1436 return dynamic_cast<GNEPOI*
>(pointed);
1445 switch (FXSELID(sel)) {
1465 switch (FXSELID(sel)) {
1507 switch (FXSELID(sel)) {
1546 switch (FXSELID(sel)) {
1574 if (edge !=
nullptr) {
1584 if (edge !=
nullptr) {
1588 if (reverseEdge !=
nullptr) {
1599 if (edge !=
nullptr) {
1603 for (
auto it : edges) {
1620 if (edge !=
nullptr) {
1624 for (
auto it : edges) {
1641 if (edge !=
nullptr) {
1652 if (edge !=
nullptr) {
1660 for (
const auto& selectedEdge : selectedEdges) {
1677 if (edge !=
nullptr) {
1681 for (
auto it : edges) {
1699 if (edge !=
nullptr) {
1703 for (
auto it : edges) {
1720 if (edge !=
nullptr) {
1724 for (
auto it : edges) {
1741 if (edge !=
nullptr) {
1745 for (
auto it : edges) {
1762 if (edge !=
nullptr) {
1766 for (
auto it : edges) {
1781 if (polygonUnderMouse) {
1792 if (polygonUnderMouse) {
1803 if (polygonUnderMouse) {
1814 if (polygonUnderMouse) {
1825 if (polygonUnderMouse) {
1843 std::vector<GNELane*> lanes;
1844 for (
auto i : GLIDs) {
1847 lanes.push_back(lane);
1850 if (lanes.empty()) {
1854 GNELane* nearestLane = lanes.front();
1857 for (
auto i : lanes) {
1858 double posOverLane = i->getLaneShape().nearest_offset_to_point2D(
POI->getPositionInView());
1859 double lateralOffset = i->getLaneShape().positionAtOffset(posOverLane).distanceTo(
POI->getPositionInView());
1860 if (lateralOffset < minorLateralOffset) {
1861 minorPosOverLane = posOverLane;
1862 minorLateralOffset = lateralOffset;
1867 std::string
id =
POI->getID();
1868 std::string type =
POI->getShapeType();
1871 double layer =
POI->getShapeLayer();
1872 double angle =
POI->getShapeNaviDegree();
1873 std::string imgFile =
POI->getShapeImgFile();
1874 bool relativePath =
POI->getShapeRelativePath();
1875 double POIWidth =
POI->getWidth();
1876 double POIHeight =
POI->getHeight();
1881 myNet->
getAttributeCarriers()->
addPOI(
id, type, color, pos,
false, nearestLane->
getID(), minorPosOverLane, 0, layer, angle, imgFile, relativePath, POIWidth, POIHeight);
1886 std::string
id =
POI->getID();
1887 std::string type =
POI->getShapeType();
1890 double layer =
POI->getShapeLayer();
1891 double angle =
POI->getShapeNaviDegree();
1892 std::string imgFile =
POI->getShapeImgFile();
1893 bool relativePath =
POI->getShapeRelativePath();
1894 double POIWidth =
POI->getWidth();
1895 double POIWeight =
POI->getHeight();
1900 myNet->
getAttributeCarriers()->
addPOI(
id, type, color, pos,
false,
"", 0, 0, layer, angle, imgFile, relativePath, POIWidth, POIWeight);
1913 if (lane !=
nullptr) {
1919 for (
auto it : lanes) {
1936 if (lane !=
nullptr) {
1942 for (
auto it : lanes) {
1959 switch (FXSELID(sel)) {
1994 if (clickedLane !=
nullptr) {
2002 for (
const auto& lane : edge.second->getLanes()) {
2003 if (lane->getReachability() >= 0) {
2031 if (lane !=
nullptr) {
2035 std::map<GNEEdge*, GNELane*> mapOfEdgesAndLanes;
2037 for (
auto i : lanes) {
2041 if (mapOfEdgesAndLanes.size() != lanes.size()) {
2042 FXMessageBox::information(getApp(), MBOX_OK,
2043 "Multiple lane in the same edge selected",
"%s",
2044 (
"There are selected lanes that belong to the same edge.\n Only one lane per edge will be restricted for " +
toString(vclass) +
".").c_str());
2047 if (mapOfEdgesAndLanes.size() > 0) {
2051 for (
auto i : mapOfEdgesAndLanes) {
2052 if (i.first->hasRestrictedLane(vclass)) {
2057 if (counter == (
int)mapOfEdgesAndLanes.size()) {
2058 FXMessageBox::information(getApp(), MBOX_OK,
2059 (
"Set vclass for " +
toString(vclass) +
" to selected lanes").c_str(),
"%s",
2060 (
"All lanes own already another lane in the same edge with a restriction for " +
toString(vclass)).c_str());
2063 WRITE_DEBUG(
"Opening FXMessageBox 'restrict lanes'");
2065 FXuint answer = FXMessageBox::question(getApp(), MBOX_YES_NO,
2066 (
"Set vclass for " +
toString(vclass) +
" to selected lanes").c_str(),
"%s",
2067 (
toString(mapOfEdgesAndLanes.size() - counter) +
" lanes will be restricted for " +
toString(vclass) +
". continue?").c_str());
2071 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'No'");
2072 }
else if (answer == 4) {
2073 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'ESC'");
2078 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'Yes'");
2084 for (std::map<GNEEdge*, GNELane*>::iterator i = mapOfEdgesAndLanes.begin(); i != mapOfEdgesAndLanes.end(); i++) {
2106 if (lane !=
nullptr) {
2112 std::set<GNEEdge*> setOfEdges;
2114 for (
auto i : edges) {
2115 setOfEdges.insert(i);
2118 for (
auto it : lanes) {
2123 if (setOfEdges.size() > 0) {
2127 for (std::set<GNEEdge*>::iterator it = setOfEdges.begin(); it != setOfEdges.end(); it++) {
2129 if ((*it)->hasRestrictedLane(vclass)) {
2134 if (counter == (
int)setOfEdges.size()) {
2135 FXMessageBox::information(getApp(), MBOX_OK,
2136 (
"Add vclass for" +
toString(vclass) +
" to selected lanes").c_str(),
"%s",
2137 (
"All lanes own already another lane in the same edge with a restriction for " +
toString(vclass)).c_str());
2140 WRITE_DEBUG(
"Opening FXMessageBox 'restrict lanes'");
2142 FXuint answer = FXMessageBox::question(getApp(), MBOX_YES_NO,
2143 (
"Add vclass for " +
toString(vclass) +
" to selected lanes").c_str(),
"%s",
2144 (
toString(setOfEdges.size() - counter) +
" restrictions for " +
toString(vclass) +
" will be added. continue?").c_str());
2148 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'No'");
2149 }
else if (answer == 4) {
2150 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'ESC'");
2155 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'Yes'");
2161 for (
const auto& edge : setOfEdges) {
2191 if (lane !=
nullptr) {
2197 std::set<GNEEdge*> setOfEdges;
2199 for (
auto i : edges) {
2200 setOfEdges.insert(i);
2203 for (
auto it : lanes) {
2208 if (setOfEdges.size() > 0) {
2212 for (std::set<GNEEdge*>::iterator it = setOfEdges.begin(); it != setOfEdges.end(); it++) {
2214 if ((*it)->hasRestrictedLane(vclass)) {
2220 FXMessageBox::information(getApp(), MBOX_OK,
2221 (
"Remove vclass for " +
toString(vclass) +
" to selected lanes").c_str(),
"%s",
2222 (
"Selected lanes and edges haven't a restriction for " +
toString(vclass)).c_str());
2225 WRITE_DEBUG(
"Opening FXMessageBox 'restrict lanes'");
2227 FXuint answer = FXMessageBox::question(getApp(), MBOX_YES_NO,
2228 (
"Remove vclass for " +
toString(vclass) +
" to selected lanes").c_str(),
"%s",
2229 (
toString(counter) +
" restrictions for " +
toString(vclass) +
" will be removed. continue?").c_str());
2233 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'No'");
2234 }
else if (answer == 4) {
2235 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'ESC'");
2240 WRITE_DEBUG(
"Closed FXMessageBox 'restrict lanes' with 'Yes'");
2246 for (
const auto& edge : setOfEdges) {
2267 FXEvent* evt = (FXEvent*)eventData;
2274 if (evt->click_count == 2) {
2275 handle(
this, FXSEL(SEL_DOUBLECLICKED, 0), eventData);
2283 bool cursorMove =
false;
2343 for (
auto it : junctions) {
2363 if (junction !=
nullptr) {
2377 if (junction !=
nullptr) {
2391 if (junction !=
nullptr) {
2404 if (junction !=
nullptr) {
2417 if (junction !=
nullptr) {
2431 if (junction !=
nullptr) {
2444 for (
auto i : selectedJunction) {
2463 if (junction !=
nullptr) {
2476 for (
auto i : selectedJunction) {
2670 vehicle.second->updateGeometry();
2673 routeFlow.second->updateGeometry();
2676 trip.second->updateGeometry();
2679 flow.second->updateGeometry();
2858 if (personOrPersonPlan) {
3452 if (junctions.size() > 0) {
3453 std::string plural = junctions.size() == 1 ? (
"") : (
"s");
3455 for (
auto i : junctions) {
3466 if (lanes.size() > 0) {
3467 std::string plural = lanes.size() == 1 ? (
"") : (
"s");
3469 for (
auto i : lanes) {
3481 if (edges.size() > 0) {
3482 std::string plural = edges.size() == 1 ? (
"") : (
"s");
3484 for (
auto i : edges) {
3496 if (selectedAdditionals.size() > 0) {
3497 std::string plural = selectedAdditionals.size() == 1 ? (
"") : (
"s");
3500 for (
const auto& selectedAdditional : selectedAdditionals) {
3501 if (selectedAdditional->getTagProperty().isSlave()) {
3506 for (
const auto& selectedAdditional : selectedAdditionals) {
3507 if (!selectedAdditional->getTagProperty().isSlave()) {
3519 if (demandElements.size() > 0) {
3520 std::string plural = demandElements.size() == 1 ? (
"") : (
"s");
3523 std::vector<GNEDemandElement*> persons;
3524 for (
const auto& demandElement : demandElements) {
3526 if (demandElement->getTagProperty().isPersonPlan()) {
3527 persons.push_back(demandElement->getParentDemandElements().front());
3535 for (
const auto& person : persons) {
3537 if (person->getChildDemandElements().empty() &&
myNet->
retrieveDemandElement(person->getTagProperty().getTag(), person->getID(),
false) !=
nullptr) {
3549 if (genericDatas.size() > 0) {
3550 std::string plural = genericDatas.size() == 1 ? (
"") : (
"s");
3553 for (
const auto& genericData : genericDatas) {
3565 std::vector<GNECrossing*> crossings;
3566 for (
auto i : junctions) {
3567 for (
auto j : i->getGNECrossings()) {
3568 if (j->isAttributeCarrierSelected()) {
3569 crossings.push_back(j);
3574 if (crossings.size() > 0) {
3575 std::string plural = crossings.size() == 1 ? (
"") : (
"s");
3577 for (
auto i : crossings) {
3591 std::vector<GNEConnection*> connections;
3592 for (
auto i : edges) {
3593 for (
auto j : i->getGNEConnections()) {
3594 if (j->isAttributeCarrierSelected()) {
3595 connections.push_back(j);
3600 if (connections.size() > 0) {
3601 std::string plural = connections.size() == 1 ? (
"") : (
"s");
3603 for (
auto i : connections) {
3616 if (selectedShapes.size() > 0) {
3617 std::string plural = selectedShapes.size() == 1 ? (
"") : (
"s");
3619 for (
auto i : selectedShapes) {
3632 if (selectedTAZElements.size() > 0) {
3633 std::string plural = selectedTAZElements.size() == 1 ? (
"") : (
"s");
3635 for (
auto i : selectedTAZElements) {
3671 glTranslated(firstLanePoint.
x(), firstLanePoint.
y(),
GLO_JUNCTION + 0.3);
3686 std::vector<double> shapeRotations, shapeLengths;
3699 int segments = (int) shape.size() - 1;
3700 if (segments >= 0) {
3701 shapeRotations.reserve(segments);
3702 shapeLengths.reserve(segments);
3703 for (
int j = 0; j < segments; j++) {
3719 glTranslated(lastLanePoint.
x(), lastLanePoint.
y(),
GLO_JUNCTION + 0.3);
3735 bool deleteLastCreatedPoint =
false;
3745 if (temporalShape.size() > 0) {
3758 if (deleteLastCreatedPoint) {
3789 glTranslated(mousePosition.
x(), mousePosition.
y(), 0.1);
3919 }
else if (reverseEdge) {
FXDEFMAP(GNEViewNet) GNEViewNetMap[]
@ 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
@ NETWORK
Network mode (Edges, junctions, etc..)
@ DATA
Data mode (edgeData, LaneData etc..)
@ DEMAND
Demand mode (Routes, Vehicles etc..)
@ NETWORK_DELETE
mode for deleting network elements
@ NETWORK_MOVE
mode for moving network elements
@ 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_POLYGON
Mode for editing Polygons.
@ 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
@ DEMAND_PERSONPLAN
Mode for editing person plan.
@ DEMAND_INSPECT
mode for inspecting demand elements
@ DEMAND_DELETE
mode for deleting demand elements
@ DEMAND_VEHICLETYPES
Mode for editing vehicle types.
@ DEMAND_PERSONTYPES
Mode for editing person types.
@ DEMAND_PERSON
Mode for editing person.
@ 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.
@ MID_GNE_NETWORKVIEWOPTIONS_AUTOOPPOSITEEDGES
automatically create opposite edge
@ MID_HOTKEY_F3_SUPERMODE_DEMAND
select demand supermode in NETEDIT
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLPERSONPLANS
show all person plans
@ MID_GNE_LANE_TRANSFORM_BIKE
transform lane to bikelane
@ MID_GNE_EDGE_REVERSE
reverse an edge
@ MID_GNE_LANE_ADD_GREENVERGE
add greenVerge
@ MID_LOCATEPERSON
Locate person - button.
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWGRID
show grid
@ MID_ADDSELECT
Add to selected items - menu entry.
@ MID_GNE_LANE_ADD_BUS
add busLane
@ MID_HOTKEY_T_MODES_TLS_VTYPE
hotkey for mode editing TLS AND Vehicle Types
@ MID_GNE_NETWORKVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
@ MID_GNE_NETWORKVIEWOPTIONS_MOVEELEVATION
move elevation instead of x,y
@ MID_HOTKEY_S_MODES_SELECT
hotkey for mode selecting objects
@ MID_LOCATEJUNCTION
Locate junction - button.
@ MID_GNE_NETWORKVIEWOPTIONS_HIDECONNECTIONS
hide connections
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWCONNECTIONS
show connections
@ MID_GNE_INTERVALBAR_BEGIN
begin changed in InterbalBar
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKPERSON
lock person
@ MID_HOTKEY_V_MODES_VEHICLE
hotkey for mode create vehicles
@ MID_HOTKEY_E_MODES_EDGE_EDGEDATA
hotkey for mode adding edges AND edgeDatas
@ MID_LOCATEPOLY
Locate polygons - button.
@ MID_GNE_JUNCTION_CLEAR_CONNECTIONS
clear junction's connections
@ MID_GNE_JUNCTION_SELECT_ROUNDABOUT
select all roundabout nodes and edges of the current roundabout
@ MID_GNE_INTERVALBAR_ATTRIBUTE
attribute changed in InterbalBar
@ 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_HOTKEY_W_MODES_PROHIBITION_PERSONTYPE
hotkey for mode editing connection prohibitions AND person types
@ MID_GNE_EDGE_STRAIGHTEN_ELEVATION
interpolate z values linear between junctions
@ MID_GNE_NETWORKVIEWOPTIONS_CHAINEDGES
create edges in chain mode
@ MID_HOTKEY_R_MODES_CROSSING_ROUTE_EDGERELDATA
hotkey for mode editing crossing, routes and edge rel datas
@ MID_GNE_DATAVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
@ MID_GNE_POLYGON_CLOSE
close opened polygon
@ MID_GNE_EDGE_SMOOTH
smooth geometry
@ MID_HOTKEY_I_MODES_INSPECT
hotkey for mode inspecting object attributes
@ MID_LOCATEADD
Locate addtional structure - button.
@ MID_LOCATEPOI
Locate poi - button.
@ MID_GNE_LANE_RESET_CUSTOMSHAPE
remove greenVerge
@ MID_GNE_EDGE_STRAIGHTEN
remove inner geometry
@ MID_GNE_DEMANDVIEWOPTIONS_HIDESHAPES
hide shapes
@ MID_HOTKEY_P_MODES_POLYGON_PERSON
hotkey for mode creating polygons
@ MID_GNE_LANE_TRANSFORM_BUS
transform lane to busLane
@ MID_GNE_POLYGON_SET_FIRST_POINT
Set a vertex of polygon as first verte.
@ MID_GNE_LANE_DUPLICATE
duplicate a lane
@ MID_GNE_DATAVIEWOPTIONS_SHOWADDITIONALS
show additionals
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWBUBBLES
show junctions as bubbles
@ MID_GNE_INTERVALBAR_END
end changed in InterbalBar
@ MID_HOTKEY_Z_MODES_TAZ_TAZREL
hotkey for mode editing TAZ and TAZRel
@ MID_HOTKEY_M_MODES_MOVE
hotkey for mode moving element
@ MID_GNE_NETWORKVIEWOPTIONS_EXTENDSELECTION
extend selection
@ MID_GNE_LANE_REMOVE_GREENVERGE
remove greenVerge
@ MID_GNE_EDGE_SPLIT_BIDI
split an edge
@ MID_GNE_JUNCTION_REPLACE
turn junction into geometry node
@ MID_HOTKEY_F4_SUPERMODE_DATA
select data supermode in NETEDIT
@ MID_LOCATESTOP
Locate stop - button.
@ MID_GNE_LANE_REMOVE_BIKE
remove bikelane
@ MID_GNE_POI_TRANSFORM
Transform POI to POILane, and viceversa.
@ MID_GNE_JUNCTION_CONVERT_ROUNDABOUT
convert junction to roundabout
@ MID_REACHABILITY
show reachability from a given lane
@ MID_GNE_EDGE_RESET_LENGTH
reset custom lengths
@ MID_GNE_LANE_REMOVE_BUS
remove busLane
@ MID_HOTKEY_A_MODES_ADDITIONAL_STOP
hotkey for mode editing additionals AND stops
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
@ MID_GNE_JUNCTION_SPLIT_RECONNECT
turn junction into multiple junctions and reconnect them heuristically
@ MID_OPEN_ADDITIONAL_DIALOG
open additional dialog (used in netedit)
@ MID_GNE_DEMANDVIEWOPTIONS_HIDENONINSPECTED
hide non-inspected demand element
@ MID_HOTKEY_C_MODES_CONNECT_PERSONPLAN
hotkey for mode connecting lanes
@ MID_GNE_JUNCTION_EDIT_SHAPE
edit junction shape
@ MID_GNE_LANE_REMOVE_SIDEWALK
remove sidewalk
@ MID_GNE_EDGE_RESET_ENDPOINT
reset default geometry endpoints
@ MID_GNE_INTERVALBAR_GENERICDATATYPE
generic data selected
@ MID_LOCATEEDGE
Locate edge - button.
@ 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_GNE_EDGE_ADD_REVERSE
add reverse edge
@ MID_LOCATEVEHICLE
Locate vehicle - button.
@ MID_LOCATETLS
Locate TLS - button.
@ MID_GNE_DEMANDVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
@ MID_GNE_LANE_ADD_SIDEWALK
add sidewalk
@ MID_GNE_CONNECTION_EDIT_SHAPE
edit junction shape
@ MID_GNE_INTERVALBAR_DATASET
data set selected
@ MID_GNE_LANE_TRANSFORM_SIDEWALK
transform lane to sidewalk
@ MID_GNE_LANE_ADD_BIKE
add bikelane
@ MID_HOTKEY_F2_SUPERMODE_NETWORK
select network supermode in NETEDIT
@ MID_HOTKEY_D_MODES_DELETE
hotkey for mode deleting things
@ MID_GNE_NETWORKVIEWOPTIONS_SELECTEDGES
select edges
@ MID_GNE_EDGE_SPLIT
split an edge
@ MID_GNE_LANE_TRANSFORM_GREENVERGE
transform lane to greenVerge
@ MID_GNE_INTERVALBAR_LIMITED
enable/disable show data elements by interval
@ MID_GNE_EDGE_EDIT_ENDPOINT
change default geometry endpoints
@ MID_LOCATEROUTE
Locate route - button.
@ MID_GNE_POLYGON_DELETE_GEOMETRY_POINT
delete geometry point
@ MID_GNE_CROSSING_EDIT_SHAPE
edit junction shape
@ MID_GNE_POLYGON_OPEN
open closed polygon
@ MID_GNE_POLYGON_SIMPLIFY_SHAPE
simplify polygon geometry
@ MID_REMOVESELECT
Remove from selected items - Menu Etry.
GUICompleteSchemeStorage gSchemeStorage
@ SUMOCURSOR_MOVE
move cursor
@ SUMOCURSOR_DEFAULT
default cursor
#define GUIDesignVerticalSeparator
vertical separator
@ GLO_TEMPORALSHAPE
temporal shape (used in NETEDIT)
@ GLO_DOTTEDCONTOUR_FRONT
dotted contour front element (used in NETEDIT)
@ GLO_CONNECTION
a connection
#define WRITE_WARNING(msg)
StringBijection< SUMOVehicleClass > SumoVehicleClassStrings(sumoVehicleClassStringInitializer, SVC_CUSTOM2, false)
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
int SVCPermissions
bitset where each bit declares whether a certain SVC may use this edge/lane
@ 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 (used in NETEDIT)
@ SUMO_TAG_FLOW
a flow definitio nusing a from-to edges instead of a route (used by router)
@ SUMO_TAG_CONNECTION
connectio between two lanes
@ SUMO_TAG_JUNCTION
begin/end of the description of a junction
@ SUMO_TAG_CROSSING
crossing between edges for pedestrians
@ SUMO_TAG_LANE
begin/end of the description of a single lane
@ SUMO_TAG_TRIP
a single trip definition (used by router)
@ SUMO_TAG_EDGE
begin/end of the description of an edge
@ 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
const double SUMO_const_laneWidth
#define UNUSED_PARAMETER(x)
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
A class that stores a 2D geometrical boundary.
double ymin() const
Returns minimum y-coordinate.
double xmin() const
Returns minimum x-coordinate.
double ymax() const
Returns maximum y-coordinate.
double xmax() const
Returns maximum x-coordinate.
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 drawFilledCircle(double width, int steps=8)
Draws a filled circle around (0,0)
static void drawBoxLines(const PositionVector &geom, const std::vector< double > &rots, const std::vector< double > &lengths, double width, int cornerDetail=0, double offset=0)
Draws thick lines.
static void drawText(const std::string &text, const Position &pos, const double layer, const double size, const RGBColor &col=RGBColor::BLACK, const double angle=0, const int align=0, double width=-1)
void abortPathCreation()
abort path creation
void removeLastElement()
remove path element
void drawTemporalE2Multilane(const GUIVisualizationSettings &s) const
draw temporal E2Multilane
bool createPath()
create path
bool isSelectingLanes() const
return true if modul is selecting lane
const std::vector< std::pair< GNELane *, double > > & getSelectedLanes() const
get current selected lanes
bool isShown() const
return true if modul is shown
bool stopConsecutiveLaneSelector()
stop selection of consecutive lanes
void startConsecutiveLaneSelector(GNELane *lane, const Position &clickedPosition)
start selection of consecutive lanes
bool addSelectedLane(GNELane *lane, const Position &clickedPosition)
return true if lane can be selected as consecutive lane
void abortConsecutiveLaneSelector()
abort selection of consecutive lanes
GNEAdditionalFrame::SelectorParentLanes * getConsecutiveLaneSelector() const
get consecutive Lane Selector
GNEAdditionalFrame::E2MultilaneLaneSelector * getE2MultilaneLaneSelector() const
getConsecutive Lane Selector
bool addAdditional(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor)
add additional element
An Element which don't belongs to GNENet but has influency in the simulation.
virtual void openAdditionalDialog()
open Additional Dialog
GNEApplicationWindowHelper::ToolbarsGrip & getToolbarsGrip()
get ToolbarsGrip
bool isAttributeCarrierSelected() const
check if attribute carrier is selected
virtual const std::string & getID() const =0
return ID of object
virtual GUIGlObject * getGUIGlObject()=0
get GUIGlObject associated with this AttributeCarrier
const GNETagProperties & getTagProperty() const
get Tag Property assigned to this object
void unselectAttributeCarrier(const bool changeFlag=true)
unselect attribute carrier using GUIGlobalSelection
void selectAttributeCarrier(const bool changeFlag=true)
select attribute carrier using GUIGlobalSelection
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 modul
void handleLaneClick(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor)
either sets the current lane or toggles the connection of the
void processClick(const Position &clickedPosition, const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor, const bool oppositeEdge, const bool chainEdge)
handle processClick and set the relative colouring
void abortEdgeCreation()
abort current edge creation
void show()
show create edge frame
void updateObjectsUnderSnappedCursor(const std::vector< GUIGlObject * > &GUIGlObjects)
update objects under snapped cursor
const GNEJunction * getJunctionSource() const
get junction source for new edge
void addCrossing(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor)
add Crossing element
void createCrossingHotkey()
create crossing (used when user press ENTER key in Crossing mode)
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
GNEJunction * getParentJunction() const
get parent Junction
NBNode::Crossing * getNBCrossing() const
get referente to NBode::Crossing
bool deleteOnlyGeometryPoints() const
check if only delete geometry points checkbox is enabled
DeleteOptions * getDeleteOptions() const
get delete options
void removeSelectedAttributeCarriers()
remove selected attribute carriers (element)
void removeAttributeCarrier(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor, bool ignoreOptions=false)
remove attribute carrier (element)
void removeGeometryPoint(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor)
remove geometry point
void show()
show delete frame
An Element which don't belongs to GNENet but has influency in the simulation.
const std::string & getID() const
get ID
bool addEdgeData(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor, const GNEViewNetHelper::MouseButtonKeyPressed &mouseButtonKeyPressed)
add additional element
A road/street connecting two junctions (netedit-version)
GNEEdge * getOppositeEdge() const
get opposite edge
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
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::ObjectsUnderCursor &objectsUnderCursor, const GNEViewNetHelper::MouseButtonKeyPressed &mouseButtonKeyPressed)
add additional element
void focusUpperElement()
focus upper element of frame
virtual void show()
show Frame
void startDrawing()
start drawing
bool getDeleteLastCreatedPoint()
get flag delete last created point
void stopDrawing()
stop drawing and check if shape can be created
void setDeleteLastCreatedPoint(bool value)
enable or disable delete last created point
const PositionVector & getTemporalShape() const
get Temporal shape
void abortDrawing()
abort drawing
bool isDrawing() const
return true if currently a shape is drawed
bool checkSavedPosition(const Position &clickedPosition) const
check if given position is near to saved position
bool overlappedInspectionShown() const
check if overlappedInspection modul is shown
void drawTemporalRoute(const GUIVisualizationSettings &s) const
draw temporal route
void removeLastElement()
remove path element
void abortPathCreation()
abort path creation
void createPath()
create path
GNEFrameModuls::PathCreator * getPathCreator() const
get PathCreator modul
class for NETEDIT geometries over lanes
void updateGeometry(const PositionVector &shape, double startPos=-1, double endPos=-1, const Position &extraFirstPosition=Position::INVALID, const Position &extraLastPosition=Position::INVALID)
update geometry shape
const std::vector< GNEDemandElement * > & getParentDemandElements() const
get parent demand elements
void clearInspectedAC()
Clear all current inspected ACs.
bool processDataSupermodeClick(const Position &clickedPosition, GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor)
process click over Viewnet in Supermode Data
void show()
show inspector frame
bool processNetworkSupermodeClick(const Position &clickedPosition, GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor)
process click over Viewnet in Supermode Network
void inspectMultisection(const std::vector< GNEAttributeCarrier * > &ACs)
Inspect the given multi-selection.
GNEFrameModuls::OverlappedInspection * getOverlappedInspection() const
get OverlappedInspection modul
bool processDemandSupermodeClick(const Position &clickedPosition, GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor)
process click over Viewnet in Supermode Demand
void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)
Position getPositionInView() const
Returns position of hierarchical element in view.
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
int getIndex() const
returns the index of the lane
void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)
GNEEdge * getParentEdge() const
get arent edge
virtual void removeGeometryPoint(const Position clickedPosition, GNEUndoList *undoList)=0
remove geometry point in the clicked position
void show()
show prohibition frame
bool addPOI(const std::string &id, const std::string &type, const RGBColor &color, const Position &pos, bool geo, const std::string &lane, double posOverLane, double posLat, double layer, double angle, const std::string &imgFile, bool relativePath, double width, double height, bool ignorePruning=false)
Builds a POI using the given values and adds it to the container.
const std::map< std::string, GNEEdge * > & getEdges() const
map with the ID and pointer to edges of net
const std::map< SumoXMLTag, std::map< std::string, GNEDemandElement * > > & getDemandElements() const
void calculateReachability(const SUMOVehicleClass vClass, GNEEdge *originEdge)
calculate reachability for given edge
A NBNetBuilder extended by visualisation and editing capabilities.
void deleteEdge(GNEEdge *edge, GNEUndoList *undoList, bool recomputeConnections)
removes edge
GNECrossing * retrieveCrossing(const std::string &id, bool failHard=true) const
get Crossing by id
void deleteLane(GNELane *lane, GNEUndoList *undoList, bool recomputeConnections)
removes lane
void deleteCrossing(GNECrossing *crossing, GNEUndoList *undoList)
remove crossing
void deleteAdditional(GNEAdditional *additional, GNEUndoList *undoList)
remove additional
void reverseEdge(GNEEdge *edge, GNEUndoList *undoList)
reverse edge
GNEEdge * addReversedEdge(GNEEdge *edge, GNEUndoList *undoList)
add reversed edge
void deleteTAZElement(GNETAZElement *TAZElement, GNEUndoList *undoList)
remove TAZElement
std::vector< GNEGenericData * > retrieveGenericDatas(bool onlySelected=false) const
return all generic datas
bool restrictLane(SUMOVehicleClass vclass, GNELane *lane, GNEUndoList *undoList)
transform lane to restricted lane
GNEEdge * retrieveEdge(const std::string &id, bool failHard=true) const
get edge by id
std::vector< GNELane * > retrieveLanes(bool onlySelected=false)
return all lanes
GNEJunction * splitEdge(GNEEdge *edge, const Position &pos, GNEUndoList *undoList, GNEJunction *newJunction=0)
split edge at position by inserting a new junction
GNEAttributeCarrier * retrieveAttributeCarrier(const GUIGlID id, bool failHard=true) const
get a single attribute carrier based on a GLID
std::vector< GNEAdditional * > retrieveAdditionals(bool onlySelected=false) const
return all additionals
void deleteDemandElement(GNEDemandElement *demandElement, GNEUndoList *undoList)
remove demand element
void duplicateLane(GNELane *lane, GNEUndoList *undoList, bool recomputeConnections)
duplicates lane
void computeAndUpdate(OptionsCont &oc, bool volatileOptions)
recompute the network and update lane geometries
void deleteConnection(GNEConnection *connection, GNEUndoList *undoList)
remove connection
std::vector< GNEDemandElement * > retrieveDemandElements(bool onlySelected=false) const
return all demand elements
void resetJunctionConnections(GNEJunction *junction, GNEUndoList *undoList)
reset junction's connections
void deleteGenericData(GNEGenericData *genericData, GNEUndoList *undoList)
remove generic data
GNENetHelper::PathCalculator * getPathCalculator()
obtain instance of PathCalculator
GNENetHelper::AttributeCarriers * getAttributeCarriers() const
retrieve all attribute carriers of Net
std::vector< GNEJunction * > retrieveJunctions(bool onlySelected=false)
return all junctions
void splitEdgesBidi(GNEEdge *edge, GNEEdge *oppositeEdge, const Position &pos, GNEUndoList *undoList)
split all edges at position by inserting one new junction
void deleteShape(GNEShape *shape, GNEUndoList *undoList)
remove shape
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
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
std::vector< GNEShape * > retrieveShapes(SumoXMLTag shapeTag, bool onlySelected=false)
return shape by type shapes
void replaceJunctionByGeometry(GNEJunction *junction, GNEUndoList *undoList)
replace the selected junction by geometry node(s) and merge the edges
std::vector< GNEEdge * > retrieveEdges(bool onlySelected=false)
return all 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
std::vector< GNETAZElement * > retrieveTAZElements(bool onlySelected=false) const
return all TAZElements
GNEDemandElement * retrieveDemandElement(SumoXMLTag type, const std::string &id, bool hardFail=true) const
Returns the named demand element.
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
const std::string & getID() const
get ID
bool addPerson(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor, const GNEViewNetHelper::MouseButtonKeyPressed &mouseButtonKeyPressed)
add vehicle element
GNEFrameModuls::PathCreator * getPathCreator() const
get PathCreator modul
bool addPersonPlanElement(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor, const GNEViewNetHelper::MouseButtonKeyPressed &mouseButtonKeyPressed)
add person plan element
GNEFrameModuls::PathCreator * getPathCreator() const
get path creator modul
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
GNEFrameModuls::DrawingShape * getDrawingShapeModul() const
get drawing mode editor
AddShape
enum with all possible values after try to create an shape using frame
GNEPolygonFrame::AddShape processClick(const Position &clickedPosition, const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor)
process click over Viewnet
void handleProhibitionClick(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor)
handle prohibitions and set the relative colouring
long onCmdCancel(FXObject *, FXSelector, void *)
Called when the user presses the Cancel-button discards any prohibition modifications.
void show()
show prohibition frame
void show()
show delete frame
GNEFrameModuls::PathCreator * getPathCreator() const
get path creator modul
bool addEdgeRoute(GNEEdge *clickedEdge, const GNEViewNetHelper::MouseButtonKeyPressed &mouseButtonKeyPressed)
add route edge
bool IsObjectTypeLocked(const GUIGlObjectType type) const
check if an object is locked
LockGLObjectTypes * getLockGLObjectTypes() const
get selected items Modul
void clearCurrentSelection() const
clear current selection with possibility of undo/redo
bool addStop(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor, 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 *)
bool processClick(const Position &clickedPosition, const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor)
process click over Viewnet
GNEFrameModuls::DrawingShape * getDrawingShapeModul() const
get drawing mode modul
TAZCurrent * getTAZCurrentModul() const
get Current TAZ modul
void processEdgeSelection(const std::vector< GNEEdge * > &edges)
process selection of edges in view net
TAZSaveChanges * getTAZSaveChangesModul() const
get TAZ Save Changes modul
bool addTAZRelationData(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor, const GNEViewNetHelper::MouseButtonKeyPressed &mouseButtonKeyPressed)
add additional element
void clearTAZSelection()
clear TAZ selection
long onCmdOK(FXObject *, FXSelector, void *)
long onCmdCancel(FXObject *, FXSelector, void *)
Called when the user presses the Cancel-button.
void editTLS(const Position &clickedPosition, const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor)
edits the traffic light for the given clicked junction
void show()
show inspector frame
bool isShape() const
return true if tag correspond to a shape
bool isPersonStop() const
return true if tag correspond to a person stop element
bool isTAZElement() const
return true if tag correspond to a TAZ element
bool isPersonPlan() const
return true if tag correspond to a person plan
bool isNetworkElement() const
return true if tag correspond to a network element
bool isDataElement() const
return true if tag correspond to a data element
bool isSelectable() const
return true if tag correspond to a selectable element
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 isDemandElement() const
return true if tag correspond to a demand element
bool isAdditionalElement() const
return true if tag correspond to an additional element
bool isPerson() const
return true if tag correspond to a person element
void p_begin(const std::string &description)
Begin undo command sub-group. This begins a new group of commands that are treated as a single comman...
void p_end()
End undo command sub-group. If the sub-group is still empty, it will be deleted; otherwise,...
void p_abort()
reverts and discards ALL active command groups
GNEFrameModuls::PathCreator * getPathCreator() const
get PathCreator modul
bool addVehicle(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor, const GNEViewNetHelper::MouseButtonKeyPressed &mouseButtonKeyPressed)
add vehicle element
class used to group all variables related to interval bar
void setDataSet()
set dataSet
void hideIntervalBar()
hide all options menu checks
void setGenericDataType()
set generic data type
void showIntervalBar()
show interval option bar
void disableIntervalBar()
disable interval bar
void buildIntervalBarElements()
build interval bar elements
void enableIntervalBar()
enable interval bar
void setInterval()
update limit by interval
void setAttribute()
set attribute
class used to group all variables related with objects under cursor after a click over view
void updateObjectUnderCursor(const std::vector< GUIGlObject * > &GUIGlObjects)
update objects under cursor (Called only in onLeftBtnPress(...) function)
void swapLane2Edge()
swap lane to edge
GNENetworkElement * getNetworkElementFront() const
get front network element or a pointer to nullptr
GNEAttributeCarrier * getAttributeCarrierFront() const
get front attribute carrier or a pointer to nullptr
GNELane * getLaneFront() const
get front lane or a pointer to nullptr
GUIGlObjectType getGlTypeFront() const
get front GUI GL object type or a pointer to nullptr
GNEJunction * getJunctionFront() const
get front junction or a pointer to nullptr
GNEEdge * getEdgeFront() const
get front edge or a pointer to nullptr
GUIGlObject * getGUIGlObjectFront() const
get front attribute carrier or a pointer to nullptr
GNEConnection * getConnectionFront() const
get front connection or a pointer to nullptr
GNEPOI * getPOIFront() const
get front POI or a pointer to nullptr
GNEViewNetHelper::EditNetworkElementShapes myEditNetworkElementShapes
struct for grouping all variables related with edit shapes
long onCmdClosePolygon(FXObject *, FXSelector, void *)
close opened polygon
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
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
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 modul
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 onCmdSmoothEdges(FXObject *, FXSelector, void *)
smooth geometry
long onCmdStraightenEdges(FXObject *, FXSelector, void *)
makes selected edges straight
const GNEViewNetHelper::MouseButtonKeyPressed & getMouseButtonKeyPressed() const
get Key Pressed modul
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 onCmdToogleShowJunctionBubbles(FXObject *, FXSelector, void *)
toogle show junction bubbles
GNEViewNetHelper::EditModes myEditModes
variable used to save variables related with edit moves modes
long onCmdReplaceJunction(FXObject *, FXSelector, void *)
replace node by geometry
long onCmdSplitJunction(FXObject *, FXSelector, void *)
split junction into multiple junctions
long onCmdToogleChangeAllPhases(FXObject *, FXSelector, void *)
toogle change all phases
long onCmdClearConnections(FXObject *, FXSelector, void *)
clear junction connections
void abortOperation(bool clearSelection=true)
abort current edition operation
void deleteSelectedGenericDatas()
delete all currently selected generic data elements
void deleteSelectedConnections()
delete all currently selected connections
GNEViewNetHelper::TestingMode myTestingMode
variable used to save variables related with testing mode
GNEPOI * getPOIAtPopupPosition()
try to retrieve a POILane at popup position
GNEViewNetHelper::SelectingArea mySelectingArea
variable used to save variables related with selecting areas
long onCmdLaneReachability(FXObject *, FXSelector sel, void *)
show lane reachability
long onCmdToogleWarnAboutMerge(FXObject *, FXSelector, void *)
toogle warn for merge
GNEViewNetHelper::NetworkCheckableButtons myNetworkCheckableButtons
variable used to save checkable buttons for Supermode Network
bool removeRestrictedLane(SUMOVehicleClass vclass)
remove restricted lane
std::vector< std::string > getEdgeDataAttrs() const
return list of loaded edgeData attributes
long onCmdToogleLockPerson(FXObject *, FXSelector, void *)
toogle lock person in super mode demand
void processClick(void *eventData)
Auxiliar function used by onLeftBtnPress(...)
GNEViewNetHelper::MoveSingleElementValues myMoveSingleElementValues
long onCmdSimplifyShape(FXObject *, FXSelector, void *)
simply shape of current polygon
void drawLaneCandidates() const
draw functions
GNELane * getLaneAtPopupPosition()
try to retrieve a lane at popup position
GNEViewNetHelper::MouseButtonKeyPressed myMouseButtonKeyPressed
variable used to save key status after certain events
GNEViewNetHelper::IntervalBar myIntervalBar
variable used to save IntervalBar
GNEViewParent * myViewParent
view parent
bool showJunctionAsBubbles() const
return true if junction must be showed as bubbles
long onCmdToogleShowAllPersonPlans(FXObject *, FXSelector, void *)
toogle show all person plans in super mode demand
bool changeAllPhases() const
change all phases
long onCmdEditJunctionShape(FXObject *, FXSelector, void *)
edit junction shape
long onCmdToogleShowAdditionals(FXObject *, FXSelector, void *)
toogle show additionals in super mode data
bool setColorScheme(const std::string &name)
set color scheme
int doPaintGL(int mode, const Boundary &bound)
do paintGL
long onCmdOpenAdditionalDialog(FXObject *, FXSelector, void *)
open additional dialog
const GNEViewNetHelper::NetworkViewOptions & getNetworkViewOptions() const
get network view options
void hotkeyFocusFrame()
handle focus frame keypress
GNEViewNetHelper::DemandViewOptions myDemandViewOptions
variable used to save variables related with view options in supermode Demand
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
GNEUndoList * myUndoList
a reference to the undolist maintained in the application
GNEViewNetHelper::NetworkViewOptions myNetworkViewOptions
variable used to save variables related with view options in supermode Network
void doInit()
called after some features are already initialized
void buildEditModeControls()
create edit mode buttons and elements
GNEViewNetHelper::DataCheckableButtons myDataCheckableButtons
variable used to save checkable buttons for Supermode Data
void processLeftButtonPressDemand(void *eventData)
process left button press function in Supermode Demand
void deleteSelectedShapes()
delete all currently selected shapes
GNEViewNetHelper::IntervalBar & getIntervalBar()
get interval bar
long onCmdToogleSelectEdges(FXObject *, FXSelector, void *)
toogle select edges
GNEViewParent * getViewParent() const
get the net object
long onCmdToogleHideShapes(FXObject *, FXSelector, void *)
toogle hide shapes in super mode demand
long onCmdAddReversedEdge(FXObject *, FXSelector, void *)
add reversed edge
void deleteSelectedAdditionals()
delete all currently selected additionals
void processLeftButtonReleaseNetwork()
process left button release function in Supermode Network
void buildColorRainbow(const GUIVisualizationSettings &s, GUIColorScheme &scheme, int active, GUIGlObjectType objectType, bool hide=false, double hideThreshold=0.)
recalibrate color scheme according to the current value range
long onCmdToogleChainEdges(FXObject *, FXSelector, void *)
toogle chain edges
long onCmdIntervalBarGenericDataType(FXObject *, FXSelector, void *)
change generic data type in interval bar
long onCmdConvertRoundabout(FXObject *, FXSelector, void *)
convert junction to roundabout
long onRightBtnPress(FXObject *, FXSelector, void *)
called when user press mouse's right button
long onCmdOpenPolygon(FXObject *, FXSelector, void *)
open closed polygon
long onCmdIntervalBarDataSet(FXObject *, FXSelector, void *)
change data set in interval bar
void processLeftButtonReleaseDemand()
process left button release function in Supermode Demand
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 viceversa.
void saveVisualizationSettings() const
GNEViewNetHelper::SaveElements mySaveElements
variable used to save elements
void deleteSelectedCrossings()
delete all currently selected crossings
long onCmdToogleHideNonInspecteDemandElements(FXObject *, FXSelector, void *)
toogle hide non inspected demand elements
long onCmdIntervalBarSetEnd(FXObject *, FXSelector, void *)
change end in interval bar
long onCmdIntervalBarSetAttribute(FXObject *, FXSelector, void *)
change attribute in interval bar
void drawTemporalDrawShape() const
draw temporal polygon shape in Polygon Mode
void removeFromAttributeCarrierInspected(const GNEAttributeCarrier *AC)
remove given AC of list of inspected Attribute Carriers
long onCmdSplitEdgeBidi(FXObject *, FXSelector, void *)
split edge at cursor position
GNEJunction * getJunctionAtPopupPosition()
try to retrieve a junction at popup position
long onCmdSetSupermode(FXObject *, FXSelector sel, void *)
long onCmdToogleExtendSelection(FXObject *, FXSelector, void *)
toogle extend selection
const GNEAttributeCarrier * myFrontAttributeCarrier
front attribute carrier
GNEViewNetHelper::DemandCheckableButtons myDemandCheckableButtons
variable used to save checkable buttons for Supermode Demand
long onCmdSetMode(FXObject *, FXSelector sel, void *)
called when user press a mode button (Network or demand)
long onCmdResetEdgeEndpoint(FXObject *, FXSelector, void *)
change geometry endpoint
long onCmdIntervalBarSetBegin(FXObject *, FXSelector, void *)
change begin in interval bar
long onCmdResetLength(FXObject *, FXSelector, void *)
reset custom edge lengths
void deleteSelectedJunctions()
delete all currently selected junctions
long onCmdToogleAutoOppositeEdge(FXObject *, FXSelector, void *)
toogle autoOpposite edge
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
std::vector< GNEAttributeCarrier * > myInspectedAttributeCarriers
current inspected attribute carrier
void processLeftButtonPressNetwork(void *eventData)
mouse process functions
void hotkeyEnter()
handle enter keypress
GNEConnection * getConnectionAtPopupPosition()
try to retrieve a connection at popup position
void forceSupermodeNetwork()
set supermode Network (used after load/create new network)
const std::vector< GNEAttributeCarrier * > & getInspectedAttributeCarriers() const
get inspected attribute carriers
long onKeyPress(FXObject *o, FXSelector sel, void *data)
called when user press a key
bool addRestrictedLane(SUMOVehicleClass vclass)
add restricted lane
long onCmdSplitEdge(FXObject *, FXSelector, void *)
split edge at cursor position
long onCmdToogleShowShapes(FXObject *, FXSelector, void *)
toogle show shapes in super mode data
long onCmdToogleShowGrid(FXObject *, FXSelector, void *)
toogle show grid
bool mergeJunctions(GNEJunction *movedJunction, GNEJunction *targetJunction)
try to merge moved junction with another junction in that spot return true if merging did take place
long onCmdStraightenEdgesElevation(FXObject *, FXSelector, void *)
interpolate z values linear between junctions
void updateControls()
update control contents after undo/redo or recompute
long onCmdSplitJunctionReconnect(FXObject *, FXSelector, void *)
split junction into multiple junctions and reconnect them
void buildSelectionACPopupEntry(GUIGLObjectPopupMenu *ret, GNEAttributeCarrier *AC)
Builds an entry which allows to (de)select the object.
void hotkeyDel()
handle del keypress
long onCmdToogleDrawSpreadVehicles(FXObject *, FXSelector, void *)
toogle draw vehicles in begin position or spread in lane
bool isAttributeCarrierInspected(const GNEAttributeCarrier *AC) const
check if attribute carrier is being inspected
GNEViewNet()
FOX needs this.
long onCmdSmoothEdgesElevation(FXObject *, FXSelector, void *)
smooth elevation with regard to adjoining edges
long onCmdResetJunctionShape(FXObject *, FXSelector, void *)
reset junction shape
void deleteSelectedEdges()
delete all currently selected edges
long onRightBtnRelease(FXObject *, FXSelector, void *)
called when user releases mouse's right button
long onCmdToogleMoveElevation(FXObject *, FXSelector, void *)
toogle move elevation
long onCmdReverseEdge(FXObject *, FXSelector, void *)
reverse edge
void processLeftButtonReleaseData()
process left button release function in Supermode Data
GNENet * myNet
Pointer to current net. (We are not responsible for deletion)
GNEPoly * getPolygonAtPopupPosition()
try to retrieve a polygon at popup position
GNEViewNetHelper::DataViewOptions myDataViewOptions
variable used to save variables related with view options in supermode Data
void drawTranslateFrontAttributeCarrier(const GNEAttributeCarrier *AC, GUIGlObjectType objectType, const double extraOffset=0)
draw front attributeCarrier
long onCmdEditEdgeEndpoint(FXObject *, FXSelector, void *)
change geometry endpoint
const GNEViewNetHelper::DemandViewOptions & getDemandViewOptions() const
get demand view options
const GNEViewNetHelper::ObjectsUnderCursor & getObjectsUnderCursor() const
get objects under cursor
GNEViewNetHelper::MoveMultipleElementValues myMoveMultipleElementValues
variable used to save variables related with movement of multiple elements
void updateViewNet() const
Mark the entire GNEViewNet to be repainted later.
GNEViewNetHelper::ObjectsUnderCursor myObjectsUnderCursor
variable use to save all pointers to objects under cursor after a click
bool restrictLane(SUMOVehicleClass vclass)
restrict lane
long onCmdToogleShowDemandElements(FXObject *, FXSelector, void *)
toogle show demand elements
std::set< std::pair< std::string, GNEAttributeCarrier * > > getAttributeCarriersInBoundary(const Boundary &boundary, bool forceSelectEdges=false)
get AttributeCarriers in Boundary
long onKeyRelease(FXObject *o, FXSelector sel, void *data)
called when user release a key
long onCmdResetConnections(FXObject *, FXSelector, void *)
reset junction connections
void setInspectedAttributeCarriers(const std::vector< GNEAttributeCarrier * > ACs)
set inspected attributeCarrier
long onCmdResetLaneCustomShape(FXObject *, FXSelector, void *)
reset custom shapes of selected lanes
void setStatusBarText(const std::string &text)
set staturBar text
void processMoveMouseDemand(const bool mouseLeftButtonPressed)
process move mouse function in Supermode Demand
void setSelectorFrameScale(double selectionScale)
set selection scaling (in GNESelectorFrame)
void setFrontAttributeCarrier(const GNEAttributeCarrier *AC)
set front attributeCarrier
long onCmdEditConnectionShape(FXObject *, FXSelector, void *)
edit connection shape
void updateDemandModeSpecificControls()
updates Demand mode specific controls
void openObjectDialog()
open object dialog
GNEAdditional * getAdditionalAtPopupPosition()
try to retrieve a additional at popup position
bool showLockIcon() const
check if lock icon should be visible
void drawTemporalJunction() const
draw temporal junction in create edge mode
long onCmdToogleShowConnections(FXObject *, FXSelector, void *)
toogle show connections
long onCmdSelectRoundabout(FXObject *, FXSelector, void *)
select all roundabout nodes and edges
long onLeftBtnPress(FXObject *, FXSelector, void *)
long onCmdToogleHideConnections(FXObject *, FXSelector, void *)
toogle hide connections
void deleteSelectedTAZElements()
delete all currently selected TAZ Elements
void deleteSelectedLanes()
delete all currently selected lanes
long onCmdIntervalBarLimit(FXObject *, FXSelector, void *)
change limit interval in interval bar
void deleteSelectedDemandElements()
delete all currently selected demand elements
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
GNEPolygonFrame * getPolygonFrame() const
get frame for NETWORK_POLYGON
GNETAZRelDataFrame * getTAZRelDataFrame() const
get frame for DATA_TAZRELDATA
GNEMoveFrame * getMoveFrame() const
get frame for move elements
GNESelectorFrame * getSelectorFrame() const
get frame for select elements
GNEEdgeDataFrame * getEdgeDataFrame() const
get frame for DATA_EDGEDATA
GNEDeleteFrame * getDeleteFrame() const
get frame for delete elements
GNEVehicleFrame * getVehicleFrame() const
get frame for DEMAND_VEHICLE
void hideAllFrames()
hide all frames
GNETAZFrame * getTAZFrame() const
get frame for NETWORK_TAZ
GNETLSEditorFrame * getTLSEditorFrame() const
get frame for NETWORK_TLS
GNEApplicationWindow * getGNEAppWindows() const
get GNE Application Windows
GNEAdditionalFrame * getAdditionalFrame() const
get frame for NETWORK_ADDITIONAL
GNEPersonFrame * getPersonFrame() const
get frame for DEMAND_PERSON
GNEInspectorFrame * getInspectorFrame() const
get frame for inspect elements
GNEVehicleTypeFrame * getVehicleTypeFrame() const
get frame for DEMAND_VEHICLETYPE
GNEEdgeRelDataFrame * getEdgeRelDataFrame() const
get frame for DATA_EDGERELDATA
GNEPersonTypeFrame * getPersonTypeFrame() const
get frame for DEMAND_PERSONTYPE
GNECreateEdgeFrame * getCreateEdgeFrame() const
get frame for NETWORK_CREATEEDGE
GNERouteFrame * getRouteFrame() const
get frame for DEMAND_ROUTE
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.
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)
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.
FXComboBox * getColoringSchemesCombo()
return combobox with the current coloring schemes (standard, fastest standard, real world....
FXPopup * getLocatorPopup()
@ brief return a pointer to locator popup
virtual 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 GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)=0
Returns an own popup-menu.
void unblockObject(GUIGlID id)
Marks an object as unblocked.
static GUIGlObjectStorage gIDStorage
A single static instance of this class.
GUIGlObject * getObjectBlocking(GUIGlID id)
Returns the object from the container locking it.
static FXIcon * getIcon(const GUIIcon which)
returns a icon previously defined in the enum GUIIcon
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.
virtual bool onRightBtnRelease(void *data)
called when user releases right button
const T getColor(const double value) const
const std::string & getName() const
int addColor(const T &color, const double threshold, const std::string &name="")
void paintGLGrid()
paints a grid
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.
virtual long onLeftBtnRelease(FXObject *, FXSelector, void *)
std::vector< GUIGlObject * > getGUIGlObjectsUnderCursor()
returns the GUIGlObject under the cursor using GL_SELECT (including overlapped objects)
const SUMORTree * myGrid
The visualization speed-up.
GUIDialog_ViewSettings * myVisualizationChanger
Visualization changer.
std::vector< GUIGlID > getObjectsInBoundary(Boundary bound, bool singlePosition)
returns the ids of all objects in the given boundary
FXbool makeCurrent()
A reimplementation due to some internal reasons.
virtual long onMouseMove(FXObject *, FXSelector, void *)
Position myPopupPosition
The current popup-menu position.
GUIMainWindow * myApp
The application.
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()
destoys the popup
virtual long onKeyPress(FXObject *o, FXSelector sel, void *data)
keyboard functions
Position getPositionInformation() const
Returns the cursor's x/y position within the network.
GUIGlID getObjectAtPosition(Position pos)
returns the id of the object at position using GL_SELECT
std::vector< GUIGlObject * > getGUIGlObjectsUnderSnappedCursor()
returns the GUIGlObject under the gripped cursor using GL_SELECT (including overlapped objects)
virtual long onKeyRelease(FXObject *o, FXSelector sel, void *data)
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 *)
static void resetTextures()
Reset textures.
Stores the information about how to visualize structures.
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 disableLaneIcons
whether drawing is performed in left-hand networks
bool drawForPositionSelection
whether drawing is performed for the purpose of selecting objects with a single click
GUIVisualizationCandidateColorSettings candidateColorSettings
candidate color settings
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)
bool forceDrawForRectangleSelection
flag to force draw for rectangle selection (see drawForRectangleSelection)
bool forceDrawForPositionSelection
flag to force draw for position selection (see drawForPositionSelection)
int getCircleResolution() const
function to calculate circle resolution for all circles drawn in drawGL(...) functions
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
EdgeVector getAllEdges() const
return all edges
The representation of a single edge during network building.
Connection getConnection(int fromLane, const NBEdge *to, int toLane) const
Returns the specified connection This method goes through "myConnections" and returns the specified o...
PositionVector customShape
optional customShape for this crossing
PositionVector shape
The crossing's shape.
const PositionVector & getShape() const
retrieve the junction shape
A storage for options typed value containers)
std::string getString(const std::string &name) const
Returns the string-value of the named option (only for Option_String)
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.
void close()
Closes the device and removes it from the dictionary.
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
bool closeTag(const std::string &comment="")
Closes the most recently opened tag and optionally adds a comment.
static OutputDevice & getDevice(const std::string &name)
Returns the described OutputDevice.
C++ TraCI client API implementation.
A point in 2D or 3D with translation and scaling methods.
double distanceTo(const Position &p2) const
returns the euclidean distance in 3 dimension
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
void move2side(double amount, double maxExtension=100)
move position vector to side using certain ammount
void setAlpha(unsigned char alpha)
Sets a new alpha value.
static const RGBColor BLUE
static const RGBColor YELLOW
static const RGBColor ORANGE
static const RGBColor CYAN
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 MAGENTA
static const RGBColor RED
named colors
virtual int Search(const float a_min[2], const float a_max[2], const GUIVisualizationSettings &c) const
Find all within search rectangle.
static double calculateRotation(const Position &first, const Position &second)
return angle between two points (used in geometric calculations)
static void drawGeometry(const GNEViewNet *viewNet, const Geometry &geometry, const double width)
draw geometry
static double calculateLength(const Position &first, const Position &second)
return length between two points (used in geometric calculations)
struct used to group all variables related to view options in supermode Data
void hideDataViewOptionsMenuChecks()
hide all options menu checks
MFXCheckableButton * menuCheckShowAdditionals
menu check to show Additionals
MFXCheckableButton * menuCheckShowShapes
menu check to show Shapes
void buildDataViewOptionsMenuChecks()
build menu checks
MFXCheckableButton * menuCheckShowDemandElements
menu check to show Demand Elements
struct used to group all variables related to view options in supermode Demand
void lockPerson(const GNEDemandElement *person)
lock person
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 * menuCheckShowGrid
menu check to show grid button
void hideDemandViewOptionsMenuChecks()
hide all options menu checks
MFXCheckableButton * menuCheckShowAllPersonPlans
show all person plans
MFXCheckableButton * menuCheckHideNonInspectedDemandElements
Hide non inspected demand elements.
void unlockPerson()
unlock person
MFXCheckableButton * menuCheckHideShapes
Hide shapes (Polygons and POIs)
MFXCheckableButton * menuCheckLockPerson
Lock Person.
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
NetworkEditMode networkEditMode
the current Network edit mode
bool isCurrentSupermodeDemand() const
@check if current supermode is Demand
void setDemandEditMode(DemandEditMode demandMode, const bool force=false)
set Demand edit mode
bool isCurrentSupermodeData() const
@check if current supermode is Data
bool isCurrentSupermodeNetwork() const
@check if current supermode is Network
void setSupermode(Supermode supermode, const bool force)
set supermode
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 commitEditedShape()
save edited shape
void startEditCustomShape(GNENetworkElement *element)
start edit custom shape
void moveSelection(const bool mouseLeftButtonPressed)
move selection
void beginMoveSelection()
begin move selection
bool isMovingSelection() const
check if currently there is element being moved
void finishMoveSelection()
finish moving selection
void finishMoveSingleElement()
finish moving single elements in Network AND Demand mode
void moveSingleElement(const bool mouseLeftButtonPressed)
move single element in Network AND Demand mode
bool beginMoveSingleElementNetworkMode()
begin move single element in Network mode
bool beginMoveNetworkElementShape()
begin move network elementshape
bool beginMoveSingleElementDemandMode()
begin move single element in 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 * 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
bool selectEdges() const
check if select edges checkbox is enabled
MFXCheckableButton * menuCheckShowJunctionBubble
checkable button to show connection as buuble in "Move" mode.
MFXCheckableButton * menuCheckWarnAboutMerge
checkable button to we should warn about merging junctions
void hideNetworkViewOptionsMenuChecks()
hide all options menu checks
void buildNetworkViewOptionsMenuChecks()
build menu checks
MFXCheckableButton * menuCheckShowGrid
checkable button to show grid button
MFXCheckableButton * menuCheckChangeAllPhases
checkable button to set change all phases
MFXCheckableButton * menuCheckExtendSelection
checkable button to extend to edge nodes
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 possible
color for possible candidate element
RGBColor selectionColor
basic selection color
static const double junctionBubbleRadius
junction buuble radius
PositionVector shape
shape of Connection