73 FXIMPLEMENT(
GUIDialog_ViewSettings, FXDialogBox, GUIDialog_ViewSettingsMap, ARRAYNUMBER(GUIDialog_ViewSettingsMap))
81 myParent(parent), mySettings(settings),
82 myDecals(decals), myDecalsLock(decalsLock),
83 myDecalsTable(
nullptr) {
84 myBackup = (*mySettings);
92 for (std::vector<std::string>::const_iterator i = names.begin(); i != names.end(); ++i) {
93 int index = mySchemeName->appendItem((*i).c_str());
94 if ((*i) == mySettings->name) {
95 mySchemeName->setCurrentItem((FXint) index);
98 mySchemeName->setNumVisible(5);
105 new FXVerticalSeparator(frame0);
107 mySaveViewPort =
new FXCheckButton(frame0,
"Viewport");
108 mySaveDelay =
new FXCheckButton(frame0,
"Delay");
109 mySaveDecals =
new FXCheckButton(frame0,
"Decals");
110 mySaveBreakpoints =
new FXCheckButton(frame0,
"Breakpoints");
111 if (settings->netedit) {
112 mySaveBreakpoints->disable();
120 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
130 new FXLabel(frame11,
"Decals:");
131 myDecalsFrame =
new FXVerticalFrame(frame11);
140 myShowGrid->setCheck(mySettings->showGrid);
141 new FXLabel(m12,
"");
145 myGridXSizeDialer->setRange(1, 10000);
146 myGridXSizeDialer->setValue(mySettings->gridXSize);
150 myGridYSizeDialer->setRange(1, 10000);
151 myGridYSizeDialer->setValue(mySettings->gridXSize);
156 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
166 (BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT), 0, 0, 0, 0, 20, 20, 4, 4);
168 myParamKey->disable();
180 mySettings->edgeColorer.fill(*myLaneEdgeColorMode);
181 mySettings->edgeScaler.fill(*myLaneEdgeScaleMode);
182 myLaneEdgeColorMode->setNumVisible((
int)mySettings->edgeColorer.size());
183 myLaneEdgeScaleMode->setNumVisible((
int)mySettings->edgeScaler.size());
185 mySettings->laneColorer.fill(*myLaneEdgeColorMode);
186 mySettings->laneScaler.fill(*myLaneEdgeScaleMode);
187 myLaneEdgeColorMode->setNumVisible((
int)mySettings->laneColorer.size());
188 myLaneEdgeScaleMode->setNumVisible((
int)mySettings->laneScaler.size());
194 myShowLaneBorders->setCheck(mySettings->laneShowBorders);
196 myShowBikeMarkings->setCheck(mySettings->showBikeMarkings);
198 myShowLaneDecals->setCheck(mySettings->showLinkDecals);
201 myShowLinkRules->setCheck(mySettings->showLinkRules);
204 myShowRails->setCheck(mySettings->showRails);
207 myHideMacroConnectors->setCheck(mySettings->hideConnectors);
210 myShowLaneDirection->setCheck(mySettings->showLaneDirection);
213 myShowSublanes->setCheck(mySettings->showSublanes);
215 mySpreadSuperposed->setCheck(mySettings->spreadSuperposed);
218 myLaneWidthUpscaleDialer->setRange(0, 10000);
219 myLaneWidthUpscaleDialer->setValue(mySettings->laneWidthExaggeration);
223 myLaneMinWidthDialer->setRange(0, 10000);
224 myLaneMinWidthDialer->setValue(mySettings->laneMinSize);
227 myEdgeNamePanel =
new NamePanel(m22,
this,
"Show edge name", mySettings->edgeName);
228 myStreetNamePanel =
new NamePanel(m22,
this,
"Show street name", mySettings->streetName);
229 myEdgeValuePanel =
new NamePanel(m22,
this,
"Show edge color value", mySettings->edgeValue);
234 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
240 myVehicleShapeDetail->appendItem(
"'triangles'");
241 myVehicleShapeDetail->appendItem(
"'boxes'");
242 myVehicleShapeDetail->appendItem(
"'simple shapes'");
243 myVehicleShapeDetail->appendItem(
"'raster images'");
244 myVehicleShapeDetail->setNumVisible(4);
245 myVehicleShapeDetail->setCurrentItem(settings->vehicleQuality);
252 mySettings->vehicleColorer.fill(*myVehicleColorMode);
253 myVehicleColorMode->setNumVisible((
int)mySettings->vehicleColorer.size());
262 myShowBlinker->setCheck(mySettings->showBlinker);
265 myShowMinGap->setCheck(mySettings->drawMinGap);
268 myShowBTRange->setCheck(mySettings->showBTRange);
275 myVehicleNamePanel =
new NamePanel(m33,
this,
"Show vehicle name", mySettings->vehicleName);
276 myVehicleValuePanel =
new NamePanel(m33,
this,
"Show vehicle color value", mySettings->vehicleValue);
287 myVehicleSizePanel =
new SizePanel(m34,
this, mySettings->vehicleSize);
292 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
298 myPersonShapeDetail->appendItem(
"'triangles'");
299 myPersonShapeDetail->appendItem(
"'boxes'");
300 myPersonShapeDetail->appendItem(
"'simple shapes'");
301 myPersonShapeDetail->appendItem(
"'raster images'");
302 myPersonShapeDetail->setNumVisible(4);
303 myPersonShapeDetail->setCurrentItem(settings->personQuality);
310 mySettings->personColorer.fill(*myPersonColorMode);
311 myPersonColorMode->setNumVisible(10);
319 myPersonNamePanel =
new NamePanel(m103,
this,
"Show person name", mySettings->personName);
320 myPersonValuePanel =
new NamePanel(m103,
this,
"Show person color value", mySettings->personValue);
325 myPersonSizePanel =
new SizePanel(m104,
this, mySettings->personSize);
330 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
336 myContainerShapeDetail->appendItem(
"'triangles'");
337 myContainerShapeDetail->appendItem(
"'boxes'");
338 myContainerShapeDetail->appendItem(
"'simple shapes'");
339 myContainerShapeDetail->appendItem(
"'raster images'");
340 myContainerShapeDetail->setNumVisible(4);
341 myContainerShapeDetail->setCurrentItem(settings->containerQuality);
348 mySettings->containerColorer.fill(*myContainerColorMode);
349 myContainerColorMode->setNumVisible(9);
357 myContainerNamePanel =
new NamePanel(m103,
this,
"Show container name", mySettings->containerName);
362 myContainerSizePanel =
new SizePanel(m104,
this, mySettings->containerSize);
367 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
372 mySettings->junctionColorer.fill(*myJunctionColorMode);
373 myJunctionColorMode->setNumVisible(4);
378 (BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT), 0, 0, 0, 0, 20, 20, 4, 4);
382 myTLIndexPanel =
new NamePanel(m42,
this,
"Show link tls index", mySettings->drawLinkTLIndex);
383 myJunctionIndexPanel =
new NamePanel(m42,
this,
"Show link junction index", mySettings->drawLinkJunctionIndex);
385 myShowLane2Lane->setCheck(mySettings->showLane2Lane);
387 myJunctionNamePanel =
new NamePanel(m42,
this,
"Show junction name", mySettings->junctionName);
388 myInternalJunctionNamePanel =
new NamePanel(m42,
this,
"Show internal junction name", mySettings->internalJunctionName);
389 myInternalEdgeNamePanel =
new NamePanel(m42,
this,
"Show internal edge name", mySettings->internalEdgeName);
390 myCwaEdgeNamePanel =
new NamePanel(m42,
this,
"Show crossing and walkingarea name", mySettings->cwaEdgeName);
392 myDrawJunctionShape->setCheck(mySettings->drawJunctionShape);
394 myDrawCrossingsAndWalkingAreas->setCheck(mySettings->drawCrossingsAndWalkingareas);
399 myJunctionSizePanel =
new SizePanel(m43,
this, mySettings->junctionSize);
404 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
408 myAddNamePanel =
new NamePanel(m51,
this,
"Show object name", mySettings->addName);
409 myAddFullNamePanel =
new NamePanel(m51,
this,
"Show full name", mySettings->addFullName);
413 myAddSizePanel =
new SizePanel(m52,
this, mySettings->addSize);
423 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
429 mySettings->poiColorer.fill(*myPOIColorMode);
430 myPOIColorMode->setNumVisible(3);
437 myPOINamePanel =
new NamePanel(m61,
this,
"Show poi names", mySettings->poiName);
438 myPOITypePanel =
new NamePanel(m61,
this,
"Show poi types", mySettings->poiType);
442 myPOISizePanel =
new SizePanel(m62,
this, mySettings->poiSize);
448 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
454 mySettings->polyColorer.fill(*myPolyColorMode);
455 myPolyColorMode->setNumVisible(3);
462 myPolyNamePanel =
new NamePanel(m91,
this,
"Show polygon names", mySettings->polyName);
463 myPolyTypePanel =
new NamePanel(m91,
this,
"Show polygon types", mySettings->polyType);
466 myPolySizePanel =
new SizePanel(m91,
this, mySettings->polySize);
468 if (settings->netedit) {
471 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
492 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
497 myShowSizeLegend->setCheck(mySettings->showSizeLegend);
498 new FXLabel(m72,
"");
503 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
508 myDither->setCheck(mySettings->dither);
515 rebuildColorMatrices(
false);
588 if (data !=
nullptr) {
589 FXString dataS = (
char*) data;
592 for (
int i = 0; i <
mySchemeName->getNumItems() - 1; ++i) {
688 std::vector<FXColorWell*>::const_iterator colEnd,
689 std::vector<FXRealSpinner*>::const_iterator threshIt,
690 std::vector<FXRealSpinner*>::const_iterator threshEnd,
691 std::vector<FXButton*>::const_iterator buttonIt,
694 while (colIt != colEnd) {
696 if (sender == *colIt) {
700 if (sender == *threshIt) {
701 const double val = (*threshIt)->getValue();
705 (*threshIt)->getRange(lo, hi);
706 (*threshIt)->setRange(lo, val);
710 if (threshIt != threshEnd) {
711 (*threshIt)->getRange(lo, hi);
712 (*threshIt)->setRange(val, hi);
717 if (sender == *colIt) {
721 if (sender == *buttonIt) {
724 }
else if (sender == *(buttonIt + 1)) {
741 std::vector<FXRealSpinner*>::const_iterator scaleEnd,
742 std::vector<FXRealSpinner*>::const_iterator threshIt,
743 std::vector<FXRealSpinner*>::const_iterator threshEnd,
744 std::vector<FXButton*>::const_iterator buttonIt,
747 while (scaleIt != scaleEnd) {
749 if (sender == *scaleIt) {
750 scheme.
setColor(pos, (*scaleIt)->getValue());
753 if (sender == *threshIt) {
754 const double val = (*threshIt)->getValue();
758 (*threshIt)->getRange(lo, hi);
759 (*threshIt)->setRange(lo, val);
763 if (threshIt != threshEnd) {
764 (*threshIt)->getRange(lo, hi);
765 (*threshIt)->setRange(val, hi);
770 if (sender == *scaleIt) {
771 scheme.
setColor(pos, (*scaleIt)->getValue());
774 if (sender == *buttonIt) {
775 scheme.
addColor((*scaleIt)->getValue(), (*threshIt)->getValue());
777 }
else if (sender == *(buttonIt + 1)) {
802 bool doRebuildColorMatrices =
false;
902 doRebuildColorMatrices =
true;
906 doRebuildColorMatrices =
true;
912 doRebuildColorMatrices =
true;
916 doRebuildColorMatrices =
true;
919 doRebuildColorMatrices =
true;
926 doRebuildColorMatrices =
true;
930 doRebuildColorMatrices =
true;
933 doRebuildColorMatrices =
true;
940 doRebuildColorMatrices =
true;
944 doRebuildColorMatrices =
true;
947 doRebuildColorMatrices =
true;
954 doRebuildColorMatrices =
true;
958 doRebuildColorMatrices =
true;
961 doRebuildColorMatrices =
true;
968 doRebuildColorMatrices =
true;
972 doRebuildColorMatrices =
true;
975 doRebuildColorMatrices =
true;
982 doRebuildColorMatrices =
true;
986 doRebuildColorMatrices =
true;
989 doRebuildColorMatrices =
true;
996 doRebuildColorMatrices =
true;
1000 doRebuildColorMatrices =
true;
1003 doRebuildColorMatrices =
true;
1010 doRebuildColorMatrices =
true;
1014 doRebuildColorMatrices =
true;
1017 doRebuildColorMatrices =
true;
1047 if (doRebuildColorMatrices) {
1051 getApp()->forceRefresh();
1060 if (settingsName !=
"") {
1061 FXint index =
mySchemeName->appendItem(settingsName.c_str());
1082 std::vector<GUISUMOAbstractView::Decal>::iterator j;
1123 std::string name =
"";
1124 while (name.length() == 0) {
1135 if (!dialog.execute()) {
1138 name = text->getText().text();
1139 for (
int i = 0; i < (int)name.length(); ++i) {
1140 if (name[i] !=
'_' && (name[i] <
'a' || name[i] >
'z') && (name[i] <
'A' || name[i] >
'Z') && (name[i] <
'0' || name[i] >
'9')) {
1148 tmpSettings.
name = name;
1162 sender->handle(
this,
1164 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1176 std::string name =
mySchemeName->getItem(index).text();
1187 sender->handle(
this,
1189 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1226 FXMessageBox::error(
this, MBOX_OK,
"Storing failed!",
"%s", e.what());
1234 sender->handle(
this,
1237 FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1245 FXFileDialog opendialog(
this,
"Import view settings");
1247 opendialog.setSelectMode(SELECTFILE_ANY);
1248 opendialog.setPatternList(
"*.xml");
1252 if (opendialog.execute()) {
1262 FXFileDialog opendialog(
this,
"Load Decals");
1264 opendialog.setSelectMode(SELECTFILE_ANY);
1265 opendialog.setPatternList(
"*.xml");
1269 if (opendialog.execute()) {
1290 FXMessageBox::error(
myParent, MBOX_OK,
"Storing failed!",
"%s", e.what());
1300 sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE), ptr);
1310 const int numRows =
MAX2((
int)10, (
int)
myDecals->size() + 1);
1321 header->setHeight(getApp()->getNormalFont()->getFontHeight() + getApp()->getNormalFont()->getFontAscent());
1323 for (k = 0; k < cols; k++) {
1325 header->setItemSize(k, 60);
1327 header->setItemSize(0, 150);
1330 std::vector<GUISUMOAbstractView::Decal>::iterator j;
1344 for (k = 0; k < 7; k++) {
1352 std::vector<FXColorWell*>& colors,
1353 std::vector<FXRealSpinner*>& thresholds,
1354 std::vector<FXButton*>& buttons,
1355 FXCheckButton* interpolation,
1362 const bool fixed = scheme.
isFixed();
1363 std::vector<RGBColor>::const_iterator colIt = scheme.
getColors().begin();
1364 std::vector<double>::const_iterator threshIt = scheme.
getThresholds().begin();
1365 std::vector<std::string>::const_iterator nameIt = scheme.
getNames().begin();
1366 while (colIt != scheme.
getColors().end()) {
1369 new FXLabel(m, nameIt->c_str());
1375 threshDialer->setValue(*threshIt);
1376 thresholds.push_back(threshDialer);
1386 interpolation->disable();
1388 if (colors.size() > 1) {
1389 interpolation->enable();
1390 if (interpolation->getCheck() != FALSE) {
1391 thresholds.front()->enable();
1393 thresholds.front()->disable();
1396 interpolation->disable();
1397 thresholds.front()->disable();
1406 std::vector<FXRealSpinner*>& scales,
1407 std::vector<FXRealSpinner*>& thresholds,
1408 std::vector<FXButton*>& buttons,
1409 FXCheckButton* interpolation,
1416 const bool fixed = scheme.
isFixed();
1417 std::vector<double>::const_iterator scaleIt = scheme.
getColors().begin();
1418 std::vector<double>::const_iterator threshIt = scheme.
getThresholds().begin();
1419 std::vector<std::string>::const_iterator nameIt = scheme.
getNames().begin();
1420 while (scaleIt != scheme.
getColors().end()) {
1422 scaleDialer->setValue(*scaleIt);
1423 scales.push_back(scaleDialer);
1425 new FXLabel(m, nameIt->c_str());
1431 threshDialer->setValue(*threshIt);
1432 thresholds.push_back(threshDialer);
1442 interpolation->disable();
1444 if (scales.size() > 1) {
1445 interpolation->enable();
1446 if (interpolation->getCheck() != FALSE) {
1447 thresholds.front()->enable();
1449 thresholds.front()->disable();
1452 interpolation->disable();
1453 thresholds.front()->disable();
1470 for (
int i = 1; i <= 5; ++i) {
1552 std::string value = i->
item->getText().text();
1554 if (value.find_first_not_of(
" ") == std::string::npos) {
1560 if (row == static_cast<int>(
myDecals->size())) {
1573 }
else if (row > static_cast<int>(
myDecals->size())) {
1577 d = (*myDecals)[row];
1591 std::string msg =
"The value must be a float, is:" + value;
1592 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1599 std::string msg =
"The value must be a float, is:" + value;
1600 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1607 std::string msg =
"The value must be a float, is:" + value;
1608 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1615 std::string msg =
"The value must be a float, is:" + value;
1616 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1623 std::string msg =
"The value must be a float, is:" + value;
1624 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1631 std::string msg =
"The value must be a float, is:" + value;
1632 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1639 std::string msg =
"The value must be a bool, is:" + value;
1640 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1646 (*myDecals)[row] = d;
1666 for (
int i = 0; i <
mySchemeName->getNumItems(); ++i) {
1678 const std::string& title,
1681 myCheck->setCheck(settings.
show);
1682 myConstSizeCheck =
new FXCheckButton(parent,
"constant text size", target, MID_SIMPLE_VIEW_COLORCHANGE,
GUIDesignCheckButton);
1683 myConstSizeCheck->setCheck(settings.
constSize);
1687 mySizeDial->setRange(10, 1000);
1688 mySizeDial->setValue(settings.
size);
1700 mySizeDial->getValue(),
1703 myConstSizeCheck->getCheck() != FALSE);
1709 myCheck->setCheck(settings.
show);
1710 mySizeDial->setValue(settings.
size);
1713 myConstSizeCheck->setCheck(settings.
constSize);
1728 myMinSizeDial->setValue(settings.
minSize);
1732 myExaggerateDial->setRange(0, 10000);
1740 myMinSizeDial->getValue(), myExaggerateDial->getValue(),
1741 myCheck->getCheck() != FALSE,
1742 myCheckSelected->getCheck() != FALSE);
1750 myMinSizeDial->setValue(settings.
minSize);
1757 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"x", getX());
1758 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"y", getY());
1759 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"width", getWidth());
1760 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"height", getHeight());
1766 const FXint minSize = 400;
1767 const FXint minTitlebarHeight = 20;
1768 setX(
MAX2(0,
MIN2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"x", 150),
1769 getApp()->getRootWindow()->getWidth() - minSize)));
1770 setY(
MAX2(minTitlebarHeight,
1771 MIN2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"y", 150),
1772 getApp()->getRootWindow()->getHeight() - minSize)));
1773 setWidth(
MAX2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"width", 700), minSize));
1774 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.
virtual void buildColorRainbow(const GUIVisualizationSettings &, GUIColorScheme &, int, GUIGlObjectType)
recalibrate color scheme according to the current value range
GUIVisualizationTextSettings junctionName
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
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
FXComboBox * myJunctionColorMode
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
FXButton * myJunctionColorRainbow
#define GUIDesignViewSettingsMatrix5
GUIVisualizationTextSettings poiType
FXVerticalFrame * myLaneScaleSettingFrame
FXCheckButton * myShowBTRange
GUIVisualizationTextSettings streetName
double laneWidthExaggeration
The lane exaggeration (upscale thickness)
#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.
GUIVisualizationTextSettings addName
RGBColor selectedEdgeColor
FXCheckButton * myPolyColorInterpolation
const std::string & getName() const
FXComboBox * myVehicleColorMode
GUIVisualizationTextSettings personValue
RGBColor selectedConnectionColor
GUIVisualizationTextSettings personName
#define GUIDesignViewSettingsButton5
std::vector< FXButton * > myLaneButtons
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
#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.
FXComboBox * myPOIColorMode
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
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
#define GUIDesignViewSettingsVerticalFrame4
std::vector< GUISUMOAbstractView::Decal > * myDecals
The parent's decals.
NamePanel * myPOINamePanel
std::vector< FXButton * > myPOIButtons
bool showRails
Information whether rails shall be drawn.
static const std::string SCHEME_NAME_EDGE_PARAM_NUMERICAL
void loadDecals(const std::string &file)
Loads decals from a file.
std::vector< FXButton * > myPersonButtons
bool constantSizeSelected
std::string time2string(SUMOTime t)
std::vector< FXColorWell * > myJunctionColors
GUIVisualizationTextSettings vehicleName
FXComboBox * myVehicleShapeDetail
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
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.
RGBColor selectedLaneColor
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.
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.
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
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.
SizePanel * myPolySizePanel
double getDelay() const
Returns the parsed delay.
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
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
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.
#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
#define GUIDesignViewSettingsLabel2
NamePanel * myStreetNamePanel
#define GUIDesignCheckButton
For the load-decals - button.
bool drawMinGap
Information whether the minimum gap shall be drawn.
NamePanel * myInternalJunctionNamePanel
std::vector< FXColorWell * > myVehicleColors
#define GUIDesignViewSettingsMatrix4
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.
void saveWindowSize()
save window position and size to the registry
#define GUIDesignViewSettingsColorWell1
Color wells.
FXCheckButton * myShowSizeLegend
GUIVisualizationSettings & get(const std::string &name)
Returns the named scheme.
Informs the dialog about switching to another scheme.
RGBColor selectionColor
NETEDIT special colors.
FXCheckButton * mySaveDecals
FXVerticalFrame * myLaneColorSettingFrame
std::vector< FXRealSpinner * > myVehicleThresholds
FXComboBox & getColoringSchemesCombo()
get coloring schemes combo
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)
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)
GUIColorer junctionColorer
The junction colorer.
#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
FXComboBox * myPolyColorMode
RGBColor selectedAdditionalColor
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.
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
void unlock()
release mutex lock
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.
FXComboBox * myContainerColorMode
GUIVisualizationSizeSettings poiSize
~GUIDialog_ViewSettings()
Destructor.
NamePanel * myTLIndexPanel
#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
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
FXComboBox * myLaneEdgeScaleMode
... lane scaler
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
FXComboBox * myPersonShapeDetail
GUIVisualizationTextSettings addFullName
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
FXComboBox * myLaneEdgeColorMode
... lane colorer
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
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
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.
#define GUIDesignSpinDial
GUIVisualizationSizeSettings vehicleSize
SizePanel * myVehicleSizePanel
bool drawJunctionShape
whether the shape of the junction should be drawn
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.
FXVerticalFrame * myPOIColorSettingFrame
const std::vector< double > & getThresholds() const
static bool UseMesoSim
this should be set at the same time as MSGlobals::gUseMesoSim
MFXMutex * myDecalsLock
Lock used when changing the decals.
NamePanel * myAddFullNamePanel
FXRealSpinner * myLaneWidthUpscaleDialer
SizePanel * myContainerSizePanel
FXCheckButton * myContainerColorInterpolation
GUIScaler laneScaler
The lane scaler.
#define GUIDesignViewSettingsSpinDial2
bool spreadSuperposed
Whether to improve visualisation of superposed (rail) edges.
FXComboBox * myContainerShapeDetail
long onCmdDeleteSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be deleted.
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
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
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
bool showBikeMarkings
Information whether bicycle lane marking shall be drawn.
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.
#define GUIDesignTextFielWidth100
text field with thick frame and size of 100x23
void add(const GUIVisualizationSettings &scheme)
Adds a visualization scheme.
FXComboBox * myPersonColorMode
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