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