80 FXIMPLEMENT(
GUIDialog_ViewSettings, FXDialogBox, GUIDialog_ViewSettingsMap, ARRAYNUMBER(GUIDialog_ViewSettingsMap))
88 myParent(parent), mySettings(settings),
89 myDecals(decals), myDecalsLock(decalsLock),
91 myBackup = (*mySettings);
99 for (std::vector<std::string>::const_iterator i = names.begin(); i != names.end(); ++i) {
100 int index = mySchemeName->appendItem((*i).c_str());
101 if ((*i) == mySettings->name) {
102 mySchemeName->setCurrentItem((FXint) index);
105 mySchemeName->setNumVisible(5);
112 new FXVerticalSeparator(frame0);
114 mySaveViewPort =
new FXCheckButton(frame0,
"Viewport");
115 mySaveDelay =
new FXCheckButton(frame0,
"Delay");
116 mySaveDecals =
new FXCheckButton(frame0,
"Decals");
124 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
134 new FXLabel(frame11,
"Decals:");
135 myDecalsFrame =
new FXVerticalFrame(frame11);
144 myShowGrid->setCheck(mySettings->showGrid);
145 new FXLabel(m12,
"");
149 myGridXSizeDialer->setRange(1, 10000);
150 myGridXSizeDialer->setValue(mySettings->gridXSize);
154 myGridYSizeDialer->setRange(1, 10000);
155 myGridYSizeDialer->setValue(mySettings->gridXSize);
160 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
170 (BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT), 0, 0, 0, 0, 20, 20, 4, 4);
182 mySettings->edgeColorer.fill(*myLaneEdgeColorMode);
183 mySettings->edgeScaler.fill(*myLaneEdgeScaleMode);
184 myLaneEdgeColorMode->setNumVisible((
int)mySettings->edgeColorer.size());
185 myLaneEdgeScaleMode->setNumVisible((
int)mySettings->edgeScaler.size());
187 mySettings->laneColorer.fill(*myLaneEdgeColorMode);
188 mySettings->laneScaler.fill(*myLaneEdgeScaleMode);
189 myLaneEdgeColorMode->setNumVisible((
int)mySettings->laneColorer.size());
190 myLaneEdgeScaleMode->setNumVisible((
int)mySettings->laneScaler.size());
196 myShowLaneBorders->setCheck(mySettings->laneShowBorders);
199 myShowLaneDecals->setCheck(mySettings->showLinkDecals);
202 myShowLinkRules->setCheck(mySettings->showLinkRules);
205 myShowRails->setCheck(mySettings->showRails);
208 myHideMacroConnectors->setCheck(mySettings->hideConnectors);
211 myShowLaneDirection->setCheck(mySettings->showLaneDirection);
214 myShowSublanes->setCheck(mySettings->showSublanes);
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);
233 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
239 myVehicleShapeDetail->appendItem(
"'triangles'");
240 myVehicleShapeDetail->appendItem(
"'boxes'");
241 myVehicleShapeDetail->appendItem(
"'simple shapes'");
242 myVehicleShapeDetail->appendItem(
"'raster images'");
243 myVehicleShapeDetail->setNumVisible(4);
244 myVehicleShapeDetail->setCurrentItem(settings->vehicleQuality);
251 mySettings->vehicleColorer.fill(*myVehicleColorMode);
252 myVehicleColorMode->setNumVisible((
int)mySettings->vehicleColorer.size());
261 myShowBlinker->setCheck(mySettings->showBlinker);
264 myShowMinGap->setCheck(mySettings->drawMinGap);
267 myShowBTRange->setCheck(mySettings->showBTRange);
274 myVehicleNamePanel =
new NamePanel(m33,
this,
"Show vehicle name", mySettings->vehicleName);
285 myVehicleSizePanel =
new SizePanel(m34,
this, mySettings->vehicleSize);
290 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
296 myPersonShapeDetail->appendItem(
"'triangles'");
297 myPersonShapeDetail->appendItem(
"'boxes'");
298 myPersonShapeDetail->appendItem(
"'simple shapes'");
299 myPersonShapeDetail->appendItem(
"'raster images'");
300 myPersonShapeDetail->setNumVisible(4);
301 myPersonShapeDetail->setCurrentItem(settings->personQuality);
308 mySettings->personColorer.fill(*myPersonColorMode);
309 myPersonColorMode->setNumVisible(10);
317 myPersonNamePanel =
new NamePanel(m103,
this,
"Show person name", mySettings->personName);
322 myPersonSizePanel =
new SizePanel(m104,
this, mySettings->personSize);
327 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
333 myContainerShapeDetail->appendItem(
"'triangles'");
334 myContainerShapeDetail->appendItem(
"'boxes'");
335 myContainerShapeDetail->appendItem(
"'simple shapes'");
336 myContainerShapeDetail->appendItem(
"'raster images'");
337 myContainerShapeDetail->setNumVisible(4);
338 myContainerShapeDetail->setCurrentItem(settings->containerQuality);
345 mySettings->containerColorer.fill(*myContainerColorMode);
346 myContainerColorMode->setNumVisible(9);
354 myContainerNamePanel =
new NamePanel(m103,
this,
"Show container name", mySettings->containerName);
359 myContainerSizePanel =
new SizePanel(m104,
this, mySettings->containerSize);
364 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
369 mySettings->junctionColorer.fill(*myJunctionColorMode);
370 myJunctionColorMode->setNumVisible(3);
377 myTLIndexPanel =
new NamePanel(m42,
this,
"Show link tls index", mySettings->drawLinkTLIndex);
378 myJunctionIndexPanel =
new NamePanel(m42,
this,
"Show link junction index", mySettings->drawLinkJunctionIndex);
380 myShowLane2Lane->setCheck(mySettings->showLane2Lane);
382 myJunctionNamePanel =
new NamePanel(m42,
this,
"Show junction name", mySettings->junctionName);
383 myInternalJunctionNamePanel =
new NamePanel(m42,
this,
"Show internal junction name", mySettings->internalJunctionName);
384 myInternalEdgeNamePanel =
new NamePanel(m42,
this,
"Show internal edge name", mySettings->internalEdgeName);
385 myCwaEdgeNamePanel =
new NamePanel(m42,
this,
"Show crossing and walkingarea name", mySettings->cwaEdgeName);
387 myDrawJunctionShape->setCheck(mySettings->drawJunctionShape);
389 myDrawCrossingsAndWalkingAreas->setCheck(mySettings->drawCrossingsAndWalkingareas);
394 myJunctionSizePanel =
new SizePanel(m43,
this, mySettings->junctionSize);
399 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
403 myAddNamePanel =
new NamePanel(m51,
this,
"Show detector name", mySettings->addName);
407 myAddSizePanel =
new SizePanel(m52,
this, mySettings->addSize);
417 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
421 myPOINamePanel =
new NamePanel(m61,
this,
"Show poi names", mySettings->poiName);
422 myPOITypePanel =
new NamePanel(m61,
this,
"Show poi types", mySettings->poiType);
426 myPOISizePanel =
new SizePanel(m62,
this, mySettings->poiSize);
432 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
436 myPolyNamePanel =
new NamePanel(m91,
this,
"Show polygon names", mySettings->polyName);
437 myPolyTypePanel =
new NamePanel(m91,
this,
"Show polygon types", mySettings->polyType);
440 myPolySizePanel =
new SizePanel(m91,
this, mySettings->polySize);
445 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
450 myShowSizeLegend->setCheck(mySettings->showSizeLegend);
451 new FXLabel(m72,
"");
456 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
461 myAntialiase->setCheck(mySettings->antialiase);
463 myDither->setCheck(mySettings->dither);
470 rebuildColorMatrices(
false);
473 const FXint minSize = 400;
474 setX(
MIN2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"x", 150), getApp()->getRootWindow()->getWidth() - minSize));
475 setY(
MIN2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"y", 150), getApp()->getRootWindow()->getHeight() - minSize));
476 setWidth(
MAX2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"width", 700), minSize));
477 setHeight(
MAX2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"height", 500), minSize));
544 FXString dataS = (
char*) data;
547 for (
int i = 0; i <
mySchemeName->getNumItems() - 1; ++i) {
631 std::vector<FXColorWell*>::const_iterator colEnd,
632 std::vector<FXRealSpinDial*>::const_iterator threshIt,
633 std::vector<FXRealSpinDial*>::const_iterator threshEnd,
634 std::vector<FXButton*>::const_iterator buttonIt,
637 while (colIt != colEnd) {
639 if (sender == *colIt) {
643 if (sender == *threshIt) {
644 const double val = (*threshIt)->getValue();
648 (*threshIt)->getRange(lo, hi);
649 (*threshIt)->setRange(lo, val);
653 if (threshIt != threshEnd) {
654 (*threshIt)->getRange(lo, hi);
655 (*threshIt)->setRange(val, hi);
660 if (sender == *colIt) {
664 if (sender == *buttonIt) {
667 }
else if (sender == *(buttonIt + 1)) {
684 std::vector<FXRealSpinDial*>::const_iterator scaleEnd,
685 std::vector<FXRealSpinDial*>::const_iterator threshIt,
686 std::vector<FXRealSpinDial*>::const_iterator threshEnd,
687 std::vector<FXButton*>::const_iterator buttonIt,
690 while (scaleIt != scaleEnd) {
692 if (sender == *scaleIt) {
693 scheme.
setColor(pos, (*scaleIt)->getValue());
696 if (sender == *threshIt) {
697 const double val = (*threshIt)->getValue();
701 (*threshIt)->getRange(lo, hi);
702 (*threshIt)->setRange(lo, val);
706 if (threshIt != threshEnd) {
707 (*threshIt)->getRange(lo, hi);
708 (*threshIt)->setRange(val, hi);
713 if (sender == *scaleIt) {
714 scheme.
setColor(pos, (*scaleIt)->getValue());
717 if (sender == *buttonIt) {
718 scheme.
addColor((*scaleIt)->getValue(), (*threshIt)->getValue());
720 }
else if (sender == *(buttonIt + 1)) {
743 bool doRebuildColorMatrices =
false;
821 doRebuildColorMatrices =
true;
827 doRebuildColorMatrices =
true;
831 doRebuildColorMatrices =
true;
834 doRebuildColorMatrices =
true;
841 doRebuildColorMatrices =
true;
845 doRebuildColorMatrices =
true;
848 doRebuildColorMatrices =
true;
855 doRebuildColorMatrices =
true;
859 doRebuildColorMatrices =
true;
862 doRebuildColorMatrices =
true;
869 doRebuildColorMatrices =
true;
873 doRebuildColorMatrices =
true;
876 doRebuildColorMatrices =
true;
883 doRebuildColorMatrices =
true;
887 doRebuildColorMatrices =
true;
890 doRebuildColorMatrices =
true;
897 doRebuildColorMatrices =
true;
901 doRebuildColorMatrices =
true;
904 doRebuildColorMatrices =
true;
934 if (doRebuildColorMatrices) {
938 getApp()->forceRefresh();
947 if (settingsName !=
"") {
948 FXint index =
mySchemeName->appendItem(settingsName.c_str());
969 std::vector<GUISUMOAbstractView::Decal>::iterator j;
1010 std::string name =
"";
1011 while (name.length() == 0) {
1022 if (!dialog.execute()) {
1025 name = text->getText().text();
1026 for (
int i = 0; i < (int)name.length(); ++i) {
1027 if (name[i] !=
'_' && (name[i] <
'a' || name[i] >
'z') && (name[i] <
'A' || name[i] >
'Z') && (name[i] <
'0' || name[i] >
'9')) {
1035 tmpSettings.
name = name;
1049 sender->handle(
this,
1051 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1063 std::string name =
mySchemeName->getItem(index).text();
1074 sender->handle(
this,
1076 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1106 FXMessageBox::error(
this, MBOX_OK,
"Storing failed!",
"%s", e.what());
1114 sender->handle(
this,
1117 FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1125 FXFileDialog opendialog(
this,
"Import view settings");
1127 opendialog.setSelectMode(SELECTFILE_ANY);
1128 opendialog.setPatternList(
"*.xml");
1132 if (opendialog.execute()) {
1142 FXFileDialog opendialog(
this,
"Load Decals");
1144 opendialog.setSelectMode(SELECTFILE_ANY);
1145 opendialog.setPatternList(
"*.xml");
1149 if (opendialog.execute()) {
1170 FXMessageBox::error(
myParent, MBOX_OK,
"Storing failed!",
"%s", e.what());
1180 sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE), ptr);
1190 const int numRows =
MAX2((
int)10, (
int)
myDecals->size() + 1);
1201 header->setHeight(getApp()->getNormalFont()->getFontHeight() + getApp()->getNormalFont()->getFontAscent());
1203 for (k = 0; k < cols; k++) {
1205 header->setItemSize(k, 60);
1207 header->setItemSize(0, 150);
1210 std::vector<GUISUMOAbstractView::Decal>::iterator j;
1224 for (k = 0; k < 7; k++) {
1232 std::vector<FXColorWell*>& colors,
1233 std::vector<FXRealSpinDial*>& thresholds,
1234 std::vector<FXButton*>& buttons,
1235 FXCheckButton* interpolation,
1242 const bool fixed = scheme.
isFixed();
1243 std::vector<RGBColor>::const_iterator colIt = scheme.
getColors().begin();
1244 std::vector<double>::const_iterator threshIt = scheme.
getThresholds().begin();
1245 std::vector<std::string>::const_iterator nameIt = scheme.
getNames().begin();
1246 while (colIt != scheme.
getColors().end()) {
1249 new FXLabel(m, nameIt->c_str());
1255 threshDialer->setValue(*threshIt);
1256 thresholds.push_back(threshDialer);
1266 interpolation->disable();
1268 if (colors.size() > 1) {
1269 interpolation->enable();
1270 if (interpolation->getCheck() != FALSE) {
1271 thresholds.front()->enable();
1273 thresholds.front()->disable();
1276 interpolation->disable();
1277 thresholds.front()->disable();
1286 std::vector<FXRealSpinDial*>& scales,
1287 std::vector<FXRealSpinDial*>& thresholds,
1288 std::vector<FXButton*>& buttons,
1289 FXCheckButton* interpolation,
1296 const bool fixed = scheme.
isFixed();
1297 std::vector<double>::const_iterator scaleIt = scheme.
getColors().begin();
1298 std::vector<double>::const_iterator threshIt = scheme.
getThresholds().begin();
1299 std::vector<std::string>::const_iterator nameIt = scheme.
getNames().begin();
1300 while (scaleIt != scheme.
getColors().end()) {
1302 scaleDialer->setValue(*scaleIt);
1303 scales.push_back(scaleDialer);
1305 new FXLabel(m, nameIt->c_str());
1311 threshDialer->setValue(*threshIt);
1312 thresholds.push_back(threshDialer);
1322 interpolation->disable();
1324 if (scales.size() > 1) {
1325 interpolation->enable();
1326 if (interpolation->getCheck() != FALSE) {
1327 thresholds.front()->enable();
1329 thresholds.front()->disable();
1332 interpolation->disable();
1333 thresholds.front()->disable();
1350 for (
int i = 1; i <= 5; ++i) {
1405 std::string value = i->
item->getText().text();
1407 if (value.find_first_not_of(
" ") == std::string::npos) {
1413 if (row == static_cast<int>(
myDecals->size())) {
1426 }
else if (row > static_cast<int>(
myDecals->size())) {
1430 d = (*myDecals)[row];
1444 std::string msg =
"The value must be a float, is:" + value;
1445 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1452 std::string msg =
"The value must be a float, is:" + value;
1453 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1460 std::string msg =
"The value must be a float, is:" + value;
1461 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1468 std::string msg =
"The value must be a float, is:" + value;
1469 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1476 std::string msg =
"The value must be a float, is:" + value;
1477 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1484 std::string msg =
"The value must be a float, is:" + value;
1485 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1492 std::string msg =
"The value must be a bool, is:" + value;
1493 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1499 (*myDecals)[row] = d;
1519 for (
int i = 0; i <
mySchemeName->getNumItems(); ++i) {
1531 const std::string& title,
1534 myCheck->setCheck(settings.
show);
1535 new FXLabel(parent,
"");
1539 mySizeDial->setRange(10, 1000);
1540 mySizeDial->setValue(settings.
size);
1555 myCheck->setCheck(settings.
show);
1556 mySizeDial->setValue(settings.
size);
1567 new FXLabel(parent,
"");
1571 myMinSizeDial->setValue(settings.
minSize);
1575 myExaggerateDial->setRange(0, 10000);
1583 myMinSizeDial->getValue(), myExaggerateDial->getValue(), myCheck->getCheck() != FALSE);
1590 myMinSizeDial->setValue(settings.
minSize);
1597 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"x", getX());
1598 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"y", getY());
1599 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"width", getWidth());
1600 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"height", getHeight());
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
GUIVisualizationTextSettings junctionName
A decal (an image) that can be shown.
FXCheckButton * mySaveViewPort
FXVerticalFrame * myVehicleColorSettingFrame
long onUpdSaveSetting(FXObject *, FXSelector, void *data)
Called when updating the button that allows to save the settings into the registry.
int getNumInitialSettings() const
Returns the number of initial settings.
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
const std::vector< T > & getColors() const
GUICompleteSchemeStorage gSchemeStorage
bool showSizeLegend
Information whether the size legend shall be drawn.
FXCheckButton * myJunctionColorInterpolation
FXCheckButton * myShowBlinker
bool isInterpolated() const
#define GUIDesignViewSettingsMatrix5
GUIVisualizationTextSettings poiType
FXVerticalFrame * myLaneScaleSettingFrame
FXCheckButton * myShowBTRange
GUIVisualizationTextSettings streetName
double laneWidthExaggeration
The lane exaggeration (upscale thickness)
#define GUIDesignViewSettingsMatrix3
std::string addSettings(GUISUMOAbstractView *view=0) const
Adds the parsed settings to the global list of settings.
bool showBlinker
Information whether vehicle blinkers shall be drawn.
GUIVisualizationTextSettings addName
FXComboBox * myVehicleColorMode
GUIVisualizationTextSettings personName
#define GUIDesignViewSettingsButton5
std::vector< FXButton * > myLaneButtons
SizePanel * myPOISizePanel
FXDEFMAP(GUIDialog_ViewSettings) GUIDialog_ViewSettingsMap[]
#define GUIDesignViewSettingsColorWell2
GUIVisualizationTextSettings poiName
static bool _2bool(const E *const data)
converts a 0-terminated char-type array into the boolean value described by it
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)
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
GUIColorer edgeColorer
The mesoscopic edge colorer.
static RGBColor getRGBColor(FXColor col)
converts FXColor to RGBColor
void remove(GUIDialog_EditViewport *)
remove viewport
std::vector< FXRealSpinDial * > myLaneScaleThresholds
#define GUIDesignViewSettingsVerticalFrame4
std::vector< GUISUMOAbstractView::Decal > * myDecals
The parent's decals.
NamePanel * myPOINamePanel
bool showRails
Information whether rails shall be drawn.
void loadDecals(const std::string &file)
Loads decals from a file.
std::vector< FXButton * > myPersonButtons
FXMatrix * rebuildScaleMatrix(FXVerticalFrame *frame, std::vector< FXRealSpinDial * > &scales, std::vector< FXRealSpinDial * > &thresholds, std::vector< FXButton * > &buttons, FXCheckButton *interpolation, GUIScaleScheme &scheme)
Rebuilds manipulators for the current scaling scheme.
std::vector< FXColorWell * > myJunctionColors
GUIVisualizationTextSettings vehicleName
FXComboBox * myVehicleShapeDetail
FXCheckButton * myShowSublanes
double centerX
The center of the image in x-direction (net coordinates, in m)
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
bool hasDecals() const
Returns whether any decals have been parsed.
static void deleteChildren(FXWindow *w)
Deletes all children of the given window.
long onCmdSaveDecals(FXObject *, FXSelector, void *data)
Called if the decals shall be saved to a file.
For the export-to-file - button.
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.
bool netedit
Whether the settings are for Netedit.
const std::vector< double > & getThresholds() const
long onCmdExportSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be exported into a file.
SizePanel * myJunctionSizePanel
#define GUIDesignViewSettingsTextField1
textFields
bool showLinkRules
Information whether link rules (colored bars) shall be drawn.
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.
bool dither
Information whether dithering shall be enabled.
double height
The height of the image (net coordinates in y-direction, in m)
double getDelay() const
Returns the delay of the parent application.
FXVerticalFrame * myContainerColorSettingFrame
std::vector< FXRealSpinDial * > myPersonThresholds
const std::vector< GUISUMOAbstractView::Decal > & getDecals() const
Returns the parsed decals.
virtual void buildColorRainbow(GUIColorScheme &, int, GUIGlObjectType)
recalibrate color scheme according to the current value range
#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
void setActive(int scheme)
double layer
The layer of the image.
#define GUIDesignViewSettingsVerticalFrame1
vertical frames
#define GUIDesignViewSettingsMatrix2
GUIVisualizationSizeSettings polySize
GUIColorer vehicleColorer
The vehicle colorer.
FXCheckButton * myShowLaneDirection
double roll
The roll of the image to the ground plane (in degrees)
#define GUIDesignViewSettingsButton2
GUIVisualizationTextSettings edgeName
double getGridHeight() const
get grid Height
std::vector< FXButton * > myContainerButtons
FXCheckButton * myVehicleColorInterpolation
GUIVisualizationSizeSettings addSize
const std::vector< std::string > & getNames() const
Returns a list of stored settings names.
#define GUIDesignViewSettingsVerticalFrame2
void setNumberCellParams(int pos, double min, double max, double steps1, double steps2, double steps3, const std::string &format)
NamePanel * myInternalEdgeNamePanel
FXCheckButton * myShowMinGap
NamePanel * myEdgeNamePanel
void setCellType(int pos, CellType t)
FXCheckButton * myShowGrid
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)
void applyViewport(GUISUMOAbstractView *view) const
Sets the viewport which has been parsed.
double minSize
The minimum size to draw this object.
FXCheckButton * myDrawCrossingsAndWalkingAreas
void show()
show view settings dialog
GUIVisualizationSettings * mySettings
The current settings.
GUIVisualizationTextSettings internalEdgeName
FXMatrix * rebuildColorMatrix(FXVerticalFrame *frame, std::vector< FXColorWell * > &colors, std::vector< FXRealSpinDial * > &thresholds, std::vector< FXButton * > &buttons, FXCheckButton *interpolation, GUIColorScheme &scheme)
Rebuilds manipulators for the current coloring scheme.
std::vector< FXRealSpinDial * > myLaneScales
#define GUIDesignViewSettingsLabel2
NamePanel * myStreetNamePanel
#define GUIDesignCheckButton
double getDelay() const
Returns the parsed delay.
double getGridWidth() const
get grid width
bool drawMinGap
Information whether the minimum gap shall be drawn.
NamePanel * myInternalJunctionNamePanel
int getLaneEdgeMode() const
Returns the number of the active lane (edge) coloring schme.
std::vector< FXColorWell * > myVehicleColors
#define GUIDesignViewSettingsMatrix4
bool contains(const std::string &name) const
Returns the information whether a setting with the given name is stored.
FXRealSpinDial * myLaneWidthUpscaleDialer
Cancel-button was pushed.
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.
bool allowsNegativeValues() const
FXCheckButton * mySaveDecals
FXVerticalFrame * myLaneColorSettingFrame
FXComboBox & getColoringSchemesCombo()
get coloring schemes combo
FXRealSpinDial * myLaneMinWidthDialer
bool initialised
Whether this image was initialised (inserted as a texture)
GUIVisualizationTextSettings drawLinkTLIndex
#define GUIDesignViewSettingsColorWell
ColorWell.
GUIColorer personColorer
The person colorer.
void setThreshold(const int pos, const double threshold)
int getLaneEdgeScaleMode() const
Returns the number of the active lane (edge) scaling schme.
GUIVisualizationTextSettings internalJunctionName
For the import-from-file - button.
#define GUIDesignComboBoxStatic
Combo box static (not editable)
double centerY
The center of the image in y-direction (net coordinates, in m)
const std::vector< std::string > & getNames() const
GUIColorer junctionColorer
The junction colorer.
std::string getCurrentScheme() const
Returns the name of the currently chosen scheme.
#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
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
FXRealSpinDial * myGridYSizeDialer
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.
bool antialiase
Information whether antialiase shall be enabled.
std::vector< FXButton * > myLaneScaleButtons
void saveDecals(OutputDevice &dev) const
Writes the currently used decals into a file.
Informs the dialog about a value's change.
long onCmdOk(FXObject *, FXSelector, void *)
Called if the OK-button was pressed.
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
For the save-decals - button.
void unlock()
release mutex lock
For the load-decals - button.
FXComboBox * myContainerColorMode
GUIVisualizationSizeSettings poiSize
~GUIDialog_ViewSettings()
Destructor.
NamePanel * myTLIndexPanel
bool updateScaleRanges(FXObject *sender, std::vector< FXRealSpinDial * >::const_iterator colIt, std::vector< FXRealSpinDial * >::const_iterator colEnd, std::vector< FXRealSpinDial * >::const_iterator threshIt, std::vector< FXRealSpinDial * >::const_iterator threshEnd, std::vector< FXButton * >::const_iterator buttonIt, GUIScaleScheme &scheme)
#define GUIDesignViewSettingsHorizontalFrame1
Horizontal frames.
NamePanel * myVehicleNamePanel
NamePanel * myContainerNamePanel
MFXAddEditTypedTable * myDecalsTable
FXCheckButton * myDrawJunctionShape
bool showLinkDecals
Information whether link textures (arrows) shall be drawn.
#define GUIDesignViewSettingsTabBook1
Tab books.
#define GUIDesignViewSettingsComboBox1
Combo boxs.
NamePanel(FXMatrix *parent, GUIDialog_ViewSettings *target, const std::string &title, const GUIVisualizationTextSettings &settings)
GUIVisualizationSizeSettings containerSize
FXComboBox * myLaneEdgeScaleMode
... lane scaler
void removeColor(const int pos)
static OutputDevice & getDevice(const std::string &name)
Returns the described OutputDevice.
FXButton * myLaneColorRainbow
GUIVisualizationTextSettings getSettings()
FXComboBox * myPersonShapeDetail
Informs the dialog about switching to another scheme.
NamePanel * myJunctionNamePanel
void writeSettings(FXApp *app)
Writes the current scheme into the registry.
#define GUIDesignViewSettingsHorizontalFrame3
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)
static double _2double(const E *const data)
converts a char-type array into the double value described by it
#define GUIDesignViewSettingsTabItemBook1
FXCheckButton * myShowRails
GUIVisualizationSizeSettings personSize
int personQuality
The quality of person drawing.
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)
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()
Closes the most recently opened tag.
FXRealSpinDial * myGridXSizeDialer
An XML-handler for visualisation schemes.
void save(OutputDevice &dev) const
Writes the settings into an output device.
NamePanel * myJunctionIndexPanel
FXCheckButton * myPersonColorInterpolation
#define GUIDesignViewSettingsVerticalFrame6
#define GUIDesignViewSettingsButton1
Buttons.
#define GUIDesignSpinDial
GUIVisualizationSizeSettings vehicleSize
SizePanel * myVehicleSizePanel
bool drawJunctionShape
whether the shape of the junction should be drawn
std::vector< FXRealSpinDial * > myContainerThresholds
long onCmdLoadDecals(FXObject *, FXSelector, void *data)
Called if the decals shall be loaded from a file.
void update(const GUIVisualizationTextSettings &settings)
FXColorWell * myBackgroundColor
std::vector< FXRealSpinDial * > myVehicleThresholds
GUIVisualizationSizeSettings getSettings()
int vehicleQuality
The quality of vehicle drawing.
bool updateColorRanges(FXObject *sender, std::vector< FXColorWell * >::const_iterator colIt, std::vector< FXColorWell * >::const_iterator colEnd, std::vector< FXRealSpinDial * >::const_iterator threshIt, std::vector< FXRealSpinDial * >::const_iterator threshEnd, std::vector< FXButton * >::const_iterator buttonIt, GUIColorScheme &scheme)
static bool UseMesoSim
this should be set at the same time as MSGlobals::gUseMesoSim
MFXMutex * myDecalsLock
Lock used when changing the decals.
SizePanel * myContainerSizePanel
std::vector< FXRealSpinDial * > myJunctionThresholds
FXCheckButton * myContainerColorInterpolation
GUIScaler laneScaler
The lane scaler.
#define GUIDesignViewSettingsSpinDial2
FXCheckButton * myAntialiase
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
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.
FXComboBox * mySchemeName
std::vector< FXRealSpinDial * > myLaneThresholds
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.
FXComboBox * myPersonColorMode
For the save-to-db - button.
long onUpdImportSetting(FXObject *, FXSelector, void *data)
Called when updating the button that allows to read settings from a file.
GUIVisualizationTextSettings polyName
GUIVisualizationTextSettings containerName
#define GUIDesignViewSettingsLabel1
Label.
#define GUIDesignViewSettingsMainDialog
FXCheckButton * myShowLaneDecals