74 FXIMPLEMENT(
GUIDialog_ViewSettings, FXDialogBox, GUIDialog_ViewSettingsMap, ARRAYNUMBER(GUIDialog_ViewSettingsMap))
82 myParent(parent), mySettings(settings),
83 myDecals(decals), myDecalsLock(decalsLock),
84 myDecalsTable(
nullptr) {
85 myBackup = (*mySettings);
93 for (std::vector<std::string>::const_iterator i = names.begin(); i != names.end(); ++i) {
94 int index = mySchemeName->appendItem((*i).c_str());
95 if ((*i) == mySettings->name) {
96 mySchemeName->setCurrentItem((FXint) index);
99 mySchemeName->setNumVisible(5);
106 new FXVerticalSeparator(frame0);
108 mySaveViewPort =
new FXCheckButton(frame0,
"Viewport");
109 mySaveDelay =
new FXCheckButton(frame0,
"Delay");
110 mySaveDecals =
new FXCheckButton(frame0,
"Decals");
111 mySaveBreakpoints =
new FXCheckButton(frame0,
"Breakpoints");
112 if (settings->netedit) {
113 mySaveBreakpoints->disable();
121 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
131 new FXLabel(frame11,
"Decals:");
132 myDecalsFrame =
new FXVerticalFrame(frame11);
141 myShowGrid->setCheck(mySettings->showGrid);
142 new FXLabel(m12,
"");
146 myGridXSizeDialer->setRange(1, 10000);
147 myGridXSizeDialer->setValue(mySettings->gridXSize);
151 myGridYSizeDialer->setRange(1, 10000);
152 myGridYSizeDialer->setValue(mySettings->gridXSize);
157 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
167 myParamKey->disable();
172 (BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT), 0, 0, 0, 0, 20, 20, 4, 4);
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, 10000);
225 myLaneWidthUpscaleDialer->setValue(mySettings->laneWidthExaggeration);
229 myLaneMinWidthDialer->setRange(0, 10000);
230 myLaneMinWidthDialer->setValue(mySettings->laneMinSize);
233 myEdgeNamePanel =
new NamePanel(m22,
this,
"Show edge name", 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());
268 myShowBlinker->setCheck(mySettings->showBlinker);
271 myShowMinGap->setCheck(mySettings->drawMinGap);
274 myShowBrakeGap->setCheck(mySettings->drawBrakeGap);
277 myShowBTRange->setCheck(mySettings->showBTRange);
284 myVehicleNamePanel =
new NamePanel(m33,
this,
"Show vehicle name", mySettings->vehicleName);
285 myVehicleValuePanel =
new NamePanel(m33,
this,
"Show vehicle color value", mySettings->vehicleValue);
296 myVehicleSizePanel =
new SizePanel(m34,
this, mySettings->vehicleSize);
301 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
307 myPersonShapeDetail->appendItem(
"'triangles'");
308 myPersonShapeDetail->appendItem(
"'circles'");
309 myPersonShapeDetail->appendItem(
"'simple shapes'");
310 myPersonShapeDetail->appendItem(
"'raster images'");
311 myPersonShapeDetail->setNumVisible(4);
312 myPersonShapeDetail->setCurrentItem(settings->personQuality);
319 mySettings->personColorer.fill(*myPersonColorMode);
320 myPersonColorMode->setNumVisible(10);
328 myPersonNamePanel =
new NamePanel(m103,
this,
"Show person name", mySettings->personName);
329 myPersonValuePanel =
new NamePanel(m103,
this,
"Show person color value", mySettings->personValue);
334 myPersonSizePanel =
new SizePanel(m104,
this, mySettings->personSize);
339 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
345 myContainerShapeDetail->appendItem(
"'triangles'");
346 myContainerShapeDetail->appendItem(
"'boxes'");
347 myContainerShapeDetail->appendItem(
"'simple shapes'");
348 myContainerShapeDetail->appendItem(
"'raster images'");
349 myContainerShapeDetail->setNumVisible(4);
350 myContainerShapeDetail->setCurrentItem(settings->containerQuality);
357 mySettings->containerColorer.fill(*myContainerColorMode);
358 myContainerColorMode->setNumVisible(9);
366 myContainerNamePanel =
new NamePanel(m103,
this,
"Show container name", mySettings->containerName);
371 myContainerSizePanel =
new SizePanel(m104,
this, mySettings->containerSize);
376 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
381 mySettings->junctionColorer.fill(*myJunctionColorMode);
382 myJunctionColorMode->setNumVisible(4);
387 (BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT), 0, 0, 0, 0, 20, 20, 4, 4);
391 myJunctionSizePanel =
new SizePanel(m42,
this, mySettings->junctionSize);
393 myDrawJunctionShape->setCheck(mySettings->drawJunctionShape);
395 myDrawCrossingsAndWalkingAreas->setCheck(mySettings->drawCrossingsAndWalkingareas);
397 myShowLane2Lane->setCheck(mySettings->showLane2Lane);
400 myTLIndexPanel =
new NamePanel(m42,
this,
"Show link tls index", mySettings->drawLinkTLIndex);
401 myJunctionIndexPanel =
new NamePanel(m42,
this,
"Show link junction index", mySettings->drawLinkJunctionIndex);
402 myJunctionNamePanel =
new NamePanel(m42,
this,
"Show junction name", mySettings->junctionName);
403 myInternalJunctionNamePanel =
new NamePanel(m42,
this,
"Show internal junction name", mySettings->internalJunctionName);
404 myInternalEdgeNamePanel =
new NamePanel(m42,
this,
"Show internal edge name", mySettings->internalEdgeName);
405 myCwaEdgeNamePanel =
new NamePanel(m42,
this,
"Show crossing and walkingarea name", mySettings->cwaEdgeName);
406 myTLSPhaseIndexPanel =
new NamePanel(m42,
this,
"Show traffic light phase", mySettings->tlsPhaseIndex);
411 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
415 myAddNamePanel =
new NamePanel(m51,
this,
"Show object name", mySettings->addName);
416 myAddFullNamePanel =
new NamePanel(m51,
this,
"Show full name", mySettings->addFullName);
420 myAddSizePanel =
new SizePanel(m52,
this, mySettings->addSize);
430 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
436 mySettings->poiColorer.fill(*myPOIColorMode);
437 myPOIColorMode->setNumVisible(3);
444 myPOINamePanel =
new NamePanel(m61,
this,
"Show poi names", mySettings->poiName);
445 myPOITypePanel =
new NamePanel(m61,
this,
"Show poi types", mySettings->poiType);
449 myPOISizePanel =
new SizePanel(m62,
this, mySettings->poiSize);
455 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
461 mySettings->polyColorer.fill(*myPolyColorMode);
462 myPolyColorMode->setNumVisible(3);
469 myPolyNamePanel =
new NamePanel(m91,
this,
"Show polygon names", mySettings->polyName);
470 myPolyTypePanel =
new NamePanel(m91,
this,
"Show polygon types", mySettings->polyType);
473 myPolySizePanel =
new SizePanel(m91,
this, mySettings->polySize);
475 if (settings->netedit) {
478 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
511 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
516 myShowSizeLegend->setCheck(mySettings->showSizeLegend);
517 new FXLabel(m72,
"");
519 myShowColorLegend->setCheck(mySettings->showColorLegend);
520 new FXLabel(m72,
"");
525 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
530 myDither->setCheck(mySettings->dither);
533 myFPS->setCheck(mySettings->fps);
536 myDrawBoundaries->setCheck(mySettings->drawBoundaries);
539 myForceDrawForSelecting->setCheck(mySettings->forceDrawForSelecting);
546 rebuildColorMatrices(
false);
620 if (data !=
nullptr) {
621 FXString dataS = (
char*) data;
624 for (
int i = 0; i <
mySchemeName->getNumItems() - 1; ++i) {
732 std::vector<FXColorWell*>::const_iterator colEnd,
733 std::vector<FXRealSpinner*>::const_iterator threshIt,
734 std::vector<FXRealSpinner*>::const_iterator threshEnd,
735 std::vector<FXButton*>::const_iterator buttonIt,
738 while (colIt != colEnd) {
740 if (sender == *colIt) {
744 if (sender == *threshIt) {
745 const double val = (*threshIt)->getValue();
749 (*threshIt)->getRange(lo, hi);
750 (*threshIt)->setRange(lo, val);
754 if (threshIt != threshEnd) {
755 (*threshIt)->getRange(lo, hi);
756 (*threshIt)->setRange(val, hi);
761 if (sender == *colIt) {
765 if (sender == *buttonIt) {
768 }
else if (sender == *(buttonIt + 1)) {
785 std::vector<FXRealSpinner*>::const_iterator scaleEnd,
786 std::vector<FXRealSpinner*>::const_iterator threshIt,
787 std::vector<FXRealSpinner*>::const_iterator threshEnd,
788 std::vector<FXButton*>::const_iterator buttonIt,
791 while (scaleIt != scaleEnd) {
793 if (sender == *scaleIt) {
794 scheme.
setColor(pos, (*scaleIt)->getValue());
797 if (sender == *threshIt) {
798 const double val = (*threshIt)->getValue();
802 (*threshIt)->getRange(lo, hi);
803 (*threshIt)->setRange(lo, val);
807 if (threshIt != threshEnd) {
808 (*threshIt)->getRange(lo, hi);
809 (*threshIt)->setRange(val, hi);
814 if (sender == *scaleIt) {
815 scheme.
setColor(pos, (*scaleIt)->getValue());
818 if (sender == *buttonIt) {
819 scheme.
addColor((*scaleIt)->getValue(), (*threshIt)->getValue());
821 }
else if (sender == *(buttonIt + 1)) {
846 bool doRebuildColorMatrices =
false;
952 tmpSettings.
fps = (
myFPS->getCheck() != FALSE);
962 doRebuildColorMatrices =
true;
966 doRebuildColorMatrices =
true;
972 doRebuildColorMatrices =
true;
976 doRebuildColorMatrices =
true;
979 doRebuildColorMatrices =
true;
986 doRebuildColorMatrices =
true;
990 doRebuildColorMatrices =
true;
993 doRebuildColorMatrices =
true;
1000 doRebuildColorMatrices =
true;
1004 doRebuildColorMatrices =
true;
1007 doRebuildColorMatrices =
true;
1014 doRebuildColorMatrices =
true;
1018 doRebuildColorMatrices =
true;
1021 doRebuildColorMatrices =
true;
1028 doRebuildColorMatrices =
true;
1032 doRebuildColorMatrices =
true;
1035 doRebuildColorMatrices =
true;
1042 doRebuildColorMatrices =
true;
1046 doRebuildColorMatrices =
true;
1049 doRebuildColorMatrices =
true;
1056 doRebuildColorMatrices =
true;
1060 doRebuildColorMatrices =
true;
1063 doRebuildColorMatrices =
true;
1070 doRebuildColorMatrices =
true;
1074 doRebuildColorMatrices =
true;
1077 doRebuildColorMatrices =
true;
1107 if (doRebuildColorMatrices) {
1111 getApp()->forceRefresh();
1120 if (settingsName !=
"") {
1121 FXint index =
mySchemeName->appendItem(settingsName.c_str());
1145 std::vector<GUISUMOAbstractView::Decal>::iterator j;
1186 std::string name =
"";
1187 while (name.length() == 0) {
1198 if (!dialog.execute()) {
1201 name = text->getText().text();
1202 for (
int i = 0; i < (int)name.length(); ++i) {
1203 if (name[i] !=
'_' && (name[i] <
'a' || name[i] >
'z') && (name[i] <
'A' || name[i] >
'Z') && (name[i] <
'0' || name[i] >
'9')) {
1211 tmpSettings.
name = name;
1225 sender->handle(
this,
1227 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1239 std::string name =
mySchemeName->getItem(index).text();
1250 sender->handle(
this,
1252 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1289 FXMessageBox::error(
this, MBOX_OK,
"Storing failed!",
"%s", e.what());
1297 sender->handle(
this,
1300 FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1308 FXFileDialog opendialog(
this,
"Import view settings");
1310 opendialog.setSelectMode(SELECTFILE_ANY);
1311 opendialog.setPatternList(
"*.xml");
1315 if (opendialog.execute()) {
1325 FXFileDialog opendialog(
this,
"Load Decals");
1327 opendialog.setSelectMode(SELECTFILE_ANY);
1328 opendialog.setPatternList(
"*.xml");
1332 if (opendialog.execute()) {
1353 FXMessageBox::error(
myParent, MBOX_OK,
"Storing failed!",
"%s", e.what());
1363 sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE), ptr);
1373 const int numRows =
MAX2((
int)10, (
int)
myDecals->size() + 1);
1384 header->setHeight(getApp()->getNormalFont()->getFontHeight() + getApp()->getNormalFont()->getFontAscent());
1386 for (k = 0; k < cols; k++) {
1388 header->setItemSize(k, 60);
1390 header->setItemSize(0, 150);
1393 std::vector<GUISUMOAbstractView::Decal>::iterator j;
1407 for (k = 0; k < 7; k++) {
1415 std::vector<FXColorWell*>& colors,
1416 std::vector<FXRealSpinner*>& thresholds,
1417 std::vector<FXButton*>& buttons,
1418 FXCheckButton* interpolation,
1425 const bool fixed = scheme.
isFixed();
1426 std::vector<RGBColor>::const_iterator colIt = scheme.
getColors().begin();
1427 std::vector<double>::const_iterator threshIt = scheme.
getThresholds().begin();
1428 std::vector<std::string>::const_iterator nameIt = scheme.
getNames().begin();
1429 while (colIt != scheme.
getColors().end()) {
1432 new FXLabel(m, nameIt->c_str());
1438 threshDialer->setValue(*threshIt);
1439 thresholds.push_back(threshDialer);
1449 interpolation->disable();
1451 if (colors.size() > 1) {
1452 interpolation->enable();
1453 if (interpolation->getCheck() != FALSE) {
1454 thresholds.front()->enable();
1456 thresholds.front()->disable();
1459 interpolation->disable();
1460 thresholds.front()->disable();
1469 std::vector<FXRealSpinner*>& scales,
1470 std::vector<FXRealSpinner*>& thresholds,
1471 std::vector<FXButton*>& buttons,
1472 FXCheckButton* interpolation,
1479 const bool fixed = scheme.
isFixed();
1480 std::vector<double>::const_iterator scaleIt = scheme.
getColors().begin();
1481 std::vector<double>::const_iterator threshIt = scheme.
getThresholds().begin();
1482 std::vector<std::string>::const_iterator nameIt = scheme.
getNames().begin();
1483 while (scaleIt != scheme.
getColors().end()) {
1485 scaleDialer->setValue(*scaleIt);
1486 scales.push_back(scaleDialer);
1488 new FXLabel(m, nameIt->c_str());
1494 threshDialer->setValue(*threshIt);
1495 thresholds.push_back(threshDialer);
1505 interpolation->disable();
1507 if (scales.size() > 1) {
1508 interpolation->enable();
1509 if (interpolation->getCheck() != FALSE) {
1510 thresholds.front()->enable();
1512 thresholds.front()->disable();
1515 interpolation->disable();
1516 thresholds.front()->disable();
1533 for (
int i = 1; i <= 5; ++i) {
1637 std::string value = i->
item->getText().text();
1639 if (value.find_first_not_of(
" ") == std::string::npos) {
1645 if (row == static_cast<int>(
myDecals->size())) {
1658 }
else if (row > static_cast<int>(
myDecals->size())) {
1662 d = (*myDecals)[row];
1676 std::string msg =
"The value must be a float, is:" + value;
1677 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1684 std::string msg =
"The value must be a float, is:" + value;
1685 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1692 std::string msg =
"The value must be a float, is:" + value;
1693 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1700 std::string msg =
"The value must be a float, is:" + value;
1701 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1708 std::string msg =
"The value must be a float, is:" + value;
1709 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1716 std::string msg =
"The value must be a float, is:" + value;
1717 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1724 std::string msg =
"The value must be a bool, is:" + value;
1725 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1731 (*myDecals)[row] = d;
1751 for (
int i = 0; i <
mySchemeName->getNumItems(); ++i) {
1763 const std::string& title,
1766 myCheck->setCheck(settings.
show);
1768 myConstSizeCheck->setCheck(settings.
constSize);
1772 mySizeDial->setRange(10, 1000);
1773 mySizeDial->setValue(settings.
size);
1785 mySizeDial->getValue(),
1788 myConstSizeCheck->getCheck() != FALSE);
1794 myCheck->setCheck(settings.
show);
1795 mySizeDial->setValue(settings.
size);
1798 myConstSizeCheck->setCheck(settings.
constSize);
1813 myMinSizeDial->setValue(settings.
minSize);
1817 myExaggerateDial->setRange(0, 10000);
1825 myMinSizeDial->getValue(), myExaggerateDial->getValue(),
1826 myCheck->getCheck() != FALSE,
1827 myCheckSelected->getCheck() != FALSE);
1835 myMinSizeDial->setValue(settings.
minSize);
1842 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"x", getX());
1843 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"y", getY());
1844 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"width", getWidth());
1845 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"height", getHeight());
1851 const FXint minSize = 400;
1852 const FXint minTitlebarHeight = 20;
1853 setX(
MAX2(0,
MIN2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"x", 150),
1854 getApp()->getRootWindow()->getWidth() - minSize)));
1855 setY(
MAX2(minTitlebarHeight,
1856 MIN2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"y", 150),
1857 getApp()->getRootWindow()->getHeight() - minSize)));
1858 setWidth(
MAX2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"width", 700), minSize));
1859 setHeight(
MAX2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"height", 500), minSize));
void rebuildColorMatrices(bool doCreate=false)
Rebuilds color changing dialogs after choosing another coloring scheme.
GUIVisualizationSizeSettings junctionSize
GUIDialog_EditViewport * getViewportEditor()
get the viewport and create it on first access
const std::vector< GUISUMOAbstractView::Decal > & getDecals() const
Returns the parsed decals.
bool drawBrakeGap
Information whether the brake gap shall be drawn.
GUIVisualizationTextSettings junctionName
virtual std::vector< std::string > getEdgeDataAttrs() const
return list of loaded edgeData attributes
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)
A decal (an image) that can be shown.
FXCheckButton * mySaveViewPort
FXVerticalFrame * myVehicleColorSettingFrame
RGBColor selectedPersonPlanColor
person plan selection color (Rides, Walks, personStops...)
For the save-decals - button.
long onUpdSaveSetting(FXObject *, FXSelector, void *data)
Called when updating the button that allows to save the settings into the registry.
FXCheckButton * myLaneColorInterpolation
double altitude
The altitude of the image (net coordinates in z-direction, in m)
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
void close()
Closes the device and removes it from the dictionary.
FXVerticalFrame * myDecalsFrame
GUICompleteSchemeStorage gSchemeStorage
bool showSizeLegend
Information whether the size legend shall be drawn.
FXCheckButton * myJunctionColorInterpolation
FXCheckButton * myShowBlinker
MFXIconComboBox * myVehicleColorMode
FXButton * myJunctionColorRainbow
#define GUIDesignViewSettingsMatrix5
GUIVisualizationTextSettings poiType
FXVerticalFrame * myLaneScaleSettingFrame
FXCheckButton * myShowBTRange
GUIVisualizationTextSettings streetName
double laneWidthExaggeration
The lane exaggeration (upscale thickness)
FXCheckButton * myLaneColorRainbowCheck
#define GUIDesignViewSettingsMatrix3
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)
bool showBlinker
Information whether vehicle blinkers shall be drawn.
static const std::string SCHEME_NAME_EDGEDATA_NUMERICAL
GUIVisualizationTextSettings addName
FXCheckButton * myPolyColorInterpolation
const std::string & getName() const
GUIVisualizationTextSettings personValue
GUIVisualizationTextSettings personName
#define GUIDesignViewSettingsButton5
std::vector< FXButton * > myLaneButtons
MFXIconComboBox * myPolyColorMode
RGBColor selectedVehicleColor
vehicle selection color
SizePanel * myPOISizePanel
FXDEFMAP(GUIDialog_ViewSettings) GUIDialog_ViewSettingsMap[]
#define GUIDesignViewSettingsColorWell2
const std::vector< std::string > & getNames() const
Returns a list of stored settings names.
GUIVisualizationTextSettings poiName
FXCheckButton * myShowLinkRules
RGBColor selectedLaneColor
lane selection color
#define GUIDesignViewSettingsMFXTableJustify
GUIColorScheme & getLaneEdgeScheme()
Returns the current lane (edge) coloring schme.
bool showBTRange
Information whether the communication range shall be drawn.
#define GUIDesignButtonToolbar
little button with icon placed in navigation toolbar
double exaggeration
The size exaggeration (upscale)
void saveDecals(OutputDevice &dev) const
Writes the currently used decals into a file.
GUIColorer laneColorer
The lane colorer.
GUIColorer containerColorer
The container colorer.
Stores the information about how to visualize structures.
The dialog to change the view (gui) settings.
void setDelay(double delay)
Sets the delay of the parent application.
SizePanel(FXMatrix *parent, GUIDialog_ViewSettings *target, const GUIVisualizationSizeSettings &settings)
NamePanel * myPolyTypePanel
RGBColor bgColor
background text color
GUIColorer edgeColorer
The mesoscopic edge colorer.
static RGBColor getRGBColor(FXColor col)
converts FXColor to RGBColor
std::vector< FXButton * > myPolyButtons
void remove(GUIDialog_EditViewport *)
remove viewport
const std::vector< std::string > & getNames() const
GUIVisualizationTextSettings edgeValue
MFXIconComboBox * myLaneEdgeScaleMode
... lane scaler
#define GUIDesignViewSettingsVerticalFrame4
std::vector< GUISUMOAbstractView::Decal > * myDecals
The parent's decals.
NamePanel * myPOINamePanel
std::vector< FXButton * > myPOIButtons
MFXIconComboBox * myVehicleShapeDetail
bool showRails
Information whether rails shall be drawn.
static const std::string SCHEME_NAME_EDGE_PARAM_NUMERICAL
scheme names
void loadDecals(const std::string &file)
Loads decals from a file.
std::vector< FXButton * > myPersonButtons
bool constantSizeSelected
whether only selected objects shall be drawn with constant
std::string time2string(SUMOTime t)
std::vector< FXColorWell * > myJunctionColors
MFXIconComboBox * myContainerColorMode
GUIVisualizationTextSettings vehicleName
FXCheckButton * myShowSublanes
double centerX
The center of the image in x-direction (net coordinates, in m)
void loadWindowSize()
load window position and size from the registry
FXCheckButton * myShowBrakeGap
bool screenRelative
Whether this image should be skipped in 2D-views.
void loadSettings(const std::string &file)
Loads a scheme from a file.
#define GUIDesignViewSettingsVerticalFrame5
FXVerticalFrame * myPolyColorSettingFrame
bool allowsNegativeValues() const
FXCheckButton * mySaveBreakpoints
static void deleteChildren(FXWindow *w)
Deletes all children of the given window.
MFXIconComboBox * myPersonColorMode
long onCmdSaveDecals(FXObject *, FXSelector, void *data)
Called if the decals shall be saved to a file.
bool showLaneDirection
Whether to show direction indicators for lanes.
void writeXML(OutputDevice &dev)
write the settings to the given device
GUIVisualizationTextSettings cwaEdgeName
FXString gCurrentFolder
The folder used as last.
long onCmdSaveSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be saved into the registry.
bool laneShowBorders
Information whether lane borders shall be drawn.
RGBColor selectedAdditionalColor
additional selection color (busStops, Detectors...)
static const std::string SCHEME_NAME_LANE_PARAM_NUMERICAL
bool netedit
Whether the settings are for Netedit.
long onCmdExportSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be exported into a file.
#define GUIDesignCheckButtonViewSettings
CheckButton for Frames without thick extended over the frame.
FXColorWell * mySelectedCrossingColor
SizePanel * myJunctionSizePanel
bool isInterpolated() const
std::vector< FXRealSpinner * > myLaneScaleThresholds
bool hasDecals() const
Returns whether any decals have been parsed.
#define GUIDesignViewSettingsTextField1
textFields
bool showLinkRules
Information whether link rules (colored bars) shall be drawn.
std::vector< FXRealSpinner * > myLaneThresholds
FXRealSpinner * myLaneColorRainbowThreshold
long onCmdEditTable(FXObject *, FXSelector, void *data)
Called if the decals-table was changed.
FXCheckButton * mySaveDelay
#define GUIDesignViewSettingsSpinDial1
static FXString getFilename2Write(FXWindow *parent, const FXString &header, const FXString &extension, FXIcon *icon, FXString ¤tFolder)
Returns the file name to write.
For the import-from-file - button.
std::vector< FXColorWell * > myPOIColors
double getGridHeight() const
get grid Height
bool dither
Information whether dithering shall be enabled.
double height
The height of the image (net coordinates in y-direction, in m)
FXVerticalFrame * myContainerColorSettingFrame
double getDelay() const
Returns the delay of the parent application.
#define GUIDesignMatrixViewSettings
FXMatrix used to pack values in Viewsettings.
long onCmdNameChange(FXObject *, FXSelector, void *)
Called if the name of the scheme was changed.
FXColorWell * mySelectedVehicleColor
SizePanel * myPolySizePanel
double getDelay() const
Returns the parsed delay.
void setBreakpoints(const std::vector< SUMOTime > &breakpoints)
Sets the breakpoints of the parent application.
void setActive(int scheme)
double layer
The layer of the image.
std::vector< FXRealSpinner * > myPOIThresholds
std::vector< FXRealSpinner * > myPolyThresholds
FXColorWell * mySelectedConnectionColor
FXRealSpinner * myGridYSizeDialer
static bool toBool(const std::string &sData)
converts a string into the bool value described by it by calling the char-type converter ...
#define GUIDesignViewSettingsVerticalFrame1
vertical frames
#define GUIDesignViewSettingsMatrix2
GUIVisualizationSizeSettings polySize
GUIColorer vehicleColorer
The vehicle colorer.
FXColorWell * mySelectedAdditionalColor
FXCheckButton * myShowLaneDirection
std::string edgeParam
key for coloring by edge parameter
NamePanel * myPersonValuePanel
double roll
The roll of the image to the ground plane (in degrees)
#define GUIDesignViewSettingsButton2
GUIVisualizationTextSettings edgeName
NamePanel * myVehicleValuePanel
std::vector< FXButton * > myContainerButtons
FXCheckButton * myVehicleColorInterpolation
GUIVisualizationSizeSettings addSize
bool constantSize
whether the object shall be drawn with constant size regardless of zoom
double getGridWidth() const
get grid width
GUIColorer poiColorer
The POI colorer.
NamePanel * myEdgeValuePanel
FXColorWell * mySelectedLaneColor
int getLaneEdgeMode() const
Returns the number of the active lane (edge) coloring schme.
#define GUIDesignViewSettingsVerticalFrame2
void setNumberCellParams(int pos, double min, double max, double steps1, double steps2, double steps3, const std::string &format)
NamePanel * myInternalEdgeNamePanel
FXCheckButton * myShowMinGap
void save(OutputDevice &dev) const
Writes the settings into an output device.
NamePanel * myEdgeNamePanel
void setCellType(int pos, CellType t)
FXCheckButton * myShowGrid
GUIVisualizationTextSettings vehicleValue
MFXIconComboBox * myJunctionColorMode
RGBColor selectedConnectionColor
connection selection color
std::vector< FXRealSpinner * > myPersonThresholds
int addColor(const T &color, const double threshold, const std::string &name="")
std::string name
The name of this setting.
double gridXSize
Information about the grid spacings.
#define GUIDesignHorizontalSeparator
#define GUIDesignViewSettingsButton3
void setCurrentScheme(const std::string &)
Sets the named scheme as the current.
FXCheckButton * myShowLane2Lane
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
void rebuildList()
Rebuilds the decals table.
FXCheckButton * myDrawBoundaries
RGBColor selectedRouteColor
route selection color (used for routes and vehicle stops)
#define GUIDesignViewSettingsHorizontalFrame2
void update(const GUIVisualizationSizeSettings &settings)
double minSize
The minimum size to draw this object.
FXCheckButton * myDrawCrossingsAndWalkingAreas
void show()
show view settings dialog
GUIVisualizationSettings * mySettings
The current settings.
static double toDouble(const std::string &sData)
converts a string into the double value described by it by calling the char-type converter ...
GUIVisualizationTextSettings internalEdgeName
bool constSize
flag to avoid size changes
FXColorWell * mySelectedPersonPlanColor
#define GUIDesignViewSettingsLabel2
NamePanel * myStreetNamePanel
RGBColor selectionColor
basic selection color
const std::vector< SUMOTime > & getBreakpoints() const
Returns the parsed breakpoints.
RGBColor selectedProhibitionColor
prohibition selection color
For the load-decals - button.
bool drawMinGap
Information whether the minimum gap shall be drawn.
NamePanel * myInternalJunctionNamePanel
std::vector< FXColorWell * > myVehicleColors
#define GUIDesignViewSettingsMatrix4
FXComboBox * getColoringSchemesCombo()
get coloring schemes combo
MFXIconComboBox * myLaneEdgeColorMode
... lane colorer
std::vector< FXRealSpinner * > myLaneScales
double rot
The rotation of the image in the ground plane (in degrees)
void remove(const std::string &name)
Removes the setting with the given name.
#define GUIDesignViewSettingsMatrix1
Matrix.
GUIVisualizationTextSettings polyType
bool showSublanes
Whether to show sublane boundaries.
virtual void buildColorRainbow(const GUIVisualizationSettings &, GUIColorScheme &, int, GUIGlObjectType, bool hide=false, double hideThreshold=0)
recalibrate color scheme according to the current value range
void saveWindowSize()
save window position and size to the registry
FXCheckButton * myShowColorLegend
#define GUIDesignViewSettingsColorWell1
Color wells.
FXCheckButton * myShowSizeLegend
GUIVisualizationSettings & get(const std::string &name)
Returns the named scheme.
Informs the dialog about switching to another scheme.
FXCheckButton * mySaveDecals
FXVerticalFrame * myLaneColorSettingFrame
std::vector< FXRealSpinner * > myVehicleThresholds
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.
bool initialised
Whether this image was initialised (inserted as a texture)
GUIVisualizationTextSettings drawLinkTLIndex
GUIColorer polyColorer
The polygon colorer.
#define GUIDesignViewSettingsColorWell
ColorWell.
GUIColorer personColorer
The person colorer.
void setThreshold(const int pos, const double threshold)
bool showColorLegend
Information whether the colo legend shall be drawn.
GUIVisualizationTextSettings internalJunctionName
int getNumInitialSettings() const
Returns the number of initial settings.
#define GUIDesignComboBoxStatic
Combo box static (not editable)
double centerY
The center of the image in y-direction (net coordinates, in m)
bool fps
Information whether frames-per-second should be drawn.
GUIColorer junctionColorer
The junction colorer.
virtual std::vector< std::string > getEdgeLaneParamKeys(bool) const
return list of available edge parameters
#define GUIDesignViewSettingsButton4
std::string filename
The path to the file the image is located at.
long onUpdDeleteSetting(FXObject *, FXSelector, void *data)
Called when updating the button that allows to delete settings.
FXVerticalFrame * myJunctionColorSettingFrame
FXCheckButton * myLaneScaleInterpolation
FXCheckButton * myShowBikeMarkings
double laneMinSize
The minimum visual lane width for drawing.
GUIScaler edgeScaler
The mesoscopic edge scaler.
FXCheckButton * myShowLaneBorders
SizePanel * myAddSizePanel
NamePanel * myAddNamePanel
GUIScaleScheme & getLaneEdgeScaleScheme()
Returns the current lane (edge) scaling schme.
std::vector< FXColorWell * > myPersonColors
int containerQuality
The quality of container drawing.
long onCmdCancel(FXObject *, FXSelector, void *)
Called if the Cancel-button was pressed.
RGBColor backgroundColor
The background color to use.
FXColorWell * mySelectedRouteColor
std::vector< FXRealSpinner * > myJunctionThresholds
std::vector< FXButton * > myLaneScaleButtons
std::string addSettings(GUISUMOAbstractView *view=0) const
Adds the parsed settings to the global list of settings.
long onCmdOk(FXObject *, FXSelector, void *)
Called if the OK-button was pressed.
FXColorWell * mySelectedEdgeColor
NamePanel * myCwaEdgeNamePanel
double width
The width of the image (net coordinates in x-direction, in m)
#define GUIDesignViewSettingsDialog
void setColor(const int pos, const T &color)
virtual bool setColorScheme(const std::string &)
set color scheme
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.
GUIVisualizationSizeSettings poiSize
~GUIDialog_ViewSettings()
Destructor.
NamePanel * myTLIndexPanel
RGBColor selectedCrossingColor
crossings selection color
#define GUIDesignViewSettingsHorizontalFrame1
Horizontal frames.
NamePanel * myVehicleNamePanel
NamePanel * myContainerNamePanel
MFXAddEditTypedTable * myDecalsTable
virtual const std::vector< SUMOTime > retrieveBreakpoints() const
retrieve breakpoints if provided by the application
FXCheckButton * myDrawJunctionShape
RGBColor selectedPersonColor
person selection color
bool showLinkDecals
Information whether link textures (arrows) shall be drawn.
#define GUIDesignViewSettingsTabBook1
Tab books.
#define GUIDesignViewSettingsComboBox1
Combo boxs.
FXCheckButton * myPOIColorInterpolation
NamePanel(FXMatrix *parent, GUIDialog_ViewSettings *target, const std::string &title, const GUIVisualizationTextSettings &settings)
GUIVisualizationSizeSettings containerSize
std::string edgeData
key for coloring by edgeData
void applyViewport(GUISUMOAbstractView *view) const
Sets the viewport which has been parsed.
void removeColor(const int pos)
static OutputDevice & getDevice(const std::string &name)
Returns the described OutputDevice.
FXButton * myLaneColorRainbow
bool contains(const std::string &name) const
Returns the information whether a setting with the given name is stored.
GUIVisualizationTextSettings getSettings()
std::vector< FXColorWell * > myPolyColors
GUIVisualizationTextSettings addFullName
GUIVisualizationTextSettings tlsPhaseIndex
NamePanel * myJunctionNamePanel
const std::vector< T > & getColors() const
void writeSettings(FXApp *app)
Writes the current scheme into the registry.
#define GUIDesignViewSettingsHorizontalFrame3
std::vector< FXRealSpinner * > myContainerThresholds
void setCurrent(GUIVisualizationSettings *settings)
Sets current settings (called if reopened)
FXCheckButton * myHideMacroConnectors
double centerZ
The center of the image in z-direction (net coordinates, in m)
#define GUIDesignViewSettingsTabItemBook1
FXColorWell * mySelectedProhibitionColor
FXCheckButton * myShowRails
GUIVisualizationSizeSettings personSize
int personQuality
The quality of person drawing.
std::string getCurrentScheme() const
Returns the name of the currently chosen scheme.
bool showGrid
Information whether a grid shall be shown.
bool drawCrossingsAndWalkingareas
whether crosings and walkingareas shall be drawn
long onUpdExportSetting(FXObject *, FXSelector, void *data)
Called when updating the button that allows to export settings into a file.
static FXColor getFXColor(const RGBColor &col)
converts FXColor to RGBColor
double tilt
The tilt of the image to the ground plane (in degrees)
Informs the dialog about a value's change.
NamePanel * myPOITypePanel
long onCmdColorChange(FXObject *, FXSelector, void *)
Called if something (color, width, etc.) has been changed.
#define GUIDesignViewSettingsVerticalFrame3
FXCheckButton * myForceDrawForSelecting
bool showLane2Lane
Information whether lane-to-lane arrows shall be drawn.
SizePanel * myPersonSizePanel
Static storage of an output device and its base (abstract) implementation.
bool closeTag(const std::string &comment="")
Closes the most recently opened tag and optionally adds a comment.
An XML-handler for visualisation schemes.
NamePanel * myJunctionIndexPanel
FXCheckButton * myPersonColorInterpolation
#define GUIDesignViewSettingsVerticalFrame6
#define GUIDesignViewSettingsButton1
Buttons.
For the save-to-db - button.
GUIVisualizationColorSettings colorSettings
color settings
#define GUIDesignSpinDial
GUIVisualizationSizeSettings vehicleSize
SizePanel * myVehicleSizePanel
bool drawJunctionShape
whether the shape of the junction should be drawn
FXMutex * myDecalsLock
Lock used when changing the decals.
long onCmdLoadDecals(FXObject *, FXSelector, void *data)
Called if the decals shall be loaded from a file.
Cancel-button was pushed.
void update(const GUIVisualizationTextSettings &settings)
FXColorWell * myBackgroundColor
int getLaneEdgeScaleMode() const
Returns the number of the active lane (edge) scaling schme.
GUIVisualizationSizeSettings getSettings()
int vehicleQuality
The quality of vehicle drawing.
RGBColor selectedEdgeColor
edge selection color
FXVerticalFrame * myPOIColorSettingFrame
const std::vector< double > & getThresholds() const
static bool UseMesoSim
this should be set at the same time as MSGlobals::gUseMesoSim
NamePanel * myAddFullNamePanel
FXColorWell * mySelectedPersonColor
FXRealSpinner * myLaneWidthUpscaleDialer
SizePanel * myContainerSizePanel
bool forceDrawForSelecting
flag to force draw to selecting (see drawForSelecting)
FXCheckButton * myContainerColorInterpolation
MFXIconComboBox * myPOIColorMode
GUIScaler laneScaler
The lane scaler.
#define GUIDesignViewSettingsSpinDial2
bool spreadSuperposed
Whether to improve visualisation of superposed (rail) edges.
long onCmdDeleteSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be deleted.
MFXIconComboBox * myContainerShapeDetail
GUISUMOAbstractView * myParent
The parent view (which settings are changed)
FXVerticalFrame * myPersonColorSettingFrame
NamePanel * myPolyNamePanel
std::vector< FXColorWell * > myContainerColors
static FXIcon * getIcon(GUIIcon which)
returns a icon previously defined in the enum GUIIcon
bool drawBoundaries
enable or disable draw boundaries
FXRealSpinner * myGridXSizeDialer
std::vector< FXButton * > myJunctionButtons
GUIVisualizationTextSettings drawLinkJunctionIndex
#define GUIDesignViewSettingsMFXTable
MFX Add/Edit Typed Table.
NamePanel * myPersonNamePanel
GUIVisualizationSettings myBackup
A backup of the settings (used if the "Cancel" button is pressed)
std::vector< FXColorWell * > myLaneColors
MFXIconComboBox * myPersonShapeDetail
bool hideConnectors
flag to show or hidde connectors
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
bool showBikeMarkings
Information whether bicycle lane marking shall be drawn.
NamePanel * myTLSPhaseIndexPanel
FXComboBox * mySchemeName
FXColorWell * mySelectionColor
selection colors
std::vector< FXButton * > myVehicleButtons
void setInterpolated(const bool interpolate, double interpolationStart=0.f)
long onCmdImportSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be read from a file.
void add(const GUIVisualizationSettings &scheme)
Adds a visualization scheme.
long onUpdImportSetting(FXObject *, FXSelector, void *data)
Called when updating the button that allows to read settings from a file.
GUIVisualizationTextSettings polyName
GUIVisualizationTextSettings containerName
FXCheckButton * mySpreadSuperposed
For the export-to-file - button.
#define GUIDesignViewSettingsLabel1
Label.
FXRealSpinner * myLaneMinWidthDialer
#define GUIDesignViewSettingsMainDialog
FXCheckButton * myShowLaneDecals