SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GUIVisualizationSettings.cpp
Go to the documentation of this file.
1 /****************************************************************************/
9 // Stores the information about how to visualize structures
10 /****************************************************************************/
11 // SUMO, Simulation of Urban MObility; see http://sumo-sim.org/
12 // Copyright (C) 2001-2013 DLR (http://www.dlr.de/) and contributors
13 /****************************************************************************/
14 //
15 // This file is part of SUMO.
16 // SUMO is free software: you can redistribute it and/or modify
17 // it under the terms of the GNU General Public License as published by
18 // the Free Software Foundation, either version 3 of the License, or
19 // (at your option) any later version.
20 //
21 /****************************************************************************/
22 
23 
24 // ===========================================================================
25 // included modules
26 // ===========================================================================
27 #ifdef _MSC_VER
28 #include <windows_config.h>
29 #else
30 #include <config.h>
31 #endif
32 
33 #include <map>
34 #include <vector>
36 #include "GUIColorScheme.h"
37 
38 #ifdef CHECK_MEMORY_LEAKS
39 #include <foreign/nvwa/debug_new.h>
40 #endif // CHECK_MEMORY_LEAKS
41 
42 // ===========================================================================
43 // static members
44 // ===========================================================================
45 #ifdef HAVE_INTERNAL
46 bool GUIVisualizationSettings::UseMesoSim = false;
47 #endif
48 
49 // ===========================================================================
50 // member method definitions
51 // ===========================================================================
53  : name(""), antialiase(false), dither(false),
54  backgroundColor(RGBColor::WHITE),
55  showGrid(false), gridXSize(100), gridYSize(100),
56  laneShowBorders(false), showLinkDecals(true), showRails(true),
57  edgeName(false, 50, RGBColor(255, 128, 0, 255)),
58  internalEdgeName(false, 40, RGBColor(128, 64, 0, 255)),
59  streetName(false, 55, RGBColor::YELLOW),
60  hideConnectors(false), laneWidthExaggeration(1),
61  vehicleQuality(0), minVehicleSize(1), vehicleExaggeration(1), showBlinker(true),
62  drawLaneChangePreference(false), drawMinGap(false),
63  vehicleName(false, 50, RGBColor(204, 153, 0, 255)),
64  personQuality(0), minPersonSize(1), personExaggeration(1),
65  personName(false, 50, RGBColor(0, 153, 204, 255)),
66  drawLinkTLIndex(false), drawLinkJunctionIndex(false),
67  junctionName(false, 50, RGBColor(0, 255, 128, 255)),
68  internalJunctionName(false, 50, RGBColor(0, 204, 128, 255)),
69  showLane2Lane(false), addMode(0), minAddSize(1), addExaggeration(1),
70  addName(false, 50, RGBColor(255, 0, 128, 255)),
71  minPOISize(0), poiExaggeration(1), poiName(false, 50, RGBColor(255, 0, 128, 255)),
72  minPolySize(0), polyExaggeration(1), polyName(false, 50, RGBColor(255, 0, 128, 255)),
73  showSizeLegend(true),
74  gaming(false),
75  selectionScale(1) {
77  GUIColorScheme scheme = GUIColorScheme("uniform", RGBColor::BLACK, "", true);
78  laneColorer.addScheme(scheme);
79  scheme = GUIColorScheme("by selection (lane-/streetwise)", RGBColor(179, 179, 179, 255), "unselected", true);
80  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
81  laneColorer.addScheme(scheme);
82  scheme = GUIColorScheme("by vclass", RGBColor::BLACK, "all", true);
83  scheme.addColor(RGBColor(0, 26, 128, 255), 1, "public");
84  laneColorer.addScheme(scheme);
85  // ... traffic states ...
86  scheme = GUIColorScheme("by allowed speed (lanewise)", RGBColor::RED);
87  scheme.addColor(RGBColor::BLUE, (SUMOReal)(150.0 / 3.6));
88  laneColorer.addScheme(scheme);
89  scheme = GUIColorScheme("by current occupancy (lanewise)", RGBColor::BLUE);
90  scheme.addColor(RGBColor::RED, (SUMOReal)0.95);
91  laneColorer.addScheme(scheme);
92  scheme = GUIColorScheme("by first vehicle waiting time (lanewise)", RGBColor::GREEN);
93  scheme.addColor(RGBColor::RED, (SUMOReal)200);
94  laneColorer.addScheme(scheme);
95  scheme = GUIColorScheme("by lane number (streetwise)", RGBColor::RED);
96  scheme.addColor(RGBColor::BLUE, (SUMOReal)5);
97  laneColorer.addScheme(scheme);
98  // ... emissions ...
99  scheme = GUIColorScheme("by CO2 emissions (HBEFA)", RGBColor::GREEN);
100  scheme.addColor(RGBColor::RED, (SUMOReal)(10. / 7.5 / 5.));
101  laneColorer.addScheme(scheme);
102  scheme = GUIColorScheme("by CO emissions (HBEFA)", RGBColor::GREEN);
103  scheme.addColor(RGBColor::RED, (SUMOReal)(0.05 / 7.5 / 2.));
104  laneColorer.addScheme(scheme);
105  scheme = GUIColorScheme("by PMx emissions (HBEFA)", RGBColor::GREEN);
106  scheme.addColor(RGBColor::RED, (SUMOReal)(.005 / 7.5 / 5.));
107  laneColorer.addScheme(scheme);
108  scheme = GUIColorScheme("by NOx emissions (HBEFA)", RGBColor::GREEN);
109  scheme.addColor(RGBColor::RED, (SUMOReal)(.125 / 7.5 / 5.));
110  laneColorer.addScheme(scheme);
111  scheme = GUIColorScheme("by HC emissions (HBEFA)", RGBColor::GREEN);
112  scheme.addColor(RGBColor::RED, (SUMOReal)(.02 / 7.5 / 4.));
113  laneColorer.addScheme(scheme);
114  scheme = GUIColorScheme("by fuel consumption (HBEFA)", RGBColor::GREEN);
115  scheme.addColor(RGBColor::RED, (SUMOReal)(.005 / 7.5 * 100.));
116  laneColorer.addScheme(scheme);
117  scheme = GUIColorScheme("by noise emissions (Harmonoise)", RGBColor::GREEN);
118  scheme.addColor(RGBColor::RED, (SUMOReal)100);
119  laneColorer.addScheme(scheme);
120  // ... weights (experimental) ...
121  scheme = GUIColorScheme("by global travel time", RGBColor::GREEN);
122  scheme.addColor(RGBColor::RED, (SUMOReal)100);
123  scheme.setAllowsNegativeValues(true);
124  laneColorer.addScheme(scheme);
125  scheme = GUIColorScheme("by global speed percentage", RGBColor::RED);
126  scheme.addColor(RGBColor::YELLOW, (SUMOReal)50);
127  scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
128  scheme.setAllowsNegativeValues(true);
129  laneColorer.addScheme(scheme);
130  scheme = GUIColorScheme("by given length/geometrical length", RGBColor::BLACK);
131  scheme.addColor(RGBColor::RED, (SUMOReal)0.25);
132  scheme.addColor(RGBColor::YELLOW, (SUMOReal)0.5);
133  scheme.addColor(RGBColor(179, 179, 179, 255), (SUMOReal)1.0);
134  scheme.addColor(RGBColor::GREEN, (SUMOReal)2.0);
135  scheme.addColor(RGBColor::BLUE, (SUMOReal)4.0);
136  laneColorer.addScheme(scheme);
137 
138 
140  vehicleColorer.addScheme(GUIColorScheme("given vehicle/type/route color", RGBColor::YELLOW, "", true));
142  vehicleColorer.addScheme(GUIColorScheme("given/assigned vehicle color", RGBColor::YELLOW, "", true));
143  vehicleColorer.addScheme(GUIColorScheme("given/assigned type color", RGBColor::YELLOW, "", true));
144  vehicleColorer.addScheme(GUIColorScheme("given/assigned route color", RGBColor::YELLOW, "", true));
145  vehicleColorer.addScheme(GUIColorScheme("depart position as HSV", RGBColor::YELLOW, "", true));
146  vehicleColorer.addScheme(GUIColorScheme("arrival position as HSV", RGBColor::YELLOW, "", true));
147  vehicleColorer.addScheme(GUIColorScheme("direction/distance as HSV", RGBColor::YELLOW, "", true));
148  scheme = GUIColorScheme("by speed", RGBColor::RED);
149  scheme.addColor(RGBColor::BLUE, (SUMOReal)(150.0 / 3.6));
150  vehicleColorer.addScheme(scheme);
151  scheme = GUIColorScheme("by waiting time", RGBColor::BLUE);
152  scheme.addColor(RGBColor::RED, (SUMOReal)(5 * 60));
153  vehicleColorer.addScheme(scheme);
154  scheme = GUIColorScheme("by time since last lanechange", RGBColor::WHITE);
155  scheme.addColor(RGBColor::GREY, (SUMOReal)(5 * 60));
156  vehicleColorer.addScheme(scheme);
157  scheme = GUIColorScheme("by max speed", RGBColor::RED);
158  scheme.addColor(RGBColor::BLUE, (SUMOReal)(150.0 / 3.6));
159  vehicleColorer.addScheme(scheme);
160  // ... emissions ...
161  scheme = GUIColorScheme("by CO2 emissions (HBEFA)", RGBColor::GREEN);
162  scheme.addColor(RGBColor::RED, (SUMOReal)5.);
163  vehicleColorer.addScheme(scheme);
164  scheme = GUIColorScheme("by CO emissions (HBEFA)", RGBColor::GREEN);
165  scheme.addColor(RGBColor::RED, (SUMOReal)0.05);
166  vehicleColorer.addScheme(scheme);
167  scheme = GUIColorScheme("by PMx emissions (HBEFA)", RGBColor::GREEN);
168  scheme.addColor(RGBColor::RED, (SUMOReal).005);
169  vehicleColorer.addScheme(scheme);
170  scheme = GUIColorScheme("by NOx emissions (HBEFA)", RGBColor::GREEN);
171  scheme.addColor(RGBColor::RED, (SUMOReal).125);
172  vehicleColorer.addScheme(scheme);
173  scheme = GUIColorScheme("by HC emissions (HBEFA)", RGBColor::GREEN);
174  scheme.addColor(RGBColor::RED, (SUMOReal).02);
175  vehicleColorer.addScheme(scheme);
176  scheme = GUIColorScheme("by fuel consumption (HBEFA)", RGBColor::GREEN);
177  scheme.addColor(RGBColor::RED, (SUMOReal).005);
178  vehicleColorer.addScheme(scheme);
179  scheme = GUIColorScheme("by noise emissions (Harmonoise)", RGBColor::GREEN);
180  scheme.addColor(RGBColor::RED, (SUMOReal)100.);
181  vehicleColorer.addScheme(scheme);
182  scheme = GUIColorScheme("by reroute number", RGBColor::RED);
183  scheme.addColor(RGBColor::YELLOW, (SUMOReal)1.);
184  scheme.addColor(RGBColor::WHITE, (SUMOReal)10.);
185  vehicleColorer.addScheme(scheme);
186  scheme = GUIColorScheme("by selection", RGBColor(179, 179, 179, 255), "unselected", true);
187  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
188  vehicleColorer.addScheme(scheme);
189 
191  personColorer.addScheme(GUIColorScheme("given person/type color", RGBColor::YELLOW, "", true));
193  personColorer.addScheme(GUIColorScheme("given/assigned person color", RGBColor::YELLOW, "", true));
194  personColorer.addScheme(GUIColorScheme("given/assigned type color", RGBColor::YELLOW, "", true));
195  scheme = GUIColorScheme("by mode", RGBColor::YELLOW); // walking
196  scheme.addColor(RGBColor::BLUE, (SUMOReal)(1)); // riding
197  scheme.addColor(RGBColor::RED, (SUMOReal)(2)); // stopped
198  scheme.addColor(RGBColor::GREEN, (SUMOReal)(3)); // waiting for ride
199  personColorer.addScheme(scheme);
200  scheme = GUIColorScheme("by waiting time", RGBColor::BLUE);
201  scheme.addColor(RGBColor::RED, (SUMOReal)(5 * 60));
202  personColorer.addScheme(scheme);
203 
204 
205 #ifdef HAVE_INTERNAL
206  edgeColorer.addScheme(GUIColorScheme("uniform (streetwise)", RGBColor::BLACK, "", true));
208  scheme = GUIColorScheme("by selection (streetwise)", RGBColor(179, 179, 179, 255), "unselected", true);
209  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
210  edgeColorer.addScheme(scheme);
211  scheme = GUIColorScheme("by purpose (streetwise)", RGBColor(), "normal", true);
212  scheme.addColor(RGBColor(128, 0, 128, 255), 1, "connector"); // see MSEdge::EdgeBasicFunction::EDGEFUNCTION_CONNECTOR
213  scheme.addColor(RGBColor::BLUE, 2, "internal"); // see MSEdge::EdgeBasicFunction::EDGEFUNCTION_INTERNAL
214  edgeColorer.addScheme(scheme);
215  scheme = GUIColorScheme("by allowed speed (streetwise)", RGBColor::RED);
216  scheme.addColor(RGBColor::BLUE, (SUMOReal)(150.0 / 3.6));
217  edgeColorer.addScheme(scheme);
218  scheme = GUIColorScheme("by current occupancy (streetwise)", RGBColor::BLUE);
219  scheme.addColor(RGBColor::RED, (SUMOReal)0.95);
220  edgeColorer.addScheme(scheme);
221  scheme = GUIColorScheme("by current speed (streetwise)", RGBColor::RED);
222  scheme.addColor(RGBColor::BLUE, (SUMOReal)(150.0 / 3.6));
223  edgeColorer.addScheme(scheme);
224  scheme = GUIColorScheme("by current flow (streetwise)", RGBColor::BLUE);
225  scheme.addColor(RGBColor::RED, (SUMOReal)5000);
226  edgeColorer.addScheme(scheme);
227  scheme = GUIColorScheme("by relative speed (streetwise)", RGBColor::RED);
228  scheme.addColor(RGBColor::BLUE, (SUMOReal)1);
229  edgeColorer.addScheme(scheme);
230 #endif
231 
233  scheme = GUIColorScheme("by selection", RGBColor(179, 179, 179, 255), "unselected", true);
234  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
235  junctionColorer.addScheme(scheme);
236 }
237 
238 
239 size_t
241 #ifdef HAVE_INTERNAL
242  if (UseMesoSim) {
243  return edgeColorer.getActive();
244  }
245 #endif
246  return laneColorer.getActive();
247 }
248 
249 
252 #ifdef HAVE_INTERNAL
253  if (UseMesoSim) {
254  return edgeColorer.getScheme();
255  }
256 #endif
257  return laneColorer.getScheme();
258 }
259 
260 
261 void
263  dev << "<viewsettings>\n";
264  dev << " <scheme name=\"" << name << "\">\n";
265  dev << " <opengl antialiase=\"" << antialiase << "\" dither=\"" << dither << "\"/>\n";
266  dev << " <background backgroundColor=\"" << backgroundColor << "\"\n"
267  << " showGrid=\"" << showGrid
268  << "\" gridXSize=\"" << gridXSize << "\" gridYSize=\"" << gridYSize << "\"/>\n";
269  dev << " <edges laneEdgeMode=\"" << getLaneEdgeMode()
270  << "\" laneShowBorders=\"" << laneShowBorders
271  << "\" showLinkDecals=\"" << showLinkDecals
272  << "\" showRails=\"" << showRails
273  << "\" hideConnectors=\"" << hideConnectors << "\"\n"
274  << " " << edgeName.print("edgeName") << "\n"
275  << " " << internalEdgeName.print("internalEdgeName") << "\n"
276  << " " << streetName.print("streetName") << ">\n";
277  laneColorer.save(dev);
278 #ifdef HAVE_INTERNAL
279  edgeColorer.save(dev);
280 #endif
281  dev << " </edges>\n";
282 
283  dev << " <vehicles vehicleMode=\"" << vehicleColorer.getActive()
284  << "\" vehicleQuality=\"" << vehicleQuality
285  << "\" minVehicleSize=\"" << minVehicleSize
286  << "\" vehicleExaggeration=\"" << vehicleExaggeration
287  << "\" showBlinker=\"" << showBlinker << "\"\n"
288  << " " << vehicleName.print("vehicleName")
289  << ">\n";
290  vehicleColorer.save(dev);
291  dev << " </vehicles>\n";
292  dev << " <persons personMode=\"" << personColorer.getActive()
293  << "\" personQuality=\"" << personQuality
294  << "\" minPersonSize=\"" << minPersonSize
295  << "\" personExaggeration=\"" << personExaggeration
296  << " " << personName.print("personName")
297  << ">\n";
298  personColorer.save(dev);
299  dev << " </persons>\n";
300 
301  dev << " <junctions junctionMode=\"" << junctionColorer.getActive()
302  << "\" drawLinkTLIndex=\"" << drawLinkTLIndex
303  << "\" drawLinkJunctionIndex=\"" << drawLinkJunctionIndex << "\"\n"
304  << " " << junctionName.print("junctionName") << "\n"
305  << " " << internalJunctionName.print("internalJunctionName") << "\n"
306  << " showLane2Lane=\"" << showLane2Lane << "\">\n";
307  junctionColorer.save(dev);
308  dev << " </junctions>\n";
309 
310  dev << " <additionals addMode=\"" << addMode
311  << "\" minAddSize=\"" << minAddSize
312  << "\" addExaggeration=\"" << addExaggeration << "\"\n"
313  << " " << addName.print("addName")
314  << "/>\n";
315 
316  dev << " <pois poiExaggeration=\"" << poiExaggeration
317  << "\" minPOISize=\"" << minPOISize << "\"\n"
318  << " " << poiName.print("poiName")
319  << "/>\n";
320 
321  dev << " <polys polyExaggeration=\"" << polyExaggeration
322  << "\" minPolySize=\"" << minPolySize << "\"\n"
323  << " " << polyName.print("polyName")
324  << "/>\n";
325 
326  dev << " <legend showSizeLegend=\"" << showSizeLegend << "\"/>\n";
327  dev << " </scheme>\n";
328  dev << "</viewsettings>\n";
329 }
330 
331 
332 bool
334  if (antialiase != v2.antialiase) {
335  return false;
336  }
337  if (dither != v2.dither) {
338  return false;
339  }
340  if (backgroundColor != v2.backgroundColor) {
341  return false;
342  }
343  if (showGrid != v2.showGrid) {
344  return false;
345  }
346  if (gridXSize != v2.gridXSize) {
347  return false;
348  }
349  if (gridYSize != v2.gridYSize) {
350  return false;
351  }
352 
353 #ifdef HAVE_INTERNAL
354  if (!(edgeColorer == v2.edgeColorer)) {
355  return false;
356  }
357 #endif
358  if (!(laneColorer == v2.laneColorer)) {
359  return false;
360  }
361  if (laneShowBorders != v2.laneShowBorders) {
362  return false;
363  }
364  if (showLinkDecals != v2.showLinkDecals) {
365  return false;
366  }
367  if (showRails != v2.showRails) {
368  return false;
369  }
370  if (edgeName != v2.edgeName) {
371  return false;
372  }
374  return false;
375  }
376  if (streetName != v2.streetName) {
377  return false;
378  }
379  if (hideConnectors != v2.hideConnectors) {
380  return false;
381  }
383  return false;
384  }
385  if (!(vehicleColorer == v2.vehicleColorer)) {
386  return false;
387  }
388  if (vehicleQuality != v2.vehicleQuality) {
389  return false;
390  }
391  if (minVehicleSize != v2.minVehicleSize) {
392  return false;
393  }
395  return false;
396  }
397  if (showBlinker != v2.showBlinker) {
398  return false;
399  }
401  return false;
402  }
403  if (drawMinGap != v2.drawMinGap) {
404  return false;
405  }
406  if (vehicleName != v2.vehicleName) {
407  return false;
408  }
409  if (!(personColorer == v2.personColorer)) {
410  return false;
411  }
412  if (personQuality != v2.personQuality) {
413  return false;
414  }
415  if (minPersonSize != v2.minPersonSize) {
416  return false;
417  }
419  return false;
420  }
421  if (personName != v2.personName) {
422  return false;
423  }
424  if (!(junctionColorer == v2.junctionColorer)) {
425  return false;
426  }
427  if (drawLinkTLIndex != v2.drawLinkTLIndex) {
428  return false;
429  }
431  return false;
432  }
433  if (junctionName != v2.junctionName) {
434  return false;
435  }
437  return false;
438  }
439 
440  if (showLane2Lane != v2.showLane2Lane) {
441  return false;
442  }
443 
444  if (addMode != v2.addMode) {
445  return false;
446  }
447  if (minAddSize != v2.minAddSize) {
448  return false;
449  }
450  if (addExaggeration != v2.addExaggeration) {
451  return false;
452  }
453  if (addName != v2.addName) {
454  return false;
455  }
456 
457  if (minPOISize != v2.minPOISize) {
458  return false;
459  }
460  if (poiExaggeration != v2.poiExaggeration) {
461  return false;
462  }
463  if (poiName != v2.poiName) {
464  return false;
465  }
466 
467  if (minPolySize != v2.minPolySize) {
468  return false;
469  }
471  return false;
472  }
473  if (polyName != v2.polyName) {
474  return false;
475  }
476 
477  if (showSizeLegend != v2.showSizeLegend) {
478  return false;
479  }
480 
481  return true;
482 }
483 
484 
485 
486 /****************************************************************************/
487 
float vehicleExaggeration
The vehicle exaggeration (upscale)
GUIVisualizationTextSettings junctionName
static const RGBColor BLUE
Definition: RGBColor.h:190
bool showSizeLegend
Information whether the size legend shall be drawn.
GUIVisualizationTextSettings streetName
float laneWidthExaggeration
The lane exaggeration (upscale thickness)
size_t getLaneEdgeMode() const
Returns the number of the active lane (edge) coloring schme.
bool showBlinker
Information whether vehicle blinkers shall be drawn.
GUIVisualizationTextSettings addName
std::string print(const std::string &name) const
GUIVisualizationTextSettings personName
float minAddSize
The minimum size of additional structures to let them be drawn.
bool drawLinkTLIndex
Information whether a link&#39;s tls index shall be drawn.
GUIVisualizationTextSettings poiName
static const RGBColor WHITE
Definition: RGBColor.h:194
GUIColorScheme & getLaneEdgeScheme()
Returns the current lane (edge) coloring schme.
float polyExaggeration
The additional shapes (upscale)
GUIColorer laneColorer
The lane colorer.
Stores the information about how to visualize structures.
float poiExaggeration
The additional shapes (upscale)
bool drawLaneChangePreference
Information whether the lane change preference shall be drawn.
bool showRails
Information whether rails shall be drawn.
GUIVisualizationTextSettings vehicleName
void addScheme(GUIColorScheme scheme)
Definition: GUIColorer.h:104
bool operator==(const GUIVisualizationSettings &vs2)
Assignment operator.
bool laneShowBorders
Information whether lane borders shall be drawn.
static const RGBColor BLACK
Definition: RGBColor.h:195
bool dither
Information whether dithering shall be enabled.
float personExaggeration
The person exaggeration (upscale)
size_t getActive() const
Definition: GUIColorer.h:72
GUIColorer vehicleColorer
The vehicle colorer.
GUIVisualizationTextSettings edgeName
static const RGBColor GREEN
Definition: RGBColor.h:189
static const RGBColor GREY
Definition: RGBColor.h:196
std::string name
The name of this setting.
float addExaggeration
The additional structures exaggeration (upscale)
GUIVisualizationTextSettings internalEdgeName
bool drawMinGap
Information whether the minimum gap shall be drawn.
int addMode
The additional structures visualization scheme.
GUIColorer personColorer
The person colorer.
GUIVisualizationTextSettings internalJunctionName
GUIColorer junctionColorer
The junction colorer.
void setAllowsNegativeValues(bool value)
SUMOReal gridXSize
Information about the grid spacings.
RGBColor backgroundColor
The background color to use.
bool antialiase
Information whether antialiase shall be enabled.
float minPOISize
The minimum size of shapes to let them be drawn.
static const RGBColor YELLOW
Definition: RGBColor.h:191
static const RGBColor RED
Definition: RGBColor.h:188
float minPersonSize
The minimum size of persons to let them be drawn.
bool showLinkDecals
Information whether link textures (arrows) shall be drawn.
GUIColorScheme & getScheme()
Definition: GUIColorer.h:76
unsigned int addColor(const RGBColor &color, const SUMOReal threshold, const std::string &name="")
bool drawLinkJunctionIndex
Information whether a link&#39;s junction index shall be drawn.
int personQuality
The quality of person drawing.
bool showGrid
Information whether a grid shall be shown.
float minVehicleSize
The minimum size of vehicles to let them be drawn.
bool showLane2Lane
Information whether lane-to-lane arrows shall be drawn.
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:70
#define SUMOReal
Definition: config.h:221
void save(OutputDevice &dev) const
Writes the settings into an output device.
int vehicleQuality
The quality of vehicle drawing.
void save(OutputDevice &dev) const
Definition: GUIColorer.h:93
float minPolySize
The minimum size of shapes to let them be drawn.
GUIVisualizationTextSettings polyName