72 FXIMPLEMENT(
GUIDialog_ViewSettings, FXDialogBox, GUIDialog_ViewSettingsMap, ARRAYNUMBER(GUIDialog_ViewSettingsMap))
80 myParent(parent), mySettings(settings),
81 myDecals(decals), myDecalsLock(decalsLock),
82 myDecalsTable(
nullptr) {
83 myBackup = (*mySettings);
91 for (std::vector<std::string>::const_iterator i = names.begin(); i != names.end(); ++i) {
92 int index = mySchemeName->appendItem((*i).c_str());
93 if ((*i) == mySettings->name) {
94 mySchemeName->setCurrentItem((FXint) index);
97 mySchemeName->setNumVisible(5);
104 new FXVerticalSeparator(frame0);
106 mySaveViewPort =
new FXCheckButton(frame0,
"Viewport");
107 mySaveDelay =
new FXCheckButton(frame0,
"Delay");
108 mySaveDecals =
new FXCheckButton(frame0,
"Decals");
109 mySaveBreakpoints =
new FXCheckButton(frame0,
"Breakpoints");
110 if (settings->netedit) {
111 mySaveBreakpoints->disable();
119 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
129 new FXLabel(frame11,
"Decals:");
130 myDecalsFrame =
new FXVerticalFrame(frame11);
139 myShowGrid->setCheck(mySettings->showGrid);
140 new FXLabel(m12,
"");
144 myGridXSizeDialer->setRange(1, 10000);
145 myGridXSizeDialer->setValue(mySettings->gridXSize);
149 myGridYSizeDialer->setRange(1, 10000);
150 myGridYSizeDialer->setValue(mySettings->gridXSize);
155 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
165 myParamKey->disable();
166 myParamKey->setEditable(
true);
171 (BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT), 0, 0, 0, 0, 20, 20, 4, 4);
174 myLaneColorRainbowThreshold->setRange(-100000, 100000);
186 mySettings->edgeColorer.fill(*myLaneEdgeColorMode);
187 mySettings->edgeScaler.fill(*myLaneEdgeScaleMode);
188 myLaneEdgeColorMode->setNumVisible((
int)mySettings->edgeColorer.size());
189 myLaneEdgeScaleMode->setNumVisible((
int)mySettings->edgeScaler.size());
191 mySettings->laneColorer.fill(*myLaneEdgeColorMode);
192 mySettings->laneScaler.fill(*myLaneEdgeScaleMode);
193 myLaneEdgeColorMode->setNumVisible((
int)mySettings->laneColorer.size());
194 myLaneEdgeScaleMode->setNumVisible((
int)mySettings->laneScaler.size());
200 myShowLaneBorders->setCheck(mySettings->laneShowBorders);
202 myShowBikeMarkings->setCheck(mySettings->showBikeMarkings);
204 myShowLaneDecals->setCheck(mySettings->showLinkDecals);
207 myShowLinkRules->setCheck(mySettings->showLinkRules);
210 myShowRails->setCheck(mySettings->showRails);
213 myHideMacroConnectors->setCheck(mySettings->hideConnectors);
216 myShowLaneDirection->setCheck(mySettings->showLaneDirection);
219 myShowSublanes->setCheck(mySettings->showSublanes);
220 mySpreadSuperposed =
new FXCheckButton(m22,
"Spread bidirectional railway\t\tMake both directional edges for a bidirectional railway visible",
this,
MID_SIMPLE_VIEW_COLORCHANGE);
221 mySpreadSuperposed->setCheck(mySettings->spreadSuperposed);
224 myLaneWidthUpscaleDialer->setRange(0, 1000000);
225 myLaneWidthUpscaleDialer->setValue(mySettings->laneWidthExaggeration);
229 myLaneMinWidthDialer->setRange(0, 1000000);
230 myLaneMinWidthDialer->setValue(mySettings->laneMinSize);
233 myEdgeNamePanel =
new NamePanel(m22,
this,
"Show edge id", mySettings->edgeName);
234 myStreetNamePanel =
new NamePanel(m22,
this,
"Show street name", mySettings->streetName);
235 myEdgeValuePanel =
new NamePanel(m22,
this,
"Show edge color value", mySettings->edgeValue);
240 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
246 myVehicleShapeDetail->appendItem(
"'triangles'");
247 myVehicleShapeDetail->appendItem(
"'boxes'");
248 myVehicleShapeDetail->appendItem(
"'simple shapes'");
249 myVehicleShapeDetail->appendItem(
"'raster images'");
250 myVehicleShapeDetail->setNumVisible(4);
251 myVehicleShapeDetail->setCurrentItem(settings->vehicleQuality);
258 mySettings->vehicleColorer.fill(*myVehicleColorMode);
259 myVehicleColorMode->setNumVisible((
int)mySettings->vehicleColorer.size());
262 myVehicleParamKey->setEditable(
true);
263 myVehicleParamKey->disable();
270 myVehicleNamePanel =
new NamePanel(m35,
this,
"Show vehicle id", mySettings->vehicleName);
271 myVehicleValuePanel =
new NamePanel(m35,
this,
"Show vehicle color value", mySettings->vehicleValue);
272 myVehicleTextPanel =
new NamePanel(m35,
this,
"Show vehicle text param", mySettings->vehicleText);
274 myVehicleTextParamKey->setEditable(
true);
280 myShowBlinker->setCheck(mySettings->showBlinker);
282 myShowMinGap->setCheck(mySettings->drawMinGap);
284 myShowBrakeGap->setCheck(mySettings->drawBrakeGap);
286 myShowBTRange->setCheck(mySettings->showBTRange);
288 myShowRouteIndex->setCheck(mySettings->showRouteIndex);
298 myVehicleSizePanel =
new SizePanel(m34,
this, mySettings->vehicleSize);
304 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
310 myPersonShapeDetail->appendItem(
"'triangles'");
311 myPersonShapeDetail->appendItem(
"'circles'");
312 myPersonShapeDetail->appendItem(
"'simple shapes'");
313 myPersonShapeDetail->appendItem(
"'raster images'");
314 myPersonShapeDetail->setNumVisible(4);
315 myPersonShapeDetail->setCurrentItem(settings->personQuality);
322 mySettings->personColorer.fill(*myPersonColorMode);
323 myPersonColorMode->setNumVisible(10);
331 myPersonNamePanel =
new NamePanel(m103,
this,
"Show person id", mySettings->personName);
332 myPersonValuePanel =
new NamePanel(m103,
this,
"Show person color value", mySettings->personValue);
337 myPersonSizePanel =
new SizePanel(m104,
this, mySettings->personSize);
342 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
348 myContainerShapeDetail->appendItem(
"'triangles'");
349 myContainerShapeDetail->appendItem(
"'boxes'");
350 myContainerShapeDetail->appendItem(
"'simple shapes'");
351 myContainerShapeDetail->appendItem(
"'raster images'");
352 myContainerShapeDetail->setNumVisible(4);
353 myContainerShapeDetail->setCurrentItem(settings->containerQuality);
360 mySettings->containerColorer.fill(*myContainerColorMode);
361 myContainerColorMode->setNumVisible(9);
369 myContainerNamePanel =
new NamePanel(m103,
this,
"Show container id", mySettings->containerName);
374 myContainerSizePanel =
new SizePanel(m104,
this, mySettings->containerSize);
379 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
384 mySettings->junctionColorer.fill(*myJunctionColorMode);
385 myJunctionColorMode->setNumVisible(4);
390 (BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT), 0, 0, 0, 0, 20, 20, 4, 4);
394 myJunctionSizePanel =
new SizePanel(m42,
this, mySettings->junctionSize);
396 myDrawJunctionShape->setCheck(mySettings->drawJunctionShape);
398 myDrawCrossingsAndWalkingAreas->setCheck(mySettings->drawCrossingsAndWalkingareas);
400 myShowLane2Lane->setCheck(mySettings->showLane2Lane);
403 myTLIndexPanel =
new NamePanel(m42,
this,
"Show link tls index", mySettings->drawLinkTLIndex);
404 myJunctionIndexPanel =
new NamePanel(m42,
this,
"Show link junction index", mySettings->drawLinkJunctionIndex);
405 myJunctionIDPanel =
new NamePanel(m42,
this,
"Show junction id", mySettings->junctionID);
406 myInternalJunctionNamePanel =
new NamePanel(m42,
this,
"Show internal junction id", mySettings->internalJunctionName);
407 myInternalEdgeNamePanel =
new NamePanel(m42,
this,
"Show internal edge id", mySettings->internalEdgeName);
408 myCwaEdgeNamePanel =
new NamePanel(m42,
this,
"Show crossing and walkingarea id", mySettings->cwaEdgeName);
409 myTLSPhaseIndexPanel =
new NamePanel(m42,
this,
"Show traffic light phase index", mySettings->tlsPhaseIndex);
410 myTLSPhaseNamePanel =
new NamePanel(m42,
this,
"Show traffic light phase name", mySettings->tlsPhaseName);
411 myJunctionNamePanel =
new NamePanel(m42,
this,
"Show junction name", mySettings->junctionName);
416 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
420 myAddNamePanel =
new NamePanel(m51,
this,
"Show object id", mySettings->addName);
421 myAddFullNamePanel =
new NamePanel(m51,
this,
"Show full name", mySettings->addFullName);
425 myAddSizePanel =
new SizePanel(m52,
this, mySettings->addSize);
435 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
441 mySettings->poiColorer.fill(*myPOIColorMode);
442 myPOIColorMode->setNumVisible(3);
449 myPOINamePanel =
new NamePanel(m61,
this,
"Show poi id", mySettings->poiName);
450 myPOITypePanel =
new NamePanel(m61,
this,
"Show poi type", mySettings->poiType);
451 myPOITextPanel =
new NamePanel(m61,
this,
"Show poi text param", mySettings->poiText);
453 myPOITextParamKey->setEditable(
true);
457 myPOISizePanel =
new SizePanel(m62,
this, mySettings->poiSize);
464 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
470 mySettings->polyColorer.fill(*myPolyColorMode);
471 myPolyColorMode->setNumVisible(3);
478 myPolyNamePanel =
new NamePanel(m91,
this,
"Show polygon id", mySettings->polyName);
479 myPolyTypePanel =
new NamePanel(m91,
this,
"Show polygon types", mySettings->polyType);
482 myPolySizePanel =
new SizePanel(m91,
this, mySettings->polySize);
484 if (settings->netedit) {
487 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
522 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
527 myShowSizeLegend->setCheck(mySettings->showSizeLegend);
528 new FXLabel(m72,
"");
530 myShowColorLegend->setCheck(mySettings->showColorLegend);
531 new FXLabel(m72,
"");
533 myShowVehicleColorLegend->setCheck(mySettings->showVehicleColorLegend);
534 new FXLabel(m72,
"");
539 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
544 myDither->setCheck(mySettings->dither);
547 myFPS->setCheck(mySettings->fps);
550 myDrawBoundaries->setCheck(mySettings->drawBoundaries);
553 myForceDrawForPositionSelection->setCheck(mySettings->forceDrawForPositionSelection);
555 myForceDrawForRectangleSelection =
new FXCheckButton(m86,
"Force draw for rectangle selection",
this,
MID_SIMPLE_VIEW_COLORCHANGE);
556 myForceDrawForRectangleSelection->setCheck(mySettings->forceDrawForRectangleSelection);
563 rebuildColorMatrices(
false);
641 if (data !=
nullptr) {
642 FXString dataS = (
char*) data;
645 for (
int i = 0; i <
mySchemeName->getNumItems() - 1; ++i) {
763 std::vector<FXColorWell*>::const_iterator colEnd,
764 std::vector<FXRealSpinner*>::const_iterator threshIt,
765 std::vector<FXRealSpinner*>::const_iterator threshEnd,
766 std::vector<FXButton*>::const_iterator buttonIt,
770 while (colIt != colEnd) {
772 if (sender == *colIt) {
776 if (sender == *threshIt) {
777 const double val = (*threshIt)->getValue();
781 if (sender == *colIt) {
785 if (sender == *buttonIt) {
788 }
else if (sender == *(buttonIt + 1)) {
805 std::vector<FXRealSpinner*>::const_iterator scaleEnd,
806 std::vector<FXRealSpinner*>::const_iterator threshIt,
807 std::vector<FXRealSpinner*>::const_iterator threshEnd,
808 std::vector<FXButton*>::const_iterator buttonIt,
811 while (scaleIt != scaleEnd) {
813 if (sender == *scaleIt) {
814 scheme.
setColor(pos, (*scaleIt)->getValue());
817 if (sender == *threshIt) {
818 const double val = (*threshIt)->getValue();
822 (*threshIt)->getRange(lo, hi);
823 (*threshIt)->setRange(lo, val);
827 if (threshIt != threshEnd) {
828 (*threshIt)->getRange(lo, hi);
829 (*threshIt)->setRange(val, hi);
834 if (sender == *scaleIt) {
835 scheme.
setColor(pos, (*scaleIt)->getValue());
838 if (sender == *buttonIt) {
839 scheme.
addColor((*scaleIt)->getValue(), (*threshIt)->getValue());
841 }
else if (sender == *(buttonIt + 1)) {
866 bool doRebuildColorMatrices =
false;
991 tmpSettings.
fps = (
myFPS->getCheck() != FALSE);
1003 doRebuildColorMatrices =
true;
1007 doRebuildColorMatrices =
true;
1013 doRebuildColorMatrices =
true;
1017 doRebuildColorMatrices =
true;
1020 doRebuildColorMatrices =
true;
1027 doRebuildColorMatrices =
true;
1031 doRebuildColorMatrices =
true;
1034 doRebuildColorMatrices =
true;
1041 doRebuildColorMatrices =
true;
1045 doRebuildColorMatrices =
true;
1048 doRebuildColorMatrices =
true;
1055 doRebuildColorMatrices =
true;
1059 doRebuildColorMatrices =
true;
1062 doRebuildColorMatrices =
true;
1069 doRebuildColorMatrices =
true;
1073 doRebuildColorMatrices =
true;
1076 doRebuildColorMatrices =
true;
1083 doRebuildColorMatrices =
true;
1087 doRebuildColorMatrices =
true;
1090 doRebuildColorMatrices =
true;
1097 doRebuildColorMatrices =
true;
1101 doRebuildColorMatrices =
true;
1104 doRebuildColorMatrices =
true;
1111 doRebuildColorMatrices =
true;
1115 doRebuildColorMatrices =
true;
1118 doRebuildColorMatrices =
true;
1148 if (doRebuildColorMatrices) {
1152 getApp()->forceRefresh();
1161 if (settingsName !=
"") {
1162 FXint index =
mySchemeName->appendItem(settingsName.c_str());
1186 std::vector<GUISUMOAbstractView::Decal>::iterator j;
1227 std::string name =
"";
1228 while (name.length() == 0) {
1239 if (!dialog.execute()) {
1242 name = text->getText().text();
1243 for (
int i = 0; i < (int)name.length(); ++i) {
1244 if (name[i] !=
'_' && (name[i] <
'a' || name[i] >
'z') && (name[i] <
'A' || name[i] >
'Z') && (name[i] <
'0' || name[i] >
'9')) {
1252 tmpSettings.
name = name;
1266 sender->handle(
this,
1268 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1280 std::string name =
mySchemeName->getItem(index).text();
1291 sender->handle(
this,
1293 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1330 FXMessageBox::error(
this, MBOX_OK,
"Storing failed!",
"%s", e.what());
1338 sender->handle(
this,
1341 FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1349 FXFileDialog opendialog(
this,
"Import view settings");
1351 opendialog.setSelectMode(SELECTFILE_ANY);
1352 opendialog.setPatternList(
"*.xml");
1356 if (opendialog.execute()) {
1366 FXFileDialog opendialog(
this,
"Load Decals");
1368 opendialog.setSelectMode(SELECTFILE_ANY);
1369 opendialog.setPatternList(
"*.xml");
1373 if (opendialog.execute()) {
1394 FXMessageBox::error(
myParent, MBOX_OK,
"Storing failed!",
"%s", e.what());
1404 sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE), ptr);
1414 const int numRows =
MAX2((
int)10, (
int)
myDecals->size() + 1);
1425 header->setHeight(getApp()->getNormalFont()->getFontHeight() + getApp()->getNormalFont()->getFontAscent());
1427 for (k = 0; k < cols; k++) {
1429 header->setItemSize(k, 60);
1431 header->setItemSize(0, 150);
1434 std::vector<GUISUMOAbstractView::Decal>::iterator j;
1448 for (k = 0; k < 7; k++) {
1456 std::vector<FXColorWell*>& colors,
1457 std::vector<FXRealSpinner*>& thresholds,
1458 std::vector<FXButton*>& buttons,
1459 FXCheckButton* interpolation,
1466 const bool fixed = scheme.
isFixed();
1467 std::vector<RGBColor>::const_iterator colIt = scheme.
getColors().begin();
1468 std::vector<double>::const_iterator threshIt = scheme.
getThresholds().begin();
1469 std::vector<std::string>::const_iterator nameIt = scheme.
getNames().begin();
1470 while (colIt != scheme.
getColors().end()) {
1473 new FXLabel(m, nameIt->c_str());
1478 FXRealSpinner* threshDialer =
new FXRealSpinner(m, 10,
this,
MID_SIMPLE_VIEW_COLORCHANGE, FRAME_THICK | FRAME_SUNKEN | LAYOUT_TOP | LAYOUT_CENTER_Y | SPIN_NOMAX | dialerOptions);
1479 threshDialer->setValue(*threshIt);
1480 thresholds.push_back(threshDialer);
1482 threshDialer->disable();
1483 threshDialer->hide();
1485 buttons.back()->hide();
1487 buttons.back()->disable();
1499 interpolation->disable();
1501 if (colors.size() > 1) {
1502 interpolation->enable();
1503 if (interpolation->getCheck() != FALSE) {
1504 thresholds.front()->enable();
1506 thresholds.front()->disable();
1509 interpolation->disable();
1510 thresholds.front()->disable();
1519 std::vector<FXRealSpinner*>& scales,
1520 std::vector<FXRealSpinner*>& thresholds,
1521 std::vector<FXButton*>& buttons,
1522 FXCheckButton* interpolation,
1529 const bool fixed = scheme.
isFixed();
1530 std::vector<double>::const_iterator scaleIt = scheme.
getColors().begin();
1531 std::vector<double>::const_iterator threshIt = scheme.
getThresholds().begin();
1532 std::vector<std::string>::const_iterator nameIt = scheme.
getNames().begin();
1533 while (scaleIt != scheme.
getColors().end()) {
1534 FXRealSpinner* scaleDialer =
new FXRealSpinner(m, 10,
this,
MID_SIMPLE_VIEW_COLORCHANGE, FRAME_THICK | FRAME_SUNKEN | LAYOUT_TOP | LAYOUT_CENTER_Y | SPIN_NOMAX);
1535 scaleDialer->setValue(*scaleIt);
1536 scales.push_back(scaleDialer);
1538 new FXLabel(m, nameIt->c_str());
1543 FXRealSpinner* threshDialer =
new FXRealSpinner(m, 10,
this,
MID_SIMPLE_VIEW_COLORCHANGE, FRAME_THICK | FRAME_SUNKEN | LAYOUT_TOP | LAYOUT_CENTER_Y | SPIN_NOMAX | dialerOptions);
1544 threshDialer->setValue(*threshIt);
1545 thresholds.push_back(threshDialer);
1555 interpolation->disable();
1557 if (scales.size() > 1) {
1558 interpolation->enable();
1559 if (interpolation->getCheck() != FALSE) {
1560 thresholds.front()->enable();
1562 thresholds.front()->disable();
1565 interpolation->disable();
1566 thresholds.front()->disable();
1583 for (
int i = 1; i <= 5; ++i) {
1718 std::string value = i->
item->getText().text();
1720 if (value.find_first_not_of(
" ") == std::string::npos) {
1726 if (row ==
static_cast<int>(
myDecals->size())) {
1739 }
else if (row >
static_cast<int>(
myDecals->size())) {
1743 d = (*myDecals)[row];
1757 std::string msg =
"The value must be a float, is:" + value;
1758 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1765 std::string msg =
"The value must be a float, is:" + value;
1766 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1773 std::string msg =
"The value must be a float, is:" + value;
1774 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1781 std::string msg =
"The value must be a float, is:" + value;
1782 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1789 std::string msg =
"The value must be a float, is:" + value;
1790 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1797 std::string msg =
"The value must be a float, is:" + value;
1798 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1805 std::string msg =
"The value must be a bool, is:" + value;
1806 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1812 (*myDecals)[row] = d;
1832 for (
int i = 0; i <
mySchemeName->getNumItems(); ++i) {
1844 const std::string& title,
1867 mySizeDial->getValue(),
1870 myConstSizeCheck->getCheck() != FALSE);
1876 myCheck->setCheck(settings.
show);
1877 mySizeDial->setValue(settings.
size);
1880 myConstSizeCheck->setCheck(settings.
constSize);
1895 myMinSizeDial->setValue(settings.
minSize);
1899 myExaggerateDial->setRange(0, 10000);
1907 myMinSizeDial->getValue(), myExaggerateDial->getValue(),
1908 myCheck->getCheck() != FALSE,
1909 myCheckSelected->getCheck() != FALSE);
1917 myMinSizeDial->setValue(settings.
minSize);
1924 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"x", getX());
1925 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"y", getY());
1926 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"width", getWidth());
1927 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"height", getHeight());
1933 const FXint minSize = 400;
1934 const FXint minTitlebarHeight = 20;
1935 setX(
MAX2(0,
MIN2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"x", 150),
1936 getApp()->getRootWindow()->getWidth() - minSize)));
1937 setY(
MAX2(minTitlebarHeight,
1938 MIN2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"y", 150),
1939 getApp()->getRootWindow()->getHeight() - minSize)));
1940 setWidth(
MAX2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"width", 700), minSize));
1941 setHeight(
MAX2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"height", 500), minSize));
@ MID_SIMPLE_VIEW_NAMECHANGE
Informs the dialog about switching to another scheme.
@ MID_SIMPLE_VIEW_SAVE
For the save-to-db - button.
@ MID_SIMPLE_VIEW_IMPORT
For the import-from-file - button.
@ MID_SIMPLE_VIEW_EXPORT
For the export-to-file - button.
@ MID_SIMPLE_VIEW_DELETE
For the delete - button.
@ MID_SETTINGS_OK
Ok-button was pushed.
@ MID_SETTINGS_CANCEL
Cancel-button was pushed.
@ MID_SIMPLE_VIEW_LOAD_DECALS
For the load-decals - button.
@ MID_SIMPLE_VIEW_COLORCHANGE
Informs the dialog about a value's change.
@ MID_SIMPLE_VIEW_SAVE_DECALS
For the save-decals - button.
GUICompleteSchemeStorage gSchemeStorage
#define GUIDesignViewSettingsColorWell2
#define GUIDesignViewSettingsMatrix3
#define GUIDesignViewSettingsMainDialog
#define GUIDesignViewSettingsMatrix5
#define GUIDesignComboBoxStatic
Combo box static (not editable)
#define GUIDesignViewSettingsMFXTable
MFX Add/Edit Typed Table.
#define GUIDesignViewSettingsComboBox1
Combo boxs.
#define GUIDesignViewSettingsHorizontalFrame3
#define GUIDesignViewSettingsVerticalFrame6
#define GUIDesignViewSettingsHorizontalFrame2
#define GUIDesignViewSettingsButton2
#define GUIDesignButtonToolbar
little button with icon placed in navigation toolbar
#define GUIDesignViewSettingsMatrix1
Matrix.
#define GUIDesignViewSettingsColorWell1
Color wells.
#define GUIDesignViewSettingsButton4
#define GUIDesignViewSettingsDialog
#define GUIDesignViewSettingsMatrix4
#define GUIDesignViewSettingsSpinDial2
#define GUIDesignViewSettingsButton5
#define GUIDesignViewSettingsHorizontalFrame1
Horizontal frames.
#define GUIDesignViewSettingsSpinDial1
#define GUIDesignViewSettingsVerticalFrame5
#define GUIDesignViewSettingsMatrix2
#define GUIDesignViewSettingsLabel1
Label.
#define GUIDesignViewSettingsTabBook1
Tab books.
#define GUIDesignViewSettingsButton3
#define GUIDesignMatrixViewSettings
FXMatrix used to pack values in Viewsettings.
#define GUIDesignViewSettingsVerticalFrame2
#define GUIDesignViewSettingsVerticalFrame3
#define GUIDesignViewSettingsColorWell
ColorWell.
#define GUIDesignViewSettingsMFXTableJustify
#define GUIDesignHorizontalSeparator
#define GUIDesignViewSettingsVerticalFrame4
#define GUIDesignViewSettingsTabItemBook1
#define GUIDesignViewSettingsVerticalFrame1
vertical frames
#define GUIDesignViewSettingsLabel2
#define GUIDesignViewSettingsTextField1
textFields
#define GUIDesignCheckButtonViewSettings
CheckButton for Frames without thick extended over the frame.
#define GUIDesignViewSettingsButton1
Buttons.
FXDEFMAP(GUIDialog_ViewSettings) GUIDialog_ViewSettingsMap[]
FXString gCurrentFolder
The folder used as last.
std::string time2string(SUMOTime t)
convert SUMOTime to string
@ SUMO_TAG_VIEWSETTINGS_DECAL
@ SUMO_ATTR_LAYER
A layer number.
#define UNUSED_PARAMETER(x)
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
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.
void add(const GUIVisualizationSettings &scheme)
Adds a visualization scheme.
int getNumInitialSettings() const
Returns the number of initial settings.
void remove(const std::string &name)
Removes the setting with the given name.
void writeSettings(FXApp *app)
Writes the current scheme into the registry.
void writeXML(OutputDevice &dev)
write the settings to the given device
GUIVisualizationTextSettings getSettings()
FXRealSpinner * mySizeDial
FXColorWell * myBGColorWell
void update(const GUIVisualizationTextSettings &settings)
FXCheckButton * myConstSizeCheck
FXColorWell * myColorWell
NamePanel(FXMatrix *parent, GUIDialog_ViewSettings *target, const std::string &title, const GUIVisualizationTextSettings &settings)
SizePanel(FXMatrix *parent, GUIDialog_ViewSettings *target, const GUIVisualizationSizeSettings &settings)
void update(const GUIVisualizationSizeSettings &settings)
GUIVisualizationSizeSettings getSettings()
The dialog to change the view (gui) settings.
NamePanel * myTLSPhaseNamePanel
long onCmdExportSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be exported into a file.
FXVerticalFrame * myVehicleColorSettingFrame
FXColorWell * mySelectedPersonPlanColor
NamePanel * myJunctionNamePanel
FXCheckButton * myVehicleColorInterpolation
std::string getCurrentScheme() const
Returns the name of the currently chosen scheme.
FXCheckButton * myHideMacroConnectors
GUISUMOAbstractView * myParent
The parent view (which settings are changed)
FXMutex * myDecalsLock
Lock used when changing the decals.
FXCheckButton * myShowMinGap
void rebuildList()
Rebuilds the decals table.
NamePanel * myStreetNamePanel
std::vector< FXColorWell * > myPolyColors
FXVerticalFrame * myJunctionColorSettingFrame
FXCheckButton * mySaveDecals
long onCmdNameChange(FXObject *, FXSelector, void *)
Called if the name of the scheme was changed.
FXVerticalFrame * myContainerColorSettingFrame
FXRealSpinner * myLaneWidthUpscaleDialer
MFXIconComboBox * myPersonShapeDetail
std::vector< FXColorWell * > myPOIColors
FXButton * myLaneColorRainbow
MFXIconComboBox * myPOIColorMode
std::vector< FXButton * > myLaneScaleButtons
FXColorWell * mySelectedCrossingColor
FXCheckButton * mySpreadSuperposed
FXCheckButton * myShowBikeMarkings
long onCmdSaveDecals(FXObject *, FXSelector, void *data)
Called if the decals shall be saved to a file.
FXCheckButton * myShowSizeLegend
std::vector< FXColorWell * > myPersonColors
NamePanel * myPOITextPanel
std::vector< FXRealSpinner * > myPolyThresholds
FXCheckButton * myPOIColorInterpolation
std::vector< GUISUMOAbstractView::Decal > * myDecals
The parent's decals.
std::vector< FXButton * > myContainerButtons
std::vector< FXRealSpinner * > myJunctionThresholds
MFXIconComboBox * myVehicleShapeDetail
FXMatrix * rebuildColorMatrix(FXVerticalFrame *frame, std::vector< FXColorWell * > &colors, std::vector< FXRealSpinner * > &thresholds, std::vector< FXButton * > &buttons, FXCheckButton *interpolation, GUIColorScheme &scheme)
Rebuilds manipulators for the current coloring scheme.
std::vector< FXRealSpinner * > myPersonThresholds
NamePanel * myTLIndexPanel
NamePanel * myPolyNamePanel
FXButton * myJunctionColorRainbow
FXCheckButton * myShowLinkRules
void show()
show view settings dialog
std::vector< FXButton * > myJunctionButtons
FXColorWell * mySelectedPersonColor
MFXIconComboBox * myContainerColorMode
FXCheckButton * myShowGrid
FXColorWell * mySelectedProhibitionColor
FXCheckButton * myShowBTRange
FXCheckButton * myShowVehicleColorLegend
FXCheckButton * myDrawBoundaries
FXCheckButton * mySaveViewPort
MFXIconComboBox * myLaneEdgeColorMode
... lane colorer
FXComboBox * mySchemeName
FXCheckButton * myShowRails
FXCheckButton * myLaneColorRainbowCheck
MFXIconComboBox * myContainerShapeDetail
NamePanel * myAddFullNamePanel
std::vector< FXColorWell * > myJunctionColors
FXRealSpinner * myLaneMinWidthDialer
FXCheckButton * myShowLaneDirection
void saveWindowSize()
save window position and size to the registry
SizePanel * myContainerSizePanel
FXCheckButton * myPersonColorInterpolation
~GUIDialog_ViewSettings()
Destructor.
FXColorWell * mySelectionColor
selection colors
FXVerticalFrame * myLaneScaleSettingFrame
std::vector< FXColorWell * > myVehicleColors
long onCmdLoadDecals(FXObject *, FXSelector, void *data)
Called if the decals shall be loaded from a file.
FXMatrix * rebuildScaleMatrix(FXVerticalFrame *frame, std::vector< FXRealSpinner * > &scales, std::vector< FXRealSpinner * > &thresholds, std::vector< FXButton * > &buttons, FXCheckButton *interpolation, GUIScaleScheme &scheme)
Rebuilds manipulators for the current scaling scheme.
MFXIconComboBox * myLaneEdgeScaleMode
... lane scaler
std::vector< FXRealSpinner * > myVehicleThresholds
void setCurrentScheme(const std::string &)
Sets the named scheme as the current.
FXCheckButton * myPolyColorInterpolation
std::vector< FXButton * > myPersonButtons
FXColorWell * mySelectedEdgeColor
void loadWindowSize()
load window position and size from the registry
FXCheckButton * myJunctionColorInterpolation
long onCmdCancel(FXObject *, FXSelector, void *)
Called if the Cancel-button was pressed.
FXColorWell * mySelectedVehicleColor
MFXAddEditTypedTable * myDecalsTable
FXColorWell * mySelectedConnectionColor
FXVerticalFrame * myLaneColorSettingFrame
FXCheckButton * myShowColorLegend
NamePanel * myEdgeValuePanel
FXCheckButton * myLaneScaleInterpolation
FXCheckButton * myForceDrawForPositionSelection
long onCmdImportSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be read from a file.
MFXIconComboBox * myJunctionColorMode
NamePanel * myContainerNamePanel
NamePanel * myPOINamePanel
NamePanel * myPOITypePanel
NamePanel * myPersonNamePanel
FXColorWell * mySelectedRouteColor
FXComboBox * myVehicleParamKey
FXComboBox * myVehicleTextParamKey
SizePanel * myPersonSizePanel
NamePanel * myPersonValuePanel
long onUpdImportSetting(FXObject *, FXSelector, void *data)
Called when updating the button that allows to read settings from a file.
void setCurrent(GUIVisualizationSettings *settings)
Sets current settings (called if reopened)
FXColorWell * mySelectedAdditionalColor
void rebuildColorMatrices(bool doCreate=false)
Rebuilds color changing dialogs after choosing another coloring scheme.
void saveDecals(OutputDevice &dev) const
Writes the currently used decals into a file.
FXVerticalFrame * myPolyColorSettingFrame
std::vector< FXRealSpinner * > myLaneScales
NamePanel * myInternalEdgeNamePanel
void loadSettings(const std::string &file)
Loads a scheme from a file.
SizePanel * myAddSizePanel
FXVerticalFrame * myDecalsFrame
MFXIconComboBox * myPersonColorMode
FXCheckButton * myDrawCrossingsAndWalkingAreas
std::vector< FXButton * > myLaneButtons
NamePanel * myPolyTypePanel
NamePanel * myJunctionIDPanel
NamePanel * myJunctionIndexPanel
FXCheckButton * myLaneColorInterpolation
FXVerticalFrame * myPersonColorSettingFrame
FXCheckButton * mySaveDelay
FXCheckButton * myContainerColorInterpolation
std::vector< FXColorWell * > myLaneColors
SizePanel * myVehicleSizePanel
GUIVisualizationSettings * mySettings
The current settings.
long onCmdDeleteSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be deleted.
SizePanel * myPOISizePanel
void loadDecals(const std::string &file)
Loads decals from a file.
FXComboBox * myPOITextParamKey
FXVerticalFrame * myPOIColorSettingFrame
long onCmdColorChange(FXObject *, FXSelector, void *)
Called if something (color, width, etc.) has been changed.
std::vector< FXColorWell * > myContainerColors
NamePanel * myVehicleTextPanel
FXCheckButton * myForceDrawForRectangleSelection
SizePanel * myPolySizePanel
NamePanel * myCwaEdgeNamePanel
FXCheckButton * myShowBrakeGap
std::vector< FXRealSpinner * > myLaneScaleThresholds
FXRealSpinner * myLaneColorRainbowThreshold
NamePanel * myAddNamePanel
GUIVisualizationSettings myBackup
A backup of the settings (used if the "Cancel" button is pressed)
std::vector< FXRealSpinner * > myContainerThresholds
void updatePOIParams()
reload known POI parameters
FXCheckButton * myShowLane2Lane
FXRealSpinner * myGridXSizeDialer
long onCmdEditTable(FXObject *, FXSelector, void *data)
Called if the decals-table was changed.
long onCmdOk(FXObject *, FXSelector, void *)
Called if the OK-button was pressed.
long onCmdSaveSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be saved into the registry.
FXCheckButton * myShowBlinker
NamePanel * myVehicleNamePanel
NamePanel * myInternalJunctionNamePanel
long onUpdSaveSetting(FXObject *, FXSelector, void *data)
Called when updating the button that allows to save the settings into the registry.
FXCheckButton * myShowSublanes
FXCheckButton * myShowRouteIndex
SizePanel * myJunctionSizePanel
FXColorWell * mySelectedLaneColor
NamePanel * myVehicleValuePanel
FXColorWell * myBackgroundColor
bool updateColorRanges(FXObject *sender, std::vector< FXColorWell * >::const_iterator colIt, std::vector< FXColorWell * >::const_iterator colEnd, std::vector< FXRealSpinner * >::const_iterator threshIt, std::vector< FXRealSpinner * >::const_iterator threshEnd, std::vector< FXButton * >::const_iterator buttonIt, GUIColorScheme &scheme)
FXCheckButton * mySaveBreakpoints
std::vector< FXRealSpinner * > myLaneThresholds
long onUpdDeleteSetting(FXObject *, FXSelector, void *data)
Called when updating the button that allows to delete settings.
bool updateScaleRanges(FXObject *sender, std::vector< FXRealSpinner * >::const_iterator colIt, std::vector< FXRealSpinner * >::const_iterator colEnd, std::vector< FXRealSpinner * >::const_iterator threshIt, std::vector< FXRealSpinner * >::const_iterator threshEnd, std::vector< FXButton * >::const_iterator buttonIt, GUIScaleScheme &scheme)
long onUpdExportSetting(FXObject *, FXSelector, void *data)
Called when updating the button that allows to export settings into a file.
NamePanel * myTLSPhaseIndexPanel
std::vector< FXButton * > myPOIButtons
MFXIconComboBox * myVehicleColorMode
MFXIconComboBox * myPolyColorMode
NamePanel * myEdgeNamePanel
FXColorWell * mySelectedEdgeDataColor
FXCheckButton * myShowLaneDecals
FXCheckButton * myShowLaneBorders
void updateVehicleParams()
reload known vehicle parameters
std::vector< FXRealSpinner * > myPOIThresholds
std::vector< FXButton * > myPolyButtons
FXRealSpinner * myGridYSizeDialer
FXCheckButton * myDrawJunctionShape
std::vector< FXButton * > myVehicleButtons
static FXIcon * getIcon(const GUIIcon which)
returns a icon previously defined in the enum GUIIcon
const std::string & getName() const
const std::vector< double > & getThresholds() const
void setColor(const int pos, const T &color)
void setThreshold(const int pos, const double threshold)
void removeColor(const int pos)
const std::vector< T > & getColors() const
int addColor(const T &color, const double threshold, const std::string &name="")
void setInterpolated(const bool interpolate, double interpolationStart=0.f)
bool isInterpolated() const
const std::vector< std::string > & getNames() const
bool allowsNegativeValues() const
void setActive(int scheme)
virtual std::vector< std::string > getPOIParamKeys() const
return list of available vehicle parameters
void setDelay(double delay)
Sets the delay of the parent application.
GUIDialog_EditViewport * getViewportEditor()
get the viewport and create it on first access
virtual const std::vector< SUMOTime > retrieveBreakpoints() const
retrieve breakpoints if provided by the application
double getGridWidth() const
get grid width
double getDelay() const
Returns the delay of the parent application.
virtual std::vector< std::string > getEdgeDataAttrs() const
return list of loaded edgeData attributes
virtual std::vector< std::string > getVehicleParamKeys(bool) const
return list of available vehicle parameters
virtual std::vector< std::string > getEdgeLaneParamKeys(bool) const
return list of available edge parameters
double getGridHeight() const
get grid height
void setBreakpoints(const std::vector< SUMOTime > &breakpoints)
Sets the breakpoints of the parent application.
FXComboBox * getColoringSchemesCombo()
get coloring schemes combo
virtual bool setColorScheme(const std::string &)
set color scheme
virtual void buildColorRainbow(const GUIVisualizationSettings &, GUIColorScheme &, int, GUIGlObjectType, bool hide=false, double hideThreshold=0)
recalibrate color scheme according to the current value range
void remove(GUIDialog_EditViewport *)
remove viewport
An XML-handler for visualisation schemes.
double getDelay() const
Returns the parsed delay.
bool hasDecals() const
Returns whether any decals have been parsed.
std::string addSettings(GUISUMOAbstractView *view=0) const
Adds the parsed settings to the global list of settings.
const std::vector< SUMOTime > & getBreakpoints() const
Returns the parsed breakpoints.
void applyViewport(GUISUMOAbstractView *view) const
Sets the viewport which has been parsed.
const std::vector< GUISUMOAbstractView::Decal > & getDecals() const
Returns the parsed decals.
Stores the information about how to visualize structures.
GUIVisualizationTextSettings addName
GUIVisualizationTextSettings tlsPhaseIndex
GUIVisualizationTextSettings vehicleName
GUIVisualizationTextSettings junctionName
RGBColor backgroundColor
The background color to use.
GUIVisualizationSizeSettings vehicleSize
GUIVisualizationSizeSettings containerSize
bool showBlinker
Information whether vehicle blinkers shall be drawn.
GUIVisualizationTextSettings internalEdgeName
GUIVisualizationSizeSettings junctionSize
static const double MISSING_DATA
bool drawBoundaries
enable or disable draw boundaries
static const std::string SCHEME_NAME_EDGEDATA_NUMERICAL
bool showBikeMarkings
Information whether bicycle lane marking shall be drawn.
GUIScaler laneScaler
The lane scaler.
bool dither
Information whether dithering shall be enabled.
GUIColorer vehicleColorer
The vehicle colorer.
GUIVisualizationTextSettings personValue
bool showLinkRules
Information whether link rules (colored bars) shall be drawn.
GUIVisualizationTextSettings poiType
GUIVisualizationSizeSettings addSize
std::string name
The name of this setting.
GUIColorer edgeColorer
The mesoscopic edge colorer.
double edgeValueHideThreshold
int containerQuality
The quality of container drawing.
GUIVisualizationTextSettings internalJunctionName
GUIVisualizationSizeSettings poiSize
bool drawJunctionShape
whether the shape of the junction should be drawn
std::string edgeData
key for coloring by edgeData
int personQuality
The quality of person drawing.
GUIColorer poiColorer
The POI colorer.
GUIVisualizationTextSettings poiName
GUIVisualizationTextSettings vehicleValue
GUIColorer polyColorer
The polygon colorer.
int vehicleQuality
The quality of vehicle drawing.
GUIVisualizationTextSettings drawLinkJunctionIndex
static const std::string SCHEME_NAME_LANE_PARAM_NUMERICAL
GUIVisualizationTextSettings addFullName
GUIVisualizationTextSettings edgeValue
bool fps
Information whether frames-per-second should be drawn.
std::string vehicleParam
key for coloring by vehicle parameter
bool showRails
Information whether rails shall be drawn.
GUIVisualizationSizeSettings personSize
double laneWidthExaggeration
The lane exaggeration (upscale thickness)
GUIVisualizationTextSettings cwaEdgeName
GUIVisualizationTextSettings junctionID
std::string vehicleTextParam
key for rendering vehicle textual parameter
bool showLane2Lane
Information whether lane-to-lane arrows shall be drawn.
GUIVisualizationColorSettings colorSettings
color settings
bool showSublanes
Whether to show sublane boundaries.
bool showGrid
Information whether a grid shall be shown.
bool showVehicleColorLegend
Information whether the vehicle color legend shall be drawn.
bool hideConnectors
flag to show or hidde connectors
static bool UseMesoSim
this should be set at the same time as MSGlobals::gUseMesoSim
GUIColorer personColorer
The person colorer.
void save(OutputDevice &dev) const
Writes the settings into an output device.
GUIScaleScheme & getLaneEdgeScaleScheme()
Returns the current lane (edge) scaling schme.
int getLaneEdgeMode() const
Returns the number of the active lane (edge) coloring schme.
bool forceDrawForRectangleSelection
flag to force draw for rectangle selection (see drawForRectangleSelection)
bool netedit
Whether the settings are for Netedit.
bool showLaneDirection
Whether to show direction indicators for lanes.
bool edgeValueHideCheck
value below which edge data value should not be rendered
GUIColorScheme & getLaneEdgeScheme()
Returns the current lane (edge) coloring schme.
GUIScaler edgeScaler
The mesoscopic edge scaler.
bool drawMinGap
Information whether the minimum gap shall be drawn.
GUIVisualizationTextSettings streetName
GUIVisualizationTextSettings poiText
GUIVisualizationTextSettings vehicleText
int getLaneEdgeScaleMode() const
Returns the number of the active lane (edge) scaling schme.
bool showLinkDecals
Information whether link textures (arrows) shall be drawn.
GUIColorer laneColorer
The lane colorer.
GUIVisualizationTextSettings polyName
bool laneShowBorders
Information whether lane borders shall be drawn.
GUIVisualizationTextSettings tlsPhaseName
GUIVisualizationTextSettings edgeName
bool showSizeLegend
Information whether the size legend shall be drawn.
double laneMinSize
The minimum visual lane width for drawing.
GUIVisualizationTextSettings drawLinkTLIndex
GUIVisualizationTextSettings containerName
GUIVisualizationSizeSettings polySize
GUIColorer containerColorer
The container colorer.
double gridXSize
Information about the grid spacings.
bool showBTRange
Information whether the communication range shall be drawn.
bool forceDrawForPositionSelection
flag to force draw for position selection (see drawForPositionSelection)
GUIVisualizationTextSettings personName
bool showColorLegend
Information whether the edge color legend shall be drawn.
std::string poiTextParam
key for rendering poi textual parameter
bool showRouteIndex
Information whether the route index should be shown.
bool drawCrossingsAndWalkingareas
whether crosings and walkingareas shall be drawn
static const std::string SCHEME_NAME_EDGE_PARAM_NUMERICAL
scheme names
bool spreadSuperposed
Whether to improve visualisation of superposed (rail) edges.
GUIColorer junctionColorer
The junction colorer.
static const std::string SCHEME_NAME_PARAM_NUMERICAL
std::string edgeParam
key for coloring by edge parameter
bool drawBrakeGap
Information whether the brake gap shall be drawn.
GUIVisualizationTextSettings polyType
void setCellType(int pos, CellType t)
void setNumberCellParams(int pos, double min, double max, double steps1, double steps2, double steps3, const std::string &format)
static void deleteChildren(FXWindow *w)
Deletes all children of the given window.
static FXString getFilename2Write(FXWindow *parent, const FXString &header, const FXString &extension, FXIcon *icon, FXString ¤tFolder)
Returns the file name to write.
static FXColor getFXColor(const RGBColor &col)
converts FXColor to RGBColor
static RGBColor getRGBColor(FXColor col)
converts FXColor to RGBColor
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.
static std::string trim(const std::string s, const std::string &t=" \t\n")
remove leading and trailing whitespace
static double toDouble(const std::string &sData)
converts a string into the double value described by it by calling the char-type converter
static bool toBool(const std::string &sData)
converts a string into the bool value described by it by calling the char-type converter
A decal (an image) that can be shown.
double tilt
The tilt of the image to the ground plane (in degrees)
double centerX
The center of the image in x-direction (net coordinates, in m)
double height
The height of the image (net coordinates in y-direction, in m)
double width
The width of the image (net coordinates in x-direction, in m)
bool initialised
Whether this image was initialised (inserted as a texture)
double rot
The rotation of the image in the ground plane (in degrees)
double layer
The layer of the image.
double altitude
The altitude of the image (net coordinates in z-direction, in m)
double centerY
The center of the image in y-direction (net coordinates, in m)
double centerZ
The center of the image in z-direction (net coordinates, in m)
std::string filename
The path to the file the image is located at.
double roll
The roll of the image to the ground plane (in degrees)
bool screenRelative
Whether this image should be skipped in 2D-views.
RGBColor selectionColor
basic selection color
RGBColor selectedEdgeColor
edge selection color
RGBColor selectedPersonPlanColor
person plan selection color (Rides, Walks, personStops...)
RGBColor selectedCrossingColor
crossings selection color
RGBColor selectedLaneColor
lane selection color
RGBColor selectedRouteColor
route selection color (used for routes and vehicle stops)
RGBColor selectedEdgeDataColor
edge data selection color
RGBColor selectedProhibitionColor
prohibition selection color
RGBColor selectedConnectionColor
connection selection color
RGBColor selectedAdditionalColor
additional selection color (busStops, Detectors...)
RGBColor selectedVehicleColor
vehicle selection color
RGBColor selectedPersonColor
person selection color
double exaggeration
The size exaggeration (upscale)
bool constantSize
whether the object shall be drawn with constant size regardless of zoom
double minSize
The minimum size to draw this object.
bool constantSizeSelected
whether only selected objects shall be drawn with constant
RGBColor bgColor
background text color
bool constSize
@brif flag to avoid size changes