79 FXIMPLEMENT(
GUIDialog_ViewSettings, FXDialogBox, GUIDialog_ViewSettingsMap, ARRAYNUMBER(GUIDialog_ViewSettingsMap))
87 myParent(parent), mySettings(settings),
88 myDecals(decals), myDecalsLock(decalsLock),
90 myBackup = (*mySettings);
98 for (std::vector<std::string>::const_iterator i = names.begin(); i != names.end(); ++i) {
99 int index = mySchemeName->appendItem((*i).c_str());
100 if ((*i) == mySettings->name) {
101 mySchemeName->setCurrentItem((FXint) index);
104 mySchemeName->setNumVisible(5);
111 new FXVerticalSeparator(frame0);
113 mySaveViewPort =
new FXCheckButton(frame0,
"Viewport");
114 mySaveDelay =
new FXCheckButton(frame0,
"Delay");
115 mySaveDecals =
new FXCheckButton(frame0,
"Decals");
123 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
133 new FXLabel(frame11,
"Decals:");
134 myDecalsFrame =
new FXVerticalFrame(frame11);
143 myShowGrid->setCheck(mySettings->showGrid);
144 new FXLabel(m12,
"");
148 myGridXSizeDialer->setRange(1, 10000);
149 myGridXSizeDialer->setValue(mySettings->gridXSize);
153 myGridYSizeDialer->setRange(1, 10000);
154 myGridYSizeDialer->setValue(mySettings->gridXSize);
159 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
169 (BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT), 0, 0, 0, 0, 20, 20, 4, 4);
181 mySettings->edgeColorer.fill(*myLaneEdgeColorMode);
182 mySettings->edgeScaler.fill(*myLaneEdgeScaleMode);
183 myLaneEdgeColorMode->setNumVisible((
int)mySettings->edgeColorer.size());
184 myLaneEdgeScaleMode->setNumVisible((
int)mySettings->edgeScaler.size());
186 mySettings->laneColorer.fill(*myLaneEdgeColorMode);
187 mySettings->laneScaler.fill(*myLaneEdgeScaleMode);
188 myLaneEdgeColorMode->setNumVisible((
int)mySettings->laneColorer.size());
189 myLaneEdgeScaleMode->setNumVisible((
int)mySettings->laneScaler.size());
195 myShowLaneBorders->setCheck(mySettings->laneShowBorders);
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);
217 myLaneWidthUpscaleDialer->setRange(0, 10000);
218 myLaneWidthUpscaleDialer->setValue(mySettings->laneWidthExaggeration);
222 myLaneMinWidthDialer->setRange(0, 10000);
223 myLaneMinWidthDialer->setValue(mySettings->laneMinSize);
226 myEdgeNamePanel =
new NamePanel(m22,
this,
"Show edge name", mySettings->edgeName);
227 myStreetNamePanel =
new NamePanel(m22,
this,
"Show street name", mySettings->streetName);
232 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
238 myVehicleShapeDetail->appendItem(
"'triangles'");
239 myVehicleShapeDetail->appendItem(
"'boxes'");
240 myVehicleShapeDetail->appendItem(
"'simple shapes'");
241 myVehicleShapeDetail->appendItem(
"'raster images'");
242 myVehicleShapeDetail->setNumVisible(4);
243 myVehicleShapeDetail->setCurrentItem(settings->vehicleQuality);
250 mySettings->vehicleColorer.fill(*myVehicleColorMode);
251 myVehicleColorMode->setNumVisible((
int)mySettings->vehicleColorer.size());
260 myShowBlinker->setCheck(mySettings->showBlinker);
263 myShowMinGap->setCheck(mySettings->drawMinGap);
266 myShowBTRange->setCheck(mySettings->showBTRange);
273 myVehicleNamePanel =
new NamePanel(m33,
this,
"Show vehicle name", mySettings->vehicleName);
284 myVehicleSizePanel =
new SizePanel(m34,
this, mySettings->vehicleSize);
289 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
295 myPersonShapeDetail->appendItem(
"'triangles'");
296 myPersonShapeDetail->appendItem(
"'boxes'");
297 myPersonShapeDetail->appendItem(
"'simple shapes'");
298 myPersonShapeDetail->appendItem(
"'raster images'");
299 myPersonShapeDetail->setNumVisible(4);
300 myPersonShapeDetail->setCurrentItem(settings->personQuality);
307 mySettings->personColorer.fill(*myPersonColorMode);
308 myPersonColorMode->setNumVisible(10);
316 myPersonNamePanel =
new NamePanel(m103,
this,
"Show person name", mySettings->personName);
321 myPersonSizePanel =
new SizePanel(m104,
this, mySettings->personSize);
326 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
332 myContainerShapeDetail->appendItem(
"'triangles'");
333 myContainerShapeDetail->appendItem(
"'boxes'");
334 myContainerShapeDetail->appendItem(
"'simple shapes'");
335 myContainerShapeDetail->appendItem(
"'raster images'");
336 myContainerShapeDetail->setNumVisible(4);
337 myContainerShapeDetail->setCurrentItem(settings->containerQuality);
344 mySettings->containerColorer.fill(*myContainerColorMode);
345 myContainerColorMode->setNumVisible(9);
353 myContainerNamePanel =
new NamePanel(m103,
this,
"Show container name", mySettings->containerName);
358 myContainerSizePanel =
new SizePanel(m104,
this, mySettings->containerSize);
363 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
368 mySettings->junctionColorer.fill(*myJunctionColorMode);
369 myJunctionColorMode->setNumVisible(4);
374 (BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT), 0, 0, 0, 0, 20, 20, 4, 4);
378 myTLIndexPanel =
new NamePanel(m42,
this,
"Show link tls index", mySettings->drawLinkTLIndex);
379 myJunctionIndexPanel =
new NamePanel(m42,
this,
"Show link junction index", mySettings->drawLinkJunctionIndex);
381 myShowLane2Lane->setCheck(mySettings->showLane2Lane);
383 myJunctionNamePanel =
new NamePanel(m42,
this,
"Show junction name", mySettings->junctionName);
384 myInternalJunctionNamePanel =
new NamePanel(m42,
this,
"Show internal junction name", mySettings->internalJunctionName);
385 myInternalEdgeNamePanel =
new NamePanel(m42,
this,
"Show internal edge name", mySettings->internalEdgeName);
386 myCwaEdgeNamePanel =
new NamePanel(m42,
this,
"Show crossing and walkingarea name", mySettings->cwaEdgeName);
388 myDrawJunctionShape->setCheck(mySettings->drawJunctionShape);
390 myDrawCrossingsAndWalkingAreas->setCheck(mySettings->drawCrossingsAndWalkingareas);
395 myJunctionSizePanel =
new SizePanel(m43,
this, mySettings->junctionSize);
400 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
404 myAddNamePanel =
new NamePanel(m51,
this,
"Show object name", mySettings->addName);
405 myAddFullNamePanel =
new NamePanel(m51,
this,
"Show full name", mySettings->addFullName);
409 myAddSizePanel =
new SizePanel(m52,
this, mySettings->addSize);
419 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
423 myPOINamePanel =
new NamePanel(m61,
this,
"Show poi names", mySettings->poiName);
424 myPOITypePanel =
new NamePanel(m61,
this,
"Show poi types", mySettings->poiType);
428 myPOISizePanel =
new SizePanel(m62,
this, mySettings->poiSize);
434 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
438 myPolyNamePanel =
new NamePanel(m91,
this,
"Show polygon names", mySettings->polyName);
439 myPolyTypePanel =
new NamePanel(m91,
this,
"Show polygon types", mySettings->polyType);
442 myPolySizePanel =
new SizePanel(m91,
this, mySettings->polySize);
447 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
452 myShowSizeLegend->setCheck(mySettings->showSizeLegend);
453 new FXLabel(m72,
"");
458 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
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));
545 FXString dataS = (
char*) data;
548 for (
int i = 0; i <
mySchemeName->getNumItems() - 1; ++i) {
632 std::vector<FXColorWell*>::const_iterator colEnd,
633 std::vector<FXRealSpinDial*>::const_iterator threshIt,
634 std::vector<FXRealSpinDial*>::const_iterator threshEnd,
635 std::vector<FXButton*>::const_iterator buttonIt,
638 while (colIt != colEnd) {
640 if (sender == *colIt) {
644 if (sender == *threshIt) {
645 const double val = (*threshIt)->getValue();
649 (*threshIt)->getRange(lo, hi);
650 (*threshIt)->setRange(lo, val);
654 if (threshIt != threshEnd) {
655 (*threshIt)->getRange(lo, hi);
656 (*threshIt)->setRange(val, hi);
661 if (sender == *colIt) {
665 if (sender == *buttonIt) {
668 }
else if (sender == *(buttonIt + 1)) {
685 std::vector<FXRealSpinDial*>::const_iterator scaleEnd,
686 std::vector<FXRealSpinDial*>::const_iterator threshIt,
687 std::vector<FXRealSpinDial*>::const_iterator threshEnd,
688 std::vector<FXButton*>::const_iterator buttonIt,
691 while (scaleIt != scaleEnd) {
693 if (sender == *scaleIt) {
694 scheme.
setColor(pos, (*scaleIt)->getValue());
697 if (sender == *threshIt) {
698 const double val = (*threshIt)->getValue();
702 (*threshIt)->getRange(lo, hi);
703 (*threshIt)->setRange(lo, val);
707 if (threshIt != threshEnd) {
708 (*threshIt)->getRange(lo, hi);
709 (*threshIt)->setRange(val, hi);
714 if (sender == *scaleIt) {
715 scheme.
setColor(pos, (*scaleIt)->getValue());
718 if (sender == *buttonIt) {
719 scheme.
addColor((*scaleIt)->getValue(), (*threshIt)->getValue());
721 }
else if (sender == *(buttonIt + 1)) {
744 bool doRebuildColorMatrices =
false;
822 doRebuildColorMatrices =
true;
826 doRebuildColorMatrices =
true;
832 doRebuildColorMatrices =
true;
836 doRebuildColorMatrices =
true;
839 doRebuildColorMatrices =
true;
846 doRebuildColorMatrices =
true;
850 doRebuildColorMatrices =
true;
853 doRebuildColorMatrices =
true;
860 doRebuildColorMatrices =
true;
864 doRebuildColorMatrices =
true;
867 doRebuildColorMatrices =
true;
874 doRebuildColorMatrices =
true;
878 doRebuildColorMatrices =
true;
881 doRebuildColorMatrices =
true;
888 doRebuildColorMatrices =
true;
892 doRebuildColorMatrices =
true;
895 doRebuildColorMatrices =
true;
902 doRebuildColorMatrices =
true;
906 doRebuildColorMatrices =
true;
909 doRebuildColorMatrices =
true;
939 if (doRebuildColorMatrices) {
943 getApp()->forceRefresh();
952 if (settingsName !=
"") {
953 FXint index =
mySchemeName->appendItem(settingsName.c_str());
974 std::vector<GUISUMOAbstractView::Decal>::iterator j;
1015 std::string name =
"";
1016 while (name.length() == 0) {
1027 if (!dialog.execute()) {
1030 name = text->getText().text();
1031 for (
int i = 0; i < (int)name.length(); ++i) {
1032 if (name[i] !=
'_' && (name[i] <
'a' || name[i] >
'z') && (name[i] <
'A' || name[i] >
'Z') && (name[i] <
'0' || name[i] >
'9')) {
1040 tmpSettings.
name = name;
1054 sender->handle(
this,
1056 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1068 std::string name =
mySchemeName->getItem(index).text();
1079 sender->handle(
this,
1081 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1111 FXMessageBox::error(
this, MBOX_OK,
"Storing failed!",
"%s", e.what());
1119 sender->handle(
this,
1122 FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1130 FXFileDialog opendialog(
this,
"Import view settings");
1132 opendialog.setSelectMode(SELECTFILE_ANY);
1133 opendialog.setPatternList(
"*.xml");
1137 if (opendialog.execute()) {
1147 FXFileDialog opendialog(
this,
"Load Decals");
1149 opendialog.setSelectMode(SELECTFILE_ANY);
1150 opendialog.setPatternList(
"*.xml");
1154 if (opendialog.execute()) {
1175 FXMessageBox::error(
myParent, MBOX_OK,
"Storing failed!",
"%s", e.what());
1185 sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE), ptr);
1195 const int numRows =
MAX2((
int)10, (
int)
myDecals->size() + 1);
1206 header->setHeight(getApp()->getNormalFont()->getFontHeight() + getApp()->getNormalFont()->getFontAscent());
1208 for (k = 0; k < cols; k++) {
1210 header->setItemSize(k, 60);
1212 header->setItemSize(0, 150);
1215 std::vector<GUISUMOAbstractView::Decal>::iterator j;
1229 for (k = 0; k < 7; k++) {
1237 std::vector<FXColorWell*>& colors,
1238 std::vector<FXRealSpinDial*>& thresholds,
1239 std::vector<FXButton*>& buttons,
1240 FXCheckButton* interpolation,
1247 const bool fixed = scheme.
isFixed();
1248 std::vector<RGBColor>::const_iterator colIt = scheme.
getColors().begin();
1249 std::vector<double>::const_iterator threshIt = scheme.
getThresholds().begin();
1250 std::vector<std::string>::const_iterator nameIt = scheme.
getNames().begin();
1251 while (colIt != scheme.
getColors().end()) {
1254 new FXLabel(m, nameIt->c_str());
1260 threshDialer->setValue(*threshIt);
1261 thresholds.push_back(threshDialer);
1271 interpolation->disable();
1273 if (colors.size() > 1) {
1274 interpolation->enable();
1275 if (interpolation->getCheck() != FALSE) {
1276 thresholds.front()->enable();
1278 thresholds.front()->disable();
1281 interpolation->disable();
1282 thresholds.front()->disable();
1291 std::vector<FXRealSpinDial*>& scales,
1292 std::vector<FXRealSpinDial*>& thresholds,
1293 std::vector<FXButton*>& buttons,
1294 FXCheckButton* interpolation,
1301 const bool fixed = scheme.
isFixed();
1302 std::vector<double>::const_iterator scaleIt = scheme.
getColors().begin();
1303 std::vector<double>::const_iterator threshIt = scheme.
getThresholds().begin();
1304 std::vector<std::string>::const_iterator nameIt = scheme.
getNames().begin();
1305 while (scaleIt != scheme.
getColors().end()) {
1307 scaleDialer->setValue(*scaleIt);
1308 scales.push_back(scaleDialer);
1310 new FXLabel(m, nameIt->c_str());
1316 threshDialer->setValue(*threshIt);
1317 thresholds.push_back(threshDialer);
1327 interpolation->disable();
1329 if (scales.size() > 1) {
1330 interpolation->enable();
1331 if (interpolation->getCheck() != FALSE) {
1332 thresholds.front()->enable();
1334 thresholds.front()->disable();
1337 interpolation->disable();
1338 thresholds.front()->disable();
1355 for (
int i = 1; i <= 5; ++i) {
1415 std::string value = i->
item->getText().text();
1417 if (value.find_first_not_of(
" ") == std::string::npos) {
1423 if (row == static_cast<int>(
myDecals->size())) {
1436 }
else if (row > static_cast<int>(
myDecals->size())) {
1440 d = (*myDecals)[row];
1454 std::string msg =
"The value must be a float, is:" + value;
1455 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1462 std::string msg =
"The value must be a float, is:" + value;
1463 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1470 std::string msg =
"The value must be a float, is:" + value;
1471 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1478 std::string msg =
"The value must be a float, is:" + value;
1479 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1486 std::string msg =
"The value must be a float, is:" + value;
1487 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1494 std::string msg =
"The value must be a float, is:" + value;
1495 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1502 std::string msg =
"The value must be a bool, is:" + value;
1503 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1509 (*myDecals)[row] = d;
1529 for (
int i = 0; i <
mySchemeName->getNumItems(); ++i) {
1541 const std::string& title,
1544 myCheck->setCheck(settings.
show);
1545 new FXLabel(parent,
"");
1549 mySizeDial->setRange(10, 1000);
1550 mySizeDial->setValue(settings.
size);
1565 myCheck->setCheck(settings.
show);
1566 mySizeDial->setValue(settings.
size);
1577 new FXLabel(parent,
"");
1581 myMinSizeDial->setValue(settings.
minSize);
1585 myExaggerateDial->setRange(0, 10000);
1593 myMinSizeDial->getValue(), myExaggerateDial->getValue(), myCheck->getCheck() != FALSE);
1600 myMinSizeDial->setValue(settings.
minSize);
1607 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"x", getX());
1608 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"y", getY());
1609 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"width", getWidth());
1610 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"height", getHeight());
void rebuildColorMatrices(bool doCreate=false)
Rebuilds color changing dialogs after choosing another coloring scheme.
GUIVisualizationSizeSettings junctionSize
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.
GUIDialog_EditViewport * getViewportEditor()
get the viewport and create it on first access
const std::vector< GUISUMOAbstractView::Decal > & getDecals() const
Returns the parsed decals.
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.
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 showBlinker
Information whether vehicle blinkers shall be drawn.
GUIVisualizationTextSettings addName
For the import-from-file - button.
FXComboBox * myVehicleColorMode
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
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)
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
GUIColorer edgeColorer
The mesoscopic edge colorer.
static RGBColor getRGBColor(FXColor col)
converts FXColor to RGBColor
void remove(GUIDialog_EditViewport *)
remove viewport
const std::vector< std::string > & getNames() const
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
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 allowsNegativeValues() const
Informs the dialog about a value's change.
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.
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.
long onCmdExportSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be exported into a file.
SizePanel * myJunctionSizePanel
bool isInterpolated() const
bool hasDecals() const
Returns whether any decals have been parsed.
#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.
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
std::vector< FXRealSpinDial * > myPersonThresholds
virtual void buildColorRainbow(GUIColorScheme &, int, GUIGlObjectType)
recalibrate color scheme according to the current value range
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.
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)
For the export-to-file - button.
#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
std::vector< FXButton * > myContainerButtons
FXCheckButton * myVehicleColorInterpolation
GUIVisualizationSizeSettings addSize
double getGridWidth() const
get grid width
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
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
For the save-to-db - button.
void show()
show view settings dialog
GUIVisualizationSettings * mySettings
The current settings.
GUIVisualizationTextSettings internalEdgeName
std::vector< FXRealSpinDial * > myLaneScales
#define GUIDesignViewSettingsLabel2
NamePanel * myStreetNamePanel
#define GUIDesignCheckButton
bool drawMinGap
Information whether the minimum gap shall be drawn.
NamePanel * myInternalJunctionNamePanel
std::vector< FXColorWell * > myVehicleColors
#define GUIDesignViewSettingsMatrix4
FXRealSpinDial * myLaneWidthUpscaleDialer
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.
For the load-decals - button.
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
For the save-decals - button.
#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.
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 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.
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.
Cancel-button was pushed.
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
FXComboBox * myContainerColorMode
GUIVisualizationSizeSettings poiSize
~GUIDialog_ViewSettings()
Destructor.
NamePanel * myTLIndexPanel
#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 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()
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
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.
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)
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.
NamePanel * myJunctionIndexPanel
FXCheckButton * myPersonColorInterpolation
Informs the dialog about switching to another scheme.
#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
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.
int getLaneEdgeScaleMode() const
Returns the number of the active lane (edge) scaling schme.
GUIVisualizationSizeSettings getSettings()
int vehicleQuality
The quality of vehicle drawing.
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
SizePanel * myContainerSizePanel
std::vector< FXRealSpinDial * > myJunctionThresholds
FXCheckButton * myContainerColorInterpolation
GUIScaler laneScaler
The lane scaler.
#define GUIDesignViewSettingsSpinDial2
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
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