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, brutto)", RGBColor::BLUE);
90  scheme.addColor(RGBColor::RED, (SUMOReal)0.95);
91  laneColorer.addScheme(scheme);
92  scheme = GUIColorScheme("by current occupancy (lanewise, netto)", RGBColor::BLUE);
93  scheme.addColor(RGBColor::RED, (SUMOReal)0.95);
94  laneColorer.addScheme(scheme);
95  scheme = GUIColorScheme("by first vehicle waiting time (lanewise)", RGBColor::BLUE);
96  scheme.addColor(RGBColor::CYAN, (SUMOReal)30);
97  scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
98  scheme.addColor(RGBColor::YELLOW, (SUMOReal)200);
99  scheme.addColor(RGBColor::RED, (SUMOReal)300);
100  laneColorer.addScheme(scheme);
101  scheme = GUIColorScheme("by lane number (streetwise)", RGBColor::RED);
102  scheme.addColor(RGBColor::BLUE, (SUMOReal)5);
103  laneColorer.addScheme(scheme);
104  // ... emissions ...
105  scheme = GUIColorScheme("by CO2 emissions (HBEFA)", RGBColor::GREEN);
106  scheme.addColor(RGBColor::RED, (SUMOReal)(10. / 7.5 / 5.));
107  laneColorer.addScheme(scheme);
108  scheme = GUIColorScheme("by CO emissions (HBEFA)", RGBColor::GREEN);
109  scheme.addColor(RGBColor::RED, (SUMOReal)(0.05 / 7.5 / 2.));
110  laneColorer.addScheme(scheme);
111  scheme = GUIColorScheme("by PMx emissions (HBEFA)", RGBColor::GREEN);
112  scheme.addColor(RGBColor::RED, (SUMOReal)(.005 / 7.5 / 5.));
113  laneColorer.addScheme(scheme);
114  scheme = GUIColorScheme("by NOx emissions (HBEFA)", RGBColor::GREEN);
115  scheme.addColor(RGBColor::RED, (SUMOReal)(.125 / 7.5 / 5.));
116  laneColorer.addScheme(scheme);
117  scheme = GUIColorScheme("by HC emissions (HBEFA)", RGBColor::GREEN);
118  scheme.addColor(RGBColor::RED, (SUMOReal)(.02 / 7.5 / 4.));
119  laneColorer.addScheme(scheme);
120  scheme = GUIColorScheme("by fuel consumption (HBEFA)", RGBColor::GREEN);
121  scheme.addColor(RGBColor::RED, (SUMOReal)(.005 / 7.5 * 100.));
122  laneColorer.addScheme(scheme);
123  scheme = GUIColorScheme("by noise emissions (Harmonoise)", RGBColor::GREEN);
124  scheme.addColor(RGBColor::RED, (SUMOReal)100);
125  laneColorer.addScheme(scheme);
126  // ... weights (experimental) ...
127  scheme = GUIColorScheme("by global travel time", RGBColor::GREEN);
128  scheme.addColor(RGBColor::RED, (SUMOReal)100);
129  scheme.setAllowsNegativeValues(true);
130  laneColorer.addScheme(scheme);
131  scheme = GUIColorScheme("by global speed percentage", RGBColor::RED);
132  scheme.addColor(RGBColor::YELLOW, (SUMOReal)50);
133  scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
134  scheme.setAllowsNegativeValues(true);
135  laneColorer.addScheme(scheme);
136  scheme = GUIColorScheme("by given length/geometrical length", RGBColor::BLACK);
137  scheme.addColor(RGBColor::RED, (SUMOReal)0.25);
138  scheme.addColor(RGBColor::YELLOW, (SUMOReal)0.5);
139  scheme.addColor(RGBColor(179, 179, 179, 255), (SUMOReal)1.0);
140  scheme.addColor(RGBColor::GREEN, (SUMOReal)2.0);
141  scheme.addColor(RGBColor::BLUE, (SUMOReal)4.0);
142  laneColorer.addScheme(scheme);
143 
144 
146  vehicleColorer.addScheme(GUIColorScheme("given vehicle/type/route color", RGBColor::YELLOW, "", true));
148  vehicleColorer.addScheme(GUIColorScheme("given/assigned vehicle color", RGBColor::YELLOW, "", true));
149  vehicleColorer.addScheme(GUIColorScheme("given/assigned type color", RGBColor::YELLOW, "", true));
150  vehicleColorer.addScheme(GUIColorScheme("given/assigned route color", RGBColor::YELLOW, "", true));
151  vehicleColorer.addScheme(GUIColorScheme("depart position as HSV", RGBColor::YELLOW, "", true));
152  vehicleColorer.addScheme(GUIColorScheme("arrival position as HSV", RGBColor::YELLOW, "", true));
153  vehicleColorer.addScheme(GUIColorScheme("direction/distance as HSV", RGBColor::YELLOW, "", true));
154  scheme = GUIColorScheme("by speed", RGBColor::RED);
155  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(30 / 3.6));
156  scheme.addColor(RGBColor::GREEN, (SUMOReal)(55 / 3.6));
157  scheme.addColor(RGBColor::CYAN, (SUMOReal)(80 / 3.6));
158  scheme.addColor(RGBColor::BLUE, (SUMOReal)(120 / 3.6));
159  scheme.addColor(RGBColor::BLACK, (SUMOReal)(150 / 3.6));
160  vehicleColorer.addScheme(scheme);
161  scheme = GUIColorScheme("by waiting time", RGBColor::BLUE);
162  scheme.addColor(RGBColor::CYAN, (SUMOReal)30);
163  scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
164  scheme.addColor(RGBColor::YELLOW, (SUMOReal)200);
165  scheme.addColor(RGBColor::RED, (SUMOReal)300);
166  vehicleColorer.addScheme(scheme);
167  scheme = GUIColorScheme("by time since last lanechange", RGBColor::WHITE);
168  scheme.addColor(RGBColor::GREY, (SUMOReal)(5 * 60));
169  vehicleColorer.addScheme(scheme);
170  scheme = GUIColorScheme("by max speed", RGBColor::RED);
171  scheme.addColor(RGBColor::BLUE, (SUMOReal)(150.0 / 3.6));
172  vehicleColorer.addScheme(scheme);
173  // ... emissions ...
174  scheme = GUIColorScheme("by CO2 emissions (HBEFA)", RGBColor::GREEN);
175  scheme.addColor(RGBColor::RED, (SUMOReal)5.);
176  vehicleColorer.addScheme(scheme);
177  scheme = GUIColorScheme("by CO emissions (HBEFA)", RGBColor::GREEN);
178  scheme.addColor(RGBColor::RED, (SUMOReal)0.05);
179  vehicleColorer.addScheme(scheme);
180  scheme = GUIColorScheme("by PMx emissions (HBEFA)", RGBColor::GREEN);
181  scheme.addColor(RGBColor::RED, (SUMOReal).005);
182  vehicleColorer.addScheme(scheme);
183  scheme = GUIColorScheme("by NOx emissions (HBEFA)", RGBColor::GREEN);
184  scheme.addColor(RGBColor::RED, (SUMOReal).125);
185  vehicleColorer.addScheme(scheme);
186  scheme = GUIColorScheme("by HC emissions (HBEFA)", RGBColor::GREEN);
187  scheme.addColor(RGBColor::RED, (SUMOReal).02);
188  vehicleColorer.addScheme(scheme);
189  scheme = GUIColorScheme("by fuel consumption (HBEFA)", RGBColor::GREEN);
190  scheme.addColor(RGBColor::RED, (SUMOReal).005);
191  vehicleColorer.addScheme(scheme);
192  scheme = GUIColorScheme("by noise emissions (Harmonoise)", RGBColor::GREEN);
193  scheme.addColor(RGBColor::RED, (SUMOReal)100.);
194  vehicleColorer.addScheme(scheme);
195  scheme = GUIColorScheme("by reroute number", RGBColor::RED);
196  scheme.addColor(RGBColor::YELLOW, (SUMOReal)1.);
197  scheme.addColor(RGBColor::WHITE, (SUMOReal)10.);
198  vehicleColorer.addScheme(scheme);
199  scheme = GUIColorScheme("by selection", RGBColor(179, 179, 179, 255), "unselected", true);
200  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
201  vehicleColorer.addScheme(scheme);
202  scheme = GUIColorScheme("by offset from best lane", RGBColor(179, 179, 179, 255), "0");
203  scheme.addColor(RGBColor(255, 0, 0, 255), -3, "-3");
204  scheme.addColor(RGBColor(255, 255, 0, 255), -1, "-1");
205  scheme.addColor(RGBColor(0, 255, 255, 255), 1, "1");
206  scheme.addColor(RGBColor(0, 0, 255, 255), 3, "3");
207  vehicleColorer.addScheme(scheme);
208  scheme = GUIColorScheme("by acceleration", RGBColor(179, 179, 179, 255), "0");
209  scheme.addColor(RGBColor(255, 0, 0, 255), -DEFAULT_VEH_DECEL);
210  scheme.addColor(RGBColor(255, 255, 0, 255), -0.1);
211  scheme.addColor(RGBColor(0, 255, 255, 255), 0.1);
212  scheme.addColor(RGBColor(0, 0, 255, 255), DEFAULT_VEH_ACCEL);
213  vehicleColorer.addScheme(scheme);
214 
216  personColorer.addScheme(GUIColorScheme("given person/type color", RGBColor::YELLOW, "", true));
218  personColorer.addScheme(GUIColorScheme("given/assigned person color", RGBColor::YELLOW, "", true));
219  personColorer.addScheme(GUIColorScheme("given/assigned type color", RGBColor::YELLOW, "", true));
220  scheme = GUIColorScheme("by mode", RGBColor::YELLOW); // walking
221  scheme.addColor(RGBColor::BLUE, (SUMOReal)(1)); // riding
222  scheme.addColor(RGBColor::RED, (SUMOReal)(2)); // stopped
223  scheme.addColor(RGBColor::GREEN, (SUMOReal)(3)); // waiting for ride
224  personColorer.addScheme(scheme);
225  scheme = GUIColorScheme("by waiting time", RGBColor::BLUE);
226  scheme.addColor(RGBColor::RED, (SUMOReal)(5 * 60));
227  personColorer.addScheme(scheme);
228 
229 
230 #ifdef HAVE_INTERNAL
231  edgeColorer.addScheme(GUIColorScheme("uniform (streetwise)", RGBColor::BLACK, "", true));
233  scheme = GUIColorScheme("by selection (streetwise)", RGBColor(179, 179, 179, 255), "unselected", true);
234  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
235  edgeColorer.addScheme(scheme);
236  scheme = GUIColorScheme("by purpose (streetwise)", RGBColor(), "normal", true);
237  scheme.addColor(RGBColor(128, 0, 128, 255), 1, "connector"); // see MSEdge::EdgeBasicFunction::EDGEFUNCTION_CONNECTOR
238  scheme.addColor(RGBColor::BLUE, 2, "internal"); // see MSEdge::EdgeBasicFunction::EDGEFUNCTION_INTERNAL
239  edgeColorer.addScheme(scheme);
240  scheme = GUIColorScheme("by allowed speed (streetwise)", RGBColor::RED);
241  scheme.addColor(RGBColor::BLUE, (SUMOReal)(150.0 / 3.6));
242  edgeColorer.addScheme(scheme);
243  scheme = GUIColorScheme("by current occupancy (streetwise)", RGBColor::BLUE);
244  scheme.addColor(RGBColor::RED, (SUMOReal)0.95);
245  edgeColorer.addScheme(scheme);
246  scheme = GUIColorScheme("by current speed (streetwise)", RGBColor::RED);
247  scheme.addColor(RGBColor::BLUE, (SUMOReal)(150.0 / 3.6));
248  edgeColorer.addScheme(scheme);
249  scheme = GUIColorScheme("by current flow (streetwise)", RGBColor::BLUE);
250  scheme.addColor(RGBColor::RED, (SUMOReal)5000);
251  edgeColorer.addScheme(scheme);
252  scheme = GUIColorScheme("by relative speed (streetwise)", RGBColor::RED);
253  scheme.addColor(RGBColor::BLUE, (SUMOReal)1);
254  edgeColorer.addScheme(scheme);
255 #endif
256 
258  scheme = GUIColorScheme("by selection", RGBColor(179, 179, 179, 255), "unselected", true);
259  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
260  junctionColorer.addScheme(scheme);
261 }
262 
263 
264 size_t
266 #ifdef HAVE_INTERNAL
267  if (UseMesoSim) {
268  return edgeColorer.getActive();
269  }
270 #endif
271  return laneColorer.getActive();
272 }
273 
274 
277 #ifdef HAVE_INTERNAL
278  if (UseMesoSim) {
279  return edgeColorer.getScheme();
280  }
281 #endif
282  return laneColorer.getScheme();
283 }
284 
285 
286 void
288  dev << "<viewsettings>\n";
289  dev << " <scheme name=\"" << name << "\">\n";
290  dev << " <opengl antialiase=\"" << antialiase << "\" dither=\"" << dither << "\"/>\n";
291  dev << " <background backgroundColor=\"" << backgroundColor << "\"\n"
292  << " showGrid=\"" << showGrid
293  << "\" gridXSize=\"" << gridXSize << "\" gridYSize=\"" << gridYSize << "\"/>\n";
294  dev << " <edges laneEdgeMode=\"" << getLaneEdgeMode()
295  << "\" laneShowBorders=\"" << laneShowBorders
296  << "\" showLinkDecals=\"" << showLinkDecals
297  << "\" showRails=\"" << showRails
298  << "\" hideConnectors=\"" << hideConnectors << "\"\n"
299  << " " << edgeName.print("edgeName") << "\n"
300  << " " << internalEdgeName.print("internalEdgeName") << "\n"
301  << " " << streetName.print("streetName") << ">\n";
302  laneColorer.save(dev);
303 #ifdef HAVE_INTERNAL
304  edgeColorer.save(dev);
305 #endif
306  dev << " </edges>\n";
307 
308  dev << " <vehicles vehicleMode=\"" << vehicleColorer.getActive()
309  << "\" vehicleQuality=\"" << vehicleQuality
310  << "\" minVehicleSize=\"" << minVehicleSize
311  << "\" vehicleExaggeration=\"" << vehicleExaggeration
312  << "\" showBlinker=\"" << showBlinker << "\"\n"
313  << " " << vehicleName.print("vehicleName")
314  << ">\n";
315  vehicleColorer.save(dev);
316  dev << " </vehicles>\n";
317  dev << " <persons personMode=\"" << personColorer.getActive()
318  << "\" personQuality=\"" << personQuality
319  << "\" minPersonSize=\"" << minPersonSize
320  << "\" personExaggeration=\"" << personExaggeration
321  << "\" " << personName.print("personName")
322  << ">\n";
323  personColorer.save(dev);
324  dev << " </persons>\n";
325 
326  dev << " <junctions junctionMode=\"" << junctionColorer.getActive()
327  << "\" drawLinkTLIndex=\"" << drawLinkTLIndex
328  << "\" drawLinkJunctionIndex=\"" << drawLinkJunctionIndex << "\"\n"
329  << " " << junctionName.print("junctionName") << "\n"
330  << " " << internalJunctionName.print("internalJunctionName") << "\n"
331  << " showLane2Lane=\"" << showLane2Lane << "\">\n";
332  junctionColorer.save(dev);
333  dev << " </junctions>\n";
334 
335  dev << " <additionals addMode=\"" << addMode
336  << "\" minAddSize=\"" << minAddSize
337  << "\" addExaggeration=\"" << addExaggeration << "\"\n"
338  << " " << addName.print("addName")
339  << "/>\n";
340 
341  dev << " <pois poiExaggeration=\"" << poiExaggeration
342  << "\" minPOISize=\"" << minPOISize << "\"\n"
343  << " " << poiName.print("poiName")
344  << "/>\n";
345 
346  dev << " <polys polyExaggeration=\"" << polyExaggeration
347  << "\" minPolySize=\"" << minPolySize << "\"\n"
348  << " " << polyName.print("polyName")
349  << "/>\n";
350 
351  dev << " <legend showSizeLegend=\"" << showSizeLegend << "\"/>\n";
352  dev << " </scheme>\n";
353  dev << "</viewsettings>\n";
354 }
355 
356 
357 bool
359  if (antialiase != v2.antialiase) {
360  return false;
361  }
362  if (dither != v2.dither) {
363  return false;
364  }
365  if (backgroundColor != v2.backgroundColor) {
366  return false;
367  }
368  if (showGrid != v2.showGrid) {
369  return false;
370  }
371  if (gridXSize != v2.gridXSize) {
372  return false;
373  }
374  if (gridYSize != v2.gridYSize) {
375  return false;
376  }
377 
378 #ifdef HAVE_INTERNAL
379  if (!(edgeColorer == v2.edgeColorer)) {
380  return false;
381  }
382 #endif
383  if (!(laneColorer == v2.laneColorer)) {
384  return false;
385  }
386  if (laneShowBorders != v2.laneShowBorders) {
387  return false;
388  }
389  if (showLinkDecals != v2.showLinkDecals) {
390  return false;
391  }
392  if (showRails != v2.showRails) {
393  return false;
394  }
395  if (edgeName != v2.edgeName) {
396  return false;
397  }
399  return false;
400  }
401  if (streetName != v2.streetName) {
402  return false;
403  }
404  if (hideConnectors != v2.hideConnectors) {
405  return false;
406  }
408  return false;
409  }
410  if (!(vehicleColorer == v2.vehicleColorer)) {
411  return false;
412  }
413  if (vehicleQuality != v2.vehicleQuality) {
414  return false;
415  }
416  if (minVehicleSize != v2.minVehicleSize) {
417  return false;
418  }
420  return false;
421  }
422  if (showBlinker != v2.showBlinker) {
423  return false;
424  }
426  return false;
427  }
428  if (drawMinGap != v2.drawMinGap) {
429  return false;
430  }
431  if (vehicleName != v2.vehicleName) {
432  return false;
433  }
434  if (!(personColorer == v2.personColorer)) {
435  return false;
436  }
437  if (personQuality != v2.personQuality) {
438  return false;
439  }
440  if (minPersonSize != v2.minPersonSize) {
441  return false;
442  }
444  return false;
445  }
446  if (personName != v2.personName) {
447  return false;
448  }
449  if (!(junctionColorer == v2.junctionColorer)) {
450  return false;
451  }
452  if (drawLinkTLIndex != v2.drawLinkTLIndex) {
453  return false;
454  }
456  return false;
457  }
458  if (junctionName != v2.junctionName) {
459  return false;
460  }
462  return false;
463  }
464 
465  if (showLane2Lane != v2.showLane2Lane) {
466  return false;
467  }
468 
469  if (addMode != v2.addMode) {
470  return false;
471  }
472  if (minAddSize != v2.minAddSize) {
473  return false;
474  }
475  if (addExaggeration != v2.addExaggeration) {
476  return false;
477  }
478  if (addName != v2.addName) {
479  return false;
480  }
481 
482  if (minPOISize != v2.minPOISize) {
483  return false;
484  }
485  if (poiExaggeration != v2.poiExaggeration) {
486  return false;
487  }
488  if (poiName != v2.poiName) {
489  return false;
490  }
491 
492  if (minPolySize != v2.minPolySize) {
493  return false;
494  }
496  return false;
497  }
498  if (polyName != v2.polyName) {
499  return false;
500  }
501 
502  if (showSizeLegend != v2.showSizeLegend) {
503  return false;
504  }
505 
506  return true;
507 }
508 
509 
510 
511 /****************************************************************************/
512 
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.
static const RGBColor CYAN
Definition: RGBColor.h:192
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.
const SUMOReal DEFAULT_VEH_ACCEL
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:70
#define SUMOReal
Definition: config.h:215
void save(OutputDevice &dev) const
Writes the settings into an output device.
int vehicleQuality
The quality of vehicle drawing.
const SUMOReal DEFAULT_VEH_DECEL
void save(OutputDevice &dev) const
Definition: GUIColorer.h:93
float minPolySize
The minimum size of shapes to let them be drawn.
GUIVisualizationTextSettings polyName