SUMO - Simulation of Urban MObility
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.dlr.de/
12 // Copyright (C) 2001-2016 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 "GUIPropertyScheme.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 // ===========================================================================
46 
47 // ===========================================================================
48 // member method definitions
49 // ===========================================================================
51  : name(""), antialiase(false), dither(false),
52  backgroundColor(RGBColor::WHITE),
53  showGrid(false), gridXSize(100), gridYSize(100),
54  laneShowBorders(false), showLinkDecals(true), showRails(true),
55  edgeName(false, 50, RGBColor(255, 128, 0, 255)),
56  internalEdgeName(false, 40, RGBColor(128, 64, 0, 255)),
57  cwaEdgeName(false, 50, RGBColor::MAGENTA),
58  streetName(false, 55, RGBColor::YELLOW),
59  hideConnectors(false), laneWidthExaggeration(1),
60  vehicleQuality(0), showBlinker(true),
61  drawLaneChangePreference(false), drawMinGap(false),
62  showBTRange(false), vehicleSize(1),
63  vehicleName(false, 50, RGBColor(204, 153, 0, 255)),
64  personQuality(0),
65  personSize(1),
66  personName(false, 50, RGBColor(0, 153, 204, 255)),
67  containerQuality(0),
68  containerSize(1),
69  containerName(false, 50, RGBColor(0, 153, 204, 255)),
70  drawLinkTLIndex(false, 50, RGBColor(128, 128, 255, 255)),
71  drawLinkJunctionIndex(false, 50, RGBColor(128, 128, 255, 255)),
72  junctionName(false, 50, RGBColor(0, 255, 128, 255)),
73  internalJunctionName(false, 50, RGBColor(0, 204, 128, 255)),
74  showLane2Lane(false),
75  drawJunctionShape(true),
76  drawCrossingsAndWalkingareas(true),
77  addMode(0),
78  addSize(1),
79  addName(false, 50, RGBColor(255, 0, 128, 255)),
80  poiSize(0), poiName(false, 50, RGBColor(255, 0, 128, 255)),
81  poiType(false, 50, RGBColor(255, 0, 128, 255)),
82  polySize(0), polyName(false, 50, RGBColor(255, 0, 128, 255)),
83  polyType(false, 50, RGBColor(255, 0, 128, 255)),
84  showSizeLegend(true),
85  gaming(false),
86  selectionScale(1),
87  drawForSelecting(false) {
89  GUIColorScheme scheme = GUIColorScheme("uniform", RGBColor::BLACK, "road", true);
90  scheme.addColor(RGBColor::GREY, 1, "sidewalk");
91  scheme.addColor(RGBColor(192, 66, 44), 2, "bike lane");
92  scheme.addColor(RGBColor(0, 0, 0, 0), 3, "green verge");
93  scheme.addColor(RGBColor(150, 200, 200), 4, "waterway");
94  scheme.addColor(RGBColor(92, 92, 92), 5, "no passenger"); // paths, service roads etc
95  scheme.addColor(RGBColor::RED, 6, "closed"); // road closing
96  laneColorer.addScheme(scheme);
97  scheme = GUIColorScheme("by selection (lane-/streetwise)", RGBColor(128, 128, 128, 255), "unselected", true);
98  scheme.addColor(RGBColor(0, 80, 180, 255), 1, "selected");
99  laneColorer.addScheme(scheme);
100  scheme = GUIColorScheme("by permission code", RGBColor(240, 240, 240), "nobody");
101  scheme.addColor(RGBColor(10, 10, 10), (SUMOReal)SVC_PASSENGER, "passenger");
102  scheme.addColor(RGBColor(128, 128, 128), (SUMOReal)SVC_PEDESTRIAN, "pedestrian");
103  scheme.addColor(RGBColor(80, 80, 80), (SUMOReal)(SVC_PEDESTRIAN | SVC_DELIVERY), "pedestrian_delivery");
104  scheme.addColor(RGBColor(192, 66, 44), (SUMOReal)SVC_BICYCLE, "bicycle");
105  scheme.addColor(RGBColor(40, 100, 40), (SUMOReal)SVC_BUS, "bus");
106  scheme.addColor(RGBColor(166, 147, 26), (SUMOReal)SVC_TAXI, "taxi");
107  scheme.addColor(RGBColor::BLACK, (SUMOReal)(SVCAll & ~SVC_NON_ROAD), "normal_road");
108  scheme.addColor(RGBColor::BLACK, (SUMOReal)(SVCAll & ~(SVC_PEDESTRIAN | SVC_NON_ROAD)), "disallow_pedestrian");
109  scheme.addColor(RGBColor(255, 206, 0), (SUMOReal)(SVCAll & ~(SVC_PEDESTRIAN | SVC_BICYCLE | SVC_MOPED | SVC_NON_ROAD)), "motorway");
110  scheme.addColor(RGBColor(150, 200, 200), (SUMOReal)SVC_SHIP, "waterway");
111  scheme.addColor(RGBColor::GREEN, (SUMOReal)SVCAll, "all");
112  laneColorer.addScheme(scheme);
113  // ... traffic states ...
114  scheme = GUIColorScheme("by allowed speed (lanewise)", RGBColor::RED);
115  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(30 / 3.6));
116  scheme.addColor(RGBColor::GREEN, (SUMOReal)(55 / 3.6));
117  scheme.addColor(RGBColor::CYAN, (SUMOReal)(80 / 3.6));
118  scheme.addColor(RGBColor::BLUE, (SUMOReal)(120 / 3.6));
119  scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(150 / 3.6));
120  laneColorer.addScheme(scheme);
121  scheme = GUIColorScheme("by current occupancy (lanewise, brutto)", RGBColor::BLUE);
122  scheme.addColor(RGBColor::RED, (SUMOReal)0.95);
123  laneColorer.addScheme(scheme);
124  scheme = GUIColorScheme("by current occupancy (lanewise, netto)", RGBColor::BLUE);
125  scheme.addColor(RGBColor::RED, (SUMOReal)0.95);
126  laneColorer.addScheme(scheme);
127  scheme = GUIColorScheme("by first vehicle waiting time (lanewise)", RGBColor::BLUE);
128  scheme.addColor(RGBColor::CYAN, (SUMOReal)30);
129  scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
130  scheme.addColor(RGBColor::YELLOW, (SUMOReal)200);
131  scheme.addColor(RGBColor::RED, (SUMOReal)300);
132  laneColorer.addScheme(scheme);
133  scheme = GUIColorScheme("by lane number (streetwise)", RGBColor::RED);
134  scheme.addColor(RGBColor::BLUE, (SUMOReal)5);
135  laneColorer.addScheme(scheme);
136  // ... emissions ...
137  scheme = GUIColorScheme("by CO2 emissions", RGBColor::GREEN);
138  scheme.addColor(RGBColor::RED, (SUMOReal)(10. / 7.5 / 5.));
139  laneColorer.addScheme(scheme);
140  scheme = GUIColorScheme("by CO emissions", RGBColor::GREEN);
141  scheme.addColor(RGBColor::RED, (SUMOReal)(0.05 / 7.5 / 2.));
142  laneColorer.addScheme(scheme);
143  scheme = GUIColorScheme("by PMx emissions", RGBColor::GREEN);
144  scheme.addColor(RGBColor::RED, (SUMOReal)(.005 / 7.5 / 5.));
145  laneColorer.addScheme(scheme);
146  scheme = GUIColorScheme("by NOx emissions", RGBColor::GREEN);
147  scheme.addColor(RGBColor::RED, (SUMOReal)(.125 / 7.5 / 5.));
148  laneColorer.addScheme(scheme);
149  scheme = GUIColorScheme("by HC emissions", RGBColor::GREEN);
150  scheme.addColor(RGBColor::RED, (SUMOReal)(.02 / 7.5 / 4.));
151  laneColorer.addScheme(scheme);
152  scheme = GUIColorScheme("by fuel consumption", RGBColor::GREEN);
153  scheme.addColor(RGBColor::RED, (SUMOReal)(.005 / 7.5 * 100.));
154  laneColorer.addScheme(scheme);
155  scheme = GUIColorScheme("by noise emissions (Harmonoise)", RGBColor::GREEN);
156  scheme.addColor(RGBColor::RED, (SUMOReal)100);
157  laneColorer.addScheme(scheme);
158  // ... weights (experimental) ...
159  scheme = GUIColorScheme("by global travel time", RGBColor::GREEN);
160  scheme.addColor(RGBColor::RED, (SUMOReal)100);
161  scheme.setAllowsNegativeValues(true);
162  laneColorer.addScheme(scheme);
163  scheme = GUIColorScheme("by global speed percentage", RGBColor::RED);
164  scheme.addColor(RGBColor::YELLOW, (SUMOReal)50);
165  scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
166  scheme.setAllowsNegativeValues(true);
167  laneColorer.addScheme(scheme);
168  scheme = GUIColorScheme("by given length/geometrical length", RGBColor::BLACK);
169  scheme.addColor(RGBColor::RED, (SUMOReal)0.25);
170  scheme.addColor(RGBColor::YELLOW, (SUMOReal)0.5);
171  scheme.addColor(RGBColor(179, 179, 179, 255), (SUMOReal)1.0);
172  scheme.addColor(RGBColor::GREEN, (SUMOReal)2.0);
173  scheme.addColor(RGBColor::BLUE, (SUMOReal)4.0);
174  laneColorer.addScheme(scheme);
175  laneColorer.addScheme(GUIColorScheme("by angle", RGBColor::YELLOW, "", true));
176  scheme = GUIColorScheme("by loaded weight", RGBColor::GREEN);
177  scheme.addColor(RGBColor::RED, (SUMOReal)100);
178  scheme.setAllowsNegativeValues(true);
179  laneColorer.addScheme(scheme);
180  scheme = GUIColorScheme("by priority", RGBColor::YELLOW);
181  scheme.addColor(RGBColor::RED, (SUMOReal) - 20);
182  scheme.addColor(RGBColor::GREEN, (SUMOReal)20);
183  scheme.setAllowsNegativeValues(true);
184  laneColorer.addScheme(scheme);
185  scheme = GUIColorScheme("by height at start", RGBColor::RED);
186  scheme.addColor(RGBColor::BLUE, (SUMOReal) - 10);
187  scheme.addColor(RGBColor::YELLOW, (SUMOReal)50);
188  scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
189  scheme.addColor(RGBColor::MAGENTA, (SUMOReal)200);
190  scheme.setAllowsNegativeValues(true);
191  laneColorer.addScheme(scheme);
192  scheme = GUIColorScheme("by height at geometry-segment start", RGBColor::RED);
193  scheme.addColor(RGBColor::BLUE, (SUMOReal) - 10);
194  scheme.addColor(RGBColor::YELLOW, (SUMOReal)50);
195  scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
196  scheme.addColor(RGBColor::MAGENTA, (SUMOReal)200);
197  scheme.setAllowsNegativeValues(true);
198  laneColorer.addScheme(scheme);
199  scheme = GUIColorScheme("by inclination", RGBColor::GREY);
200  scheme.addColor(RGBColor::YELLOW, (SUMOReal) .1);
201  scheme.addColor(RGBColor::RED, (SUMOReal) .3);
202  scheme.addColor(RGBColor::GREEN, (SUMOReal) - .1);
203  scheme.addColor(RGBColor::BLUE, (SUMOReal) - .3);
204  scheme.setAllowsNegativeValues(true);
205  laneColorer.addScheme(scheme);
206  scheme = GUIColorScheme("by geometry-segment inclination", RGBColor::GREY);
207  scheme.addColor(RGBColor::YELLOW, (SUMOReal) .1);
208  scheme.addColor(RGBColor::RED, (SUMOReal) .3);
209  scheme.addColor(RGBColor::GREEN, (SUMOReal) - .1);
210  scheme.addColor(RGBColor::BLUE, (SUMOReal) - .3);
211  scheme.setAllowsNegativeValues(true);
212  laneColorer.addScheme(scheme);
213  scheme = GUIColorScheme("by average speed", RGBColor::RED);
214  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(30 / 3.6));
215  scheme.addColor(RGBColor::GREEN, (SUMOReal)(55 / 3.6));
216  scheme.addColor(RGBColor::CYAN, (SUMOReal)(80 / 3.6));
217  scheme.addColor(RGBColor::BLUE, (SUMOReal)(120 / 3.6));
218  scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(150 / 3.6));
219  laneColorer.addScheme(scheme);
220  scheme = GUIColorScheme("by average relative speed ", RGBColor::RED);
221  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(0.25));
222  scheme.addColor(RGBColor::GREEN, (SUMOReal)(0.5));
223  scheme.addColor(RGBColor::CYAN, (SUMOReal)(0.75));
224  scheme.addColor(RGBColor::BLUE, (SUMOReal)(1));
225  scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(1.25));
226  laneColorer.addScheme(scheme);
227  scheme = GUIColorScheme("by routing device assumed speed ", RGBColor::RED);
228  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(30 / 3.6));
229  scheme.addColor(RGBColor::GREEN, (SUMOReal)(55 / 3.6));
230  scheme.addColor(RGBColor::CYAN, (SUMOReal)(80 / 3.6));
231  scheme.addColor(RGBColor::BLUE, (SUMOReal)(120 / 3.6));
232  scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(150 / 3.6));
233  laneColorer.addScheme(scheme);
234  scheme = GUIColorScheme("by electricity consumption", RGBColor::GREEN);
235  scheme.addColor(RGBColor::RED, (SUMOReal)(1 / 7.5 / 5.));
236  laneColorer.addScheme(scheme);
237 
238 
240  vehicleColorer.addScheme(GUIColorScheme("given vehicle/type/route color", RGBColor::YELLOW, "", true));
242  vehicleColorer.addScheme(GUIColorScheme("given/assigned vehicle color", RGBColor::YELLOW, "", true));
243  vehicleColorer.addScheme(GUIColorScheme("given/assigned type color", RGBColor::YELLOW, "", true));
244  vehicleColorer.addScheme(GUIColorScheme("given/assigned route color", RGBColor::YELLOW, "", true));
245  vehicleColorer.addScheme(GUIColorScheme("depart position as HSV", RGBColor::YELLOW, "", true));
246  vehicleColorer.addScheme(GUIColorScheme("arrival position as HSV", RGBColor::YELLOW, "", true));
247  vehicleColorer.addScheme(GUIColorScheme("direction/distance as HSV", RGBColor::YELLOW, "", true));
248  scheme = GUIColorScheme("by speed", RGBColor::RED);
249  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(30 / 3.6));
250  scheme.addColor(RGBColor::GREEN, (SUMOReal)(55 / 3.6));
251  scheme.addColor(RGBColor::CYAN, (SUMOReal)(80 / 3.6));
252  scheme.addColor(RGBColor::BLUE, (SUMOReal)(120 / 3.6));
253  scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(150 / 3.6));
254  vehicleColorer.addScheme(scheme);
255  scheme = GUIColorScheme("by waiting time", RGBColor::BLUE);
256  scheme.addColor(RGBColor::CYAN, (SUMOReal)30);
257  scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
258  scheme.addColor(RGBColor::YELLOW, (SUMOReal)200);
259  scheme.addColor(RGBColor::RED, (SUMOReal)300);
260  vehicleColorer.addScheme(scheme);
261  scheme = GUIColorScheme("by accumulated waiting time", RGBColor::BLUE);
262  scheme.addColor(RGBColor::CYAN, (SUMOReal)25);
263  scheme.addColor(RGBColor::GREEN, (SUMOReal)50);
264  scheme.addColor(RGBColor::YELLOW, (SUMOReal)75);
265  scheme.addColor(RGBColor::RED, (SUMOReal)100);
266  vehicleColorer.addScheme(scheme);
267  scheme = GUIColorScheme("by time since lane change", RGBColor(179, 179, 179, 255), "0");
268  scheme.addColor(RGBColor(189, 189, 179, 255), -180);
269  scheme.addColor(RGBColor(255, 255, 0, 255), -20);
270  scheme.addColor(RGBColor(255, 0, 0, 255), -0.001);
271  scheme.addColor(RGBColor(0, 0, 255, 255), 0.001);
272  scheme.addColor(RGBColor(0, 255, 255, 255), 20);
273  scheme.addColor(RGBColor(179, 189, 189, 255), 180);
274  scheme.setAllowsNegativeValues(true);
275  vehicleColorer.addScheme(scheme);
276  scheme = GUIColorScheme("by max speed", RGBColor::RED);
277  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(30 / 3.6));
278  scheme.addColor(RGBColor::GREEN, (SUMOReal)(55 / 3.6));
279  scheme.addColor(RGBColor::CYAN, (SUMOReal)(80 / 3.6));
280  scheme.addColor(RGBColor::BLUE, (SUMOReal)(120 / 3.6));
281  scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(150 / 3.6));
282  vehicleColorer.addScheme(scheme);
283  // ... emissions ...
284  scheme = GUIColorScheme("by CO2 emissions", RGBColor::GREEN);
285  scheme.addColor(RGBColor::RED, (SUMOReal)5.);
286  vehicleColorer.addScheme(scheme);
287  scheme = GUIColorScheme("by CO emissions", RGBColor::GREEN);
288  scheme.addColor(RGBColor::RED, (SUMOReal)0.05);
289  vehicleColorer.addScheme(scheme);
290  scheme = GUIColorScheme("by PMx emissions", RGBColor::GREEN);
291  scheme.addColor(RGBColor::RED, (SUMOReal).005);
292  vehicleColorer.addScheme(scheme);
293  scheme = GUIColorScheme("by NOx emissions", RGBColor::GREEN);
294  scheme.addColor(RGBColor::RED, (SUMOReal).125);
295  vehicleColorer.addScheme(scheme);
296  scheme = GUIColorScheme("by HC emissions", RGBColor::GREEN);
297  scheme.addColor(RGBColor::RED, (SUMOReal).02);
298  vehicleColorer.addScheme(scheme);
299  scheme = GUIColorScheme("by fuel consumption", RGBColor::GREEN);
300  scheme.addColor(RGBColor::RED, (SUMOReal).005);
301  vehicleColorer.addScheme(scheme);
302  scheme = GUIColorScheme("by noise emissions (Harmonoise)", RGBColor::GREEN);
303  scheme.addColor(RGBColor::RED, (SUMOReal)100.);
304  vehicleColorer.addScheme(scheme);
305  scheme = GUIColorScheme("by reroute number", RGBColor::RED);
306  scheme.addColor(RGBColor::YELLOW, (SUMOReal)1.);
307  scheme.addColor(RGBColor::WHITE, (SUMOReal)10.);
308  vehicleColorer.addScheme(scheme);
309  scheme = GUIColorScheme("by selection", RGBColor(179, 179, 179, 255), "unselected", true);
310  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
311  vehicleColorer.addScheme(scheme);
312  scheme = GUIColorScheme("by offset from best lane", RGBColor(179, 179, 179, 255), "0");
313  scheme.addColor(RGBColor(255, 0, 0, 255), -3, "-3");
314  scheme.addColor(RGBColor(255, 255, 0, 255), -1, "-1");
315  scheme.addColor(RGBColor(0, 255, 255, 255), 1, "1");
316  scheme.addColor(RGBColor(0, 0, 255, 255), 3, "3");
317  scheme.setAllowsNegativeValues(true);
318  vehicleColorer.addScheme(scheme);
319  scheme = GUIColorScheme("by acceleration", RGBColor(179, 179, 179, 255), "0");
320  scheme.addColor(RGBColor(255, 0, 0, 255), -4.5 /* -SUMOVTypeParameter::getDefaultDecel() */);
321  scheme.addColor(RGBColor(255, 255, 0, 255), -0.1);
322  scheme.addColor(RGBColor(0, 255, 255, 255), 0.1);
323  scheme.addColor(RGBColor(0, 0, 255, 255), 2.6 /* SUMOVTypeParameter::getDefaultAccel() */);
324  scheme.setAllowsNegativeValues(true);
325  vehicleColorer.addScheme(scheme);
326  scheme = GUIColorScheme("by time gap", RGBColor(255, 255, 0, 255), "0");
327  scheme.addColor(RGBColor(179, 179, 179, 255), -1);
328  scheme.addColor(RGBColor(0, 255, 255, 255), 1);
329  scheme.addColor(RGBColor(0, 0, 255, 255), 2);
330  scheme.setAllowsNegativeValues(true);
331  vehicleColorer.addScheme(scheme);
332  scheme = GUIColorScheme("by depart delay", RGBColor::BLUE);
333  scheme.addColor(RGBColor::CYAN, (SUMOReal)30);
334  scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
335  scheme.addColor(RGBColor::YELLOW, (SUMOReal)200);
336  scheme.addColor(RGBColor::RED, (SUMOReal)300);
337  vehicleColorer.addScheme(scheme);
338  scheme = GUIColorScheme("by electricity consumption", RGBColor::GREEN);
339  scheme.addColor(RGBColor::RED, (SUMOReal)5);
340  vehicleColorer.addScheme(scheme);
342 
344  personColorer.addScheme(GUIColorScheme("given person/type color", RGBColor::YELLOW, "", true));
346  personColorer.addScheme(GUIColorScheme("given/assigned person color", RGBColor::YELLOW, "", true));
347  personColorer.addScheme(GUIColorScheme("given/assigned type color", RGBColor::YELLOW, "", true));
348  scheme = GUIColorScheme("by speed", RGBColor::RED);
349  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(2.5 / 3.6));
350  scheme.addColor(RGBColor::GREEN, (SUMOReal)(5 / 3.6));
351  scheme.addColor(RGBColor::BLUE, (SUMOReal)(10 / 3.6));
352  personColorer.addScheme(scheme);
353  scheme = GUIColorScheme("by mode", RGBColor::YELLOW); // walking
354  scheme.addColor(RGBColor::BLUE, (SUMOReal)(1)); // riding
355  scheme.addColor(RGBColor::RED, (SUMOReal)(2)); // stopped
356  scheme.addColor(RGBColor::GREEN, (SUMOReal)(3)); // waiting for ride
357  personColorer.addScheme(scheme);
358  scheme = GUIColorScheme("by waiting time", RGBColor::BLUE);
359  scheme.addColor(RGBColor::CYAN, (SUMOReal)30);
360  scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
361  scheme.addColor(RGBColor::YELLOW, (SUMOReal)200);
362  scheme.addColor(RGBColor::RED, (SUMOReal)300);
363  personColorer.addScheme(scheme);
364  scheme = GUIColorScheme("by selection", RGBColor(179, 179, 179, 255), "unselected", true);
365  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
366  personColorer.addScheme(scheme);
367  personColorer.addScheme(GUIColorScheme("by angle", RGBColor::YELLOW, "", true));
369 
371  containerColorer.addScheme(GUIColorScheme("given container/type color", RGBColor::YELLOW, "", true));
373  containerColorer.addScheme(GUIColorScheme("given/assigned container color", RGBColor::YELLOW, "", true));
374  containerColorer.addScheme(GUIColorScheme("given/assigned type color", RGBColor::YELLOW, "", true));
375  scheme = GUIColorScheme("by speed", RGBColor::RED);
376  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(2.5 / 3.6));
377  scheme.addColor(RGBColor::GREEN, (SUMOReal)(5 / 3.6));
378  scheme.addColor(RGBColor::BLUE, (SUMOReal)(10 / 3.6));
379  containerColorer.addScheme(scheme);
380  scheme = GUIColorScheme("by mode", RGBColor::YELLOW); // walking
381  scheme.addColor(RGBColor::BLUE, (SUMOReal)(1)); // riding
382  scheme.addColor(RGBColor::RED, (SUMOReal)(2)); // stopped
383  scheme.addColor(RGBColor::GREEN, (SUMOReal)(3)); // waiting for ride
384  containerColorer.addScheme(scheme);
385  scheme = GUIColorScheme("by waiting time", RGBColor::BLUE);
386  scheme.addColor(RGBColor::CYAN, (SUMOReal)30);
387  scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
388  scheme.addColor(RGBColor::YELLOW, (SUMOReal)200);
389  scheme.addColor(RGBColor::RED, (SUMOReal)300);
390  containerColorer.addScheme(scheme);
391  scheme = GUIColorScheme("by selection", RGBColor(179, 179, 179, 255), "unselected", true);
392  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
393  containerColorer.addScheme(scheme);
395 
397  scheme = GUIColorScheme("uniform", RGBColor::BLACK, "", true);
398  scheme.addColor(RGBColor(150, 200, 200), 1, "waterway");
399  junctionColorer.addScheme(scheme);
400  scheme = GUIColorScheme("by selection", RGBColor(128, 128, 128, 255), "unselected", true);
401  scheme.addColor(RGBColor(0, 80, 180, 255), 1, "selected");
402  junctionColorer.addScheme(scheme);
403  scheme = GUIColorScheme("by type", RGBColor::GREEN, "traffic_light", true);
404  scheme.addColor(RGBColor(0, 128, 0), 1, "traffic_light_unregulated");
405  scheme.addColor(RGBColor::YELLOW, 2, "priority");
406  scheme.addColor(RGBColor::RED, 3, "priority_stop");
407  scheme.addColor(RGBColor::BLUE, 4, "right_before_left");
408  scheme.addColor(RGBColor::CYAN, 5, "allway_stop");
409  scheme.addColor(RGBColor::GREY, 6, "district");
410  scheme.addColor(RGBColor::MAGENTA, 7, "unregulated");
411  scheme.addColor(RGBColor::BLACK, 8, "dead_end");
412  scheme.addColor(RGBColor::ORANGE, 9, "rail_signal");
413  scheme.addColor(RGBColor(192, 128, 64), 10, "zipper"); // light brown
414  scheme.addColor(RGBColor(192, 255, 192), 11, "traffic_light_right_on_red"); // light green
415  scheme.addColor(RGBColor(128, 0, 128), 12, "rail_crossing"); // dark purple
416  junctionColorer.addScheme(scheme);
417 
418 
420  {
421  GUIScaleScheme scheme = GUIScaleScheme("default", 1, "uniform", true);
422  laneScaler.addScheme(scheme);
423  scheme = GUIScaleScheme("by selection (lane-/streetwise)", 0.5, "unselected", true);
424  scheme.addColor(5, 1, "selected");
425  laneScaler.addScheme(scheme);
426  // ... traffic states ...
427  scheme = GUIScaleScheme("by allowed speed (lanewise)", 0);
428  scheme.addColor(10, (SUMOReal)(150.0 / 3.6));
429  laneScaler.addScheme(scheme);
430  scheme = GUIScaleScheme("by current occupancy (lanewise, brutto)", 0);
431  scheme.addColor(10, (SUMOReal)0.95);
432  laneScaler.addScheme(scheme);
433  scheme = GUIScaleScheme("by current occupancy (lanewise, netto)", 0);
434  scheme.addColor(10, (SUMOReal)0.95);
435  laneScaler.addScheme(scheme);
436  scheme = GUIScaleScheme("by first vehicle waiting time (lanewise)", 0);
437  scheme.addColor(10, (SUMOReal)300);
438  laneScaler.addScheme(scheme);
439  scheme = GUIScaleScheme("by lane number (streetwise)", 1);
440  scheme.addColor(10, (SUMOReal)5);
441  laneScaler.addScheme(scheme);
442  // ... emissions ...
443  scheme = GUIScaleScheme("by CO2 emissions", 0);
444  scheme.addColor(10, (SUMOReal)(10. / 7.5 / 5.));
445  laneScaler.addScheme(scheme);
446  scheme = GUIScaleScheme("by CO emissions", 0);
447  scheme.addColor(10, (SUMOReal)(0.05 / 7.5 / 2.));
448  laneScaler.addScheme(scheme);
449  scheme = GUIScaleScheme("by PMx emissions", 0);
450  scheme.addColor(10, (SUMOReal)(.005 / 7.5 / 5.));
451  laneScaler.addScheme(scheme);
452  scheme = GUIScaleScheme("by NOx emissions", 0);
453  scheme.addColor(10, (SUMOReal)(.125 / 7.5 / 5.));
454  laneScaler.addScheme(scheme);
455  scheme = GUIScaleScheme("by HC emissions", 0);
456  scheme.addColor(10, (SUMOReal)(.02 / 7.5 / 4.));
457  laneScaler.addScheme(scheme);
458  scheme = GUIScaleScheme("by fuel consumption", 0);
459  scheme.addColor(10, (SUMOReal)(.005 / 7.5 * 100.));
460  laneScaler.addScheme(scheme);
461  scheme = GUIScaleScheme("by noise emissions (Harmonoise)", 0);
462  scheme.addColor(10, (SUMOReal)100);
463  laneScaler.addScheme(scheme);
464  // ... weights (experimental) ...
465  scheme = GUIScaleScheme("by global travel time", 0);
466  scheme.addColor(10, (SUMOReal)100);
467  scheme.setAllowsNegativeValues(true);
468  laneScaler.addScheme(scheme);
469  scheme = GUIScaleScheme("by global speed percentage", 0);
470  scheme.addColor(10, (SUMOReal)100);
471  scheme.setAllowsNegativeValues(true);
472  laneScaler.addScheme(scheme);
473  scheme = GUIScaleScheme("by given length/geometrical length", 0);
474  scheme.addColor(10, (SUMOReal)10.0);
475  laneScaler.addScheme(scheme);
476  scheme = GUIScaleScheme("by loaded weight", 0);
477  scheme.addColor(-1000, (SUMOReal) - 1000);
478  scheme.addColor(1000, (SUMOReal)1000);
479  scheme.setAllowsNegativeValues(true);
480  laneScaler.addScheme(scheme);
481  scheme = GUIScaleScheme("by priority", 1);
482  scheme.addColor(0.5, (SUMOReal) - 20);
483  scheme.addColor(5, (SUMOReal)20);
484  scheme.setAllowsNegativeValues(true);
485  laneScaler.addScheme(scheme);
486  scheme = GUIScaleScheme("by average speed", 0);
487  scheme.addColor(10, (SUMOReal)(150.0 / 3.6));
488  laneScaler.addScheme(scheme);
489  scheme = GUIScaleScheme("by average relative speed", 0);
490  scheme.addColor(0.5, (SUMOReal)(0.5));
491  scheme.addColor(2, (SUMOReal)(1));
492  scheme.addColor(10, (SUMOReal)(2));
493  laneScaler.addScheme(scheme);
494  scheme = GUIScaleScheme("by electricity consumption", 0);
495  scheme.addColor(10, (SUMOReal)(1 / 7.5 / 5.));
496  laneScaler.addScheme(scheme);
497  }
498 
499 
501  edgeColorer.addScheme(GUIColorScheme("uniform (streetwise)", RGBColor::BLACK, "", true));
502  scheme = GUIColorScheme("by selection (streetwise)", RGBColor(128, 128, 128, 255), "unselected", true);
503  scheme.addColor(RGBColor(0, 80, 180, 255), 1, "selected");
504  edgeColorer.addScheme(scheme);
505  scheme = GUIColorScheme("by purpose (streetwise)", RGBColor(), "normal", true);
506  scheme.addColor(RGBColor(128, 0, 128, 255), 1, "connector"); // see MSEdge::EdgeBasicFunction::EDGEFUNCTION_CONNECTOR
507  scheme.addColor(RGBColor::BLUE, 2, "internal"); // see MSEdge::EdgeBasicFunction::EDGEFUNCTION_INTERNAL
508  edgeColorer.addScheme(scheme);
509  scheme = GUIColorScheme("by allowed speed (streetwise)", RGBColor::RED);
510  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(30 / 3.6));
511  scheme.addColor(RGBColor::GREEN, (SUMOReal)(55 / 3.6));
512  scheme.addColor(RGBColor::CYAN, (SUMOReal)(80 / 3.6));
513  scheme.addColor(RGBColor::BLUE, (SUMOReal)(120 / 3.6));
514  scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(150 / 3.6));
515  edgeColorer.addScheme(scheme);
516  scheme = GUIColorScheme("by current occupancy (streetwise, brutto)", RGBColor::BLUE);
517  scheme.addColor(RGBColor::RED, (SUMOReal)0.95);
518  edgeColorer.addScheme(scheme);
519  scheme = GUIColorScheme("by current speed (streetwise)", RGBColor::RED);
520  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(30 / 3.6));
521  scheme.addColor(RGBColor::GREEN, (SUMOReal)(55 / 3.6));
522  scheme.addColor(RGBColor::CYAN, (SUMOReal)(80 / 3.6));
523  scheme.addColor(RGBColor::BLUE, (SUMOReal)(120 / 3.6));
524  scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(150 / 3.6));
525  edgeColorer.addScheme(scheme);
526  scheme = GUIColorScheme("by current flow (streetwise)", RGBColor::BLUE);
527  scheme.addColor(RGBColor::RED, (SUMOReal)5000);
528  edgeColorer.addScheme(scheme);
529  scheme = GUIColorScheme("by relative speed (streetwise)", RGBColor::RED);
530  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(0.25));
531  scheme.addColor(RGBColor::GREEN, (SUMOReal)(0.5));
532  scheme.addColor(RGBColor::CYAN, (SUMOReal)(0.75));
533  scheme.addColor(RGBColor::BLUE, (SUMOReal)(1));
534  scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(1.25));
535  edgeColorer.addScheme(scheme);
536  scheme = GUIColorScheme("by routing device assumed speed", RGBColor::RED);
537  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(30 / 3.6));
538  scheme.addColor(RGBColor::GREEN, (SUMOReal)(55 / 3.6));
539  scheme.addColor(RGBColor::CYAN, (SUMOReal)(80 / 3.6));
540  scheme.addColor(RGBColor::BLUE, (SUMOReal)(120 / 3.6));
541  scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(150 / 3.6));
542  edgeColorer.addScheme(scheme);
543  edgeColorer.addScheme(GUIColorScheme("by angle", RGBColor::YELLOW, "", true));
544  scheme = GUIColorScheme("by segments (alternating)", RGBColor::BLUE, "odd", true);
545  scheme.addColor(RGBColor::RED, 1, "even");
546  edgeColorer.addScheme(scheme);
547  scheme = GUIColorScheme("by jammed state (segmentwise)", RGBColor::GREEN, "free", true);
548  scheme.addColor(RGBColor::RED, 1, "jammed");
549  edgeColorer.addScheme(scheme);
550  scheme = GUIColorScheme("by current occupancy (segmentwise, brutto)", RGBColor::BLUE);
551  scheme.addColor(RGBColor::RED, (SUMOReal)0.95);
552  edgeColorer.addScheme(scheme);
553  scheme = GUIColorScheme("by current speed (segmentwise)", RGBColor::RED);
554  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(30 / 3.6));
555  scheme.addColor(RGBColor::GREEN, (SUMOReal)(55 / 3.6));
556  scheme.addColor(RGBColor::CYAN, (SUMOReal)(80 / 3.6));
557  scheme.addColor(RGBColor::BLUE, (SUMOReal)(120 / 3.6));
558  scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(150 / 3.6));
559  edgeColorer.addScheme(scheme);
560  scheme = GUIColorScheme("by current flow (segmentwise)", RGBColor::BLUE);
561  scheme.addColor(RGBColor::RED, (SUMOReal)5000);
562  edgeColorer.addScheme(scheme);
563  scheme = GUIColorScheme("by relative speed (segmentwise)", RGBColor::RED);
564  scheme.addColor(RGBColor::YELLOW, (SUMOReal)(0.25));
565  scheme.addColor(RGBColor::GREEN, (SUMOReal)(0.5));
566  scheme.addColor(RGBColor::CYAN, (SUMOReal)(0.75));
567  scheme.addColor(RGBColor::BLUE, (SUMOReal)(1));
568  scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(1.25));
569  edgeColorer.addScheme(scheme);
570 
571 
573  {
574  edgeScaler.addScheme(GUIScaleScheme("uniform", 1, "", true));
575  GUIScaleScheme scheme = GUIScaleScheme("by selection (streetwise)", 0.5, "unselected", true);
576  scheme.addColor(5, 1, "selected");
577  edgeScaler.addScheme(scheme);
578  scheme = GUIScaleScheme("by allowed speed (streetwise)", 0);
579  scheme.addColor(10, (SUMOReal)(150.0 / 3.6));
580  edgeScaler.addScheme(scheme);
581  scheme = GUIScaleScheme("by current occupancy (streetwise, brutto)", 0);
582  scheme.addColor(10, (SUMOReal)0.95);
583  edgeScaler.addScheme(scheme);
584  scheme = GUIScaleScheme("by current speed (streetwise)", 0);
585  scheme.addColor(10, (SUMOReal)(150.0 / 3.6));
586  edgeScaler.addScheme(scheme);
587  scheme = GUIScaleScheme("by current flow (streetwise)", 0);
588  scheme.addColor(20, (SUMOReal)5000);
589  edgeScaler.addScheme(scheme);
590  scheme = GUIScaleScheme("by relative speed (streetwise)", 0);
591  scheme.addColor(20, (SUMOReal)1);
592  edgeScaler.addScheme(scheme);
593  }
594 
595 }
596 
597 
598 size_t
600  if (UseMesoSim) {
601  return edgeColorer.getActive();
602  }
603  return laneColorer.getActive();
604 }
605 
606 
607 size_t
609  if (UseMesoSim) {
610  return edgeScaler.getActive();
611  }
612  return laneScaler.getActive();
613 }
614 
615 
618  if (UseMesoSim) {
619  return edgeColorer.getScheme();
620  }
621  return laneColorer.getScheme();
622 }
623 
624 
627  if (UseMesoSim) {
628  return edgeScaler.getScheme();
629  }
630  return laneScaler.getScheme();
631 }
632 
633 void
638  dev.writeAttr("antialiase", antialiase);
639  dev.writeAttr("dither", dither);
640  dev.closeTag();
642  dev.writeAttr("backgroundColor", backgroundColor);
643  dev.writeAttr("showGrid", showGrid);
644  dev.writeAttr("gridXSize", gridXSize);
645  dev.writeAttr("gridYSize", gridYSize);
646  dev.closeTag();
647  // edges
649  dev.writeAttr("laneEdgeMode", getLaneEdgeMode());
650  dev.writeAttr("scaleMode", getLaneEdgeScaleMode());
651  dev.writeAttr("laneShowBorders", laneShowBorders);
652  dev.writeAttr("showLinkDecals", showLinkDecals);
653  dev.writeAttr("showRails", showRails);
654  dev.writeAttr("hideConnectors", hideConnectors);
655  dev.writeAttr("widthExaggeration", laneWidthExaggeration);
656  dev.lf();
657  dev << " ";
658  edgeName.print(dev, "edgeName");
659  dev.lf();
660  dev << " ";
661  internalEdgeName.print(dev, "internalEdgeName");
662  dev.lf();
663  dev << " ";
664  cwaEdgeName.print(dev, "cwaEdgeName");
665  dev.lf();
666  dev << " ";
667  streetName.print(dev, "streetName");
668  laneColorer.save(dev);
669  laneScaler.save(dev);
670  edgeColorer.save(dev);
671  edgeScaler.save(dev);
672  dev.closeTag();
673  // vehicles
675  dev.writeAttr("vehicleMode", vehicleColorer.getActive());
676  dev.writeAttr("vehicleQuality", vehicleQuality);
677  vehicleSize.print(dev, "vehicle");
678  dev.writeAttr("showBlinker", showBlinker);
679  dev.lf();
680  dev << " ";
681  vehicleName.print(dev, "vehicleName");
682  vehicleColorer.save(dev);
683  dev.closeTag();
684  // persons
686  dev.writeAttr("personMode", personColorer.getActive());
687  dev.writeAttr("personQuality", personQuality);
688  personSize.print(dev, "person");
689  dev.lf();
690  dev << " ";
691  personName.print(dev, "personName");
692  personColorer.save(dev);
693  dev.closeTag();
694  // persons
696  dev.writeAttr("containerMode", containerColorer.getActive());
697  dev.writeAttr("containerQuality", containerQuality);
698  personSize.print(dev, "container");
699  dev.lf();
700  dev << " ";
701  personName.print(dev, "containerName");
702  personColorer.save(dev);
703  dev.closeTag();
704  // junctions
706  dev.writeAttr("junctionMode", junctionColorer.getActive());
707  dev.lf();
708  dev << " ";
709  drawLinkTLIndex.print(dev, "drawLinkTLIndex");
710  dev.lf();
711  dev << " ";
712  drawLinkJunctionIndex.print(dev, "drawLinkJunctionIndex");
713  dev.lf();
714  dev << " ";
715  junctionName.print(dev, "junctionName");
716  dev.lf();
717  dev << " ";
718  internalJunctionName.print(dev, "internalJunctionName");
719  dev.lf();
720  dev << " ";
721  dev.writeAttr("showLane2Lane", showLane2Lane);
722  dev.writeAttr("drawShape", drawJunctionShape);
723  dev.writeAttr("drawCrossingsAndWalkingareas", drawCrossingsAndWalkingareas);
724  junctionColorer.save(dev);
725  dev.closeTag();
726  // additionals
728  dev.writeAttr("addMode", addMode);
729  addSize.print(dev, "add");
730  addName.print(dev, "addName");
731  dev.closeTag();
732  // pois
734  poiSize.print(dev, "poi");
735  poiName.print(dev, "poiName");
736  poiType.print(dev, "poiType");
737  dev.closeTag();
738  // polys
740  polySize.print(dev, "poly");
741  polyName.print(dev, "polyName");
742  polyType.print(dev, "polyType");
743  dev.closeTag();
744  // legend
746  dev.writeAttr("showSizeLegend", showSizeLegend);
747  dev.closeTag();
748 
749  dev.closeTag();
750 }
751 
752 
753 bool
755  if (antialiase != v2.antialiase) {
756  return false;
757  }
758  if (dither != v2.dither) {
759  return false;
760  }
761  if (backgroundColor != v2.backgroundColor) {
762  return false;
763  }
764  if (showGrid != v2.showGrid) {
765  return false;
766  }
767  if (gridXSize != v2.gridXSize) {
768  return false;
769  }
770  if (gridYSize != v2.gridYSize) {
771  return false;
772  }
773 
774  if (!(edgeColorer == v2.edgeColorer)) {
775  return false;
776  }
777  if (!(edgeScaler == v2.edgeScaler)) {
778  return false;
779  }
780  if (!(laneColorer == v2.laneColorer)) {
781  return false;
782  }
783  if (!(laneScaler == v2.laneScaler)) {
784  return false;
785  }
786  if (laneShowBorders != v2.laneShowBorders) {
787  return false;
788  }
789  if (showLinkDecals != v2.showLinkDecals) {
790  return false;
791  }
792  if (showRails != v2.showRails) {
793  return false;
794  }
795  if (edgeName != v2.edgeName) {
796  return false;
797  }
799  return false;
800  }
801  if (cwaEdgeName != v2.cwaEdgeName) {
802  return false;
803  }
804  if (streetName != v2.streetName) {
805  return false;
806  }
807  if (hideConnectors != v2.hideConnectors) {
808  return false;
809  }
811  return false;
812  }
813  if (!(vehicleColorer == v2.vehicleColorer)) {
814  return false;
815  }
816  if (vehicleQuality != v2.vehicleQuality) {
817  return false;
818  }
819  if (vehicleSize != v2.vehicleSize) {
820  return false;
821  }
822  if (showBlinker != v2.showBlinker) {
823  return false;
824  }
826  return false;
827  }
828  if (drawMinGap != v2.drawMinGap) {
829  return false;
830  }
831  if (showBTRange != v2.showBTRange) {
832  return false;
833  }
834  if (vehicleName != v2.vehicleName) {
835  return false;
836  }
837  if (!(personColorer == v2.personColorer)) {
838  return false;
839  }
840  if (personQuality != v2.personQuality) {
841  return false;
842  }
843  if (personSize != v2.personSize) {
844  return false;
845  }
846  if (personName != v2.personName) {
847  return false;
848  }
849  if (!(containerColorer == v2.containerColorer)) {
850  return false;
851  }
853  return false;
854  }
855  if (containerSize != v2.containerSize) {
856  return false;
857  }
858  if (containerName != v2.containerName) {
859  return false;
860  }
861  if (!(junctionColorer == v2.junctionColorer)) {
862  return false;
863  }
864  if (drawLinkTLIndex != v2.drawLinkTLIndex) {
865  return false;
866  }
868  return false;
869  }
870  if (junctionName != v2.junctionName) {
871  return false;
872  }
874  return false;
875  }
876 
877  if (showLane2Lane != v2.showLane2Lane) {
878  return false;
879  }
880 
882  return false;
883  }
884 
886  return false;
887  }
888 
889  if (addMode != v2.addMode) {
890  return false;
891  }
892  if (addSize != v2.addSize) {
893  return false;
894  }
895  if (addName != v2.addName) {
896  return false;
897  }
898  if (poiSize != v2.poiSize) {
899  return false;
900  }
901  if (poiName != v2.poiName) {
902  return false;
903  }
904  if (poiType != v2.poiType) {
905  return false;
906  }
907  if (polySize != v2.polySize) {
908  return false;
909  }
910  if (polyName != v2.polyName) {
911  return false;
912  }
913  if (polyType != v2.polyType) {
914  return false;
915  }
916 
917  if (showSizeLegend != v2.showSizeLegend) {
918  return false;
919  }
920 
921  return true;
922 }
923 
924 
925 SUMOReal
928  return (constantSize && !s.drawForSelecting) ? MAX2((SUMOReal)exaggeration, exaggeration * factor / s.scale) : exaggeration;
929 }
930 
931 /****************************************************************************/
932 
933 
SUMOReal getExaggeration(const GUIVisualizationSettings &s, SUMOReal factor=20) const
return the drawing size including exaggeration and constantSize values
GUIVisualizationTextSettings junctionName
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
Definition: OutputDevice.h:257
static const RGBColor BLUE
Definition: RGBColor.h:191
bool showSizeLegend
Information whether the size legend shall be drawn.
GUIVisualizationTextSettings poiType
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
GUIVisualizationTextSettings personName
void setAllowsNegativeValues(bool value)
GUIVisualizationTextSettings poiName
static const RGBColor WHITE
Definition: RGBColor.h:196
GUIColorScheme & getLaneEdgeScheme()
Returns the current lane (edge) coloring schme.
void print(OutputDevice &dev, const std::string &name) const
bool showBTRange
Information whether the communication range shall be drawn.
GUIColorer laneColorer
The lane colorer.
GUIColorer containerColorer
The container colorer.
Stores the information about how to visualize structures.
vehicle is a bicycle
GUIColorer edgeColorer
The mesoscopic edge colorer.
vehicle is a small delivery vehicle
bool drawLaneChangePreference
Information whether the lane change preference shall be drawn.
bool showRails
Information whether rails shall be drawn.
GUIVisualizationTextSettings vehicleName
classes which (normally) do not drive on normal roads
bool operator==(const GUIVisualizationSettings &vs2)
Comparison operator.
static const RGBColor ORANGE
Definition: RGBColor.h:195
T MAX2(T a, T b)
Definition: StdDefs.h:75
GUIVisualizationTextSettings cwaEdgeName
bool laneShowBorders
Information whether lane borders shall be drawn.
static const RGBColor BLACK
Definition: RGBColor.h:197
const SVCPermissions SVCAll
bool dither
Information whether dithering shall be enabled.
SUMOReal scale
information about a lane&#39;s width (temporary, used for a single view)
GUIVisualizationSizeSettings polySize
GUIColorer vehicleColorer
The vehicle colorer.
GUIVisualizationTextSettings edgeName
GUIVisualizationSizeSettings addSize
void save(OutputDevice &dev) const
static const RGBColor GREEN
Definition: RGBColor.h:190
static const RGBColor GREY
Definition: RGBColor.h:198
std::string name
The name of this setting.
GUIVisualizationTextSettings internalEdgeName
bool drawMinGap
Information whether the minimum gap shall be drawn.
int addMode
The additional structures visualization scheme.
GUIVisualizationTextSettings polyType
static const RGBColor MAGENTA
Definition: RGBColor.h:194
GUIVisualizationTextSettings drawLinkTLIndex
GUIColorer personColorer
The person colorer.
GUIVisualizationTextSettings internalJunctionName
GUIColorer junctionColorer
The junction colorer.
SUMOReal gridXSize
Information about the grid spacings.
GUIScaler edgeScaler
The mesoscopic edge scaler.
unsigned int addColor(const T &color, const SUMOReal threshold, const std::string &name="")
vehicle is a passenger car (a "normal" car)
GUIScaleScheme & getLaneEdgeScaleScheme()
Returns the current lane (edge) scaling schme.
int containerQuality
The quality of container drawing.
RGBColor backgroundColor
The background color to use.
bool antialiase
Information whether antialiase shall be enabled.
is an arbitrary ship
vehicle is a moped
vehicle is a taxi
GUIVisualizationSizeSettings poiSize
vehicle is a bus
static const RGBColor YELLOW
Definition: RGBColor.h:192
static const RGBColor RED
Definition: RGBColor.h:189
GUIPropertyScheme< SUMOReal > GUIScaleScheme
bool showLinkDecals
Information whether link textures (arrows) shall be drawn.
static const RGBColor CYAN
Definition: RGBColor.h:193
GUIVisualizationSizeSettings containerSize
GUIVisualizationSizeSettings personSize
int personQuality
The quality of person drawing.
bool showGrid
Information whether a grid shall be shown.
bool drawCrossingsAndWalkingareas
whether crosings and walkingareas shall be drawn
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:71
bool closeTag()
Closes the most recently opened tag.
#define SUMOReal
Definition: config.h:214
void save(OutputDevice &dev) const
Writes the settings into an output device.
GUIVisualizationSizeSettings vehicleSize
bool drawJunctionShape
whether the shape of the junction should be drawn
GUIPropertyScheme< RGBColor > GUIColorScheme
void print(OutputDevice &dev, const std::string &name) const
int vehicleQuality
The quality of vehicle drawing.
static bool UseMesoSim
this should be set at the same time as MSGlobals::gUseMesoSim
bool drawForSelecting
whether drawing is performed for the purpose of selecting objects
GUIScaler laneScaler
The lane scaler.
GUIVisualizationTextSettings drawLinkJunctionIndex
size_t getLaneEdgeScaleMode() const
Returns the number of the active lane (edge) scaling schme.
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
void lf()
writes a line feed if applicable
Definition: OutputDevice.h:235
GUIVisualizationTextSettings polyName
GUIVisualizationTextSettings containerName