Eclipse SUMO - Simulation of Urban MObility
GUIVisualizationSettings.cpp
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
16 // Stores the information about how to visualize structures
17 /****************************************************************************/
18 
19 
20 // ===========================================================================
21 // included modules
22 // ===========================================================================
23 #include <config.h>
24 
25 #include <map>
26 #include <vector>
28 
30 #include "GUIPropertyScheme.h"
31 
32 // ===========================================================================
33 // static members
34 // ===========================================================================
35 
37 
38 // -------------------------------------------------------------------------
39 // color constants for link states
40 // -------------------------------------------------------------------------
41 
42 const RGBColor SUMO_color_TL_GREEN_MAJOR(0, 255, 0);
43 const RGBColor SUMO_color_TL_GREEN_MINOR(0, 179, 0);
44 const RGBColor SUMO_color_TL_RED(255, 0, 0);
45 const RGBColor SUMO_color_TL_REDYELLOW(255, 128, 0);
46 const RGBColor SUMO_color_TL_YELLOW_MAJOR(255, 255, 0);
47 const RGBColor SUMO_color_TL_YELLOW_MINOR(255, 255, 0);
48 const RGBColor SUMO_color_TL_OFF_BLINKING(128, 64, 0);
49 const RGBColor SUMO_color_TL_OFF_NOSIGNAL(0, 255, 255);
50 const RGBColor SUMO_color_MAJOR(255, 255, 255);
51 const RGBColor SUMO_color_MINOR(51, 51, 51);
52 const RGBColor SUMO_color_EQUAL(128, 128, 128);
53 const RGBColor SUMO_color_STOP(128, 0, 128);
54 const RGBColor SUMO_color_ALLWAY_STOP(0, 0, 192);
55 const RGBColor SUMO_color_ZIPPER(192, 128, 64);
56 const RGBColor SUMO_color_DEADEND(0, 0, 0);
57 
58 // -------------------------------------------------------------------------
59 // color constants for other objects
60 // -------------------------------------------------------------------------
61 
91 
92 // -------------------------------------------------------------------------
93 // widths of certain NETEDIT objects
94 // -------------------------------------------------------------------------
95 
98 const double GUIVisualizationWidthSettings::route(0.66);
99 const double GUIVisualizationWidthSettings::trip(0.2);
101 const double GUIVisualizationWidthSettings::walk(0.25);
102 const double GUIVisualizationWidthSettings::ride(0.25);
103 
104 // -------------------------------------------------------------------------
105 // details of certain NETEDIT objects (0 = drawn always)
106 // -------------------------------------------------------------------------
107 
109 const double GUIVisualizationDetailSettings::laneTextures(20); // originally 10
111 const double GUIVisualizationDetailSettings::additionalTextures(20); // originally 10
128 
129 // -------------------------------------------------------------------------
130 // scheme names
131 // -------------------------------------------------------------------------
132 
133 const std::string GUIVisualizationSettings::SCHEME_NAME_EDGE_PARAM_NUMERICAL("by param (numerical, streetwise)");
134 const std::string GUIVisualizationSettings::SCHEME_NAME_LANE_PARAM_NUMERICAL("by param (numerical, lanewise)");
135 const std::string GUIVisualizationSettings::SCHEME_NAME_PARAM_NUMERICAL("by param (numerical)");
136 const std::string GUIVisualizationSettings::SCHEME_NAME_EDGEDATA_NUMERICAL("by edgeData (numerical, streetwise)");
137 const std::string GUIVisualizationSettings::SCHEME_NAME_SELECTION("by selection");
138 const std::string GUIVisualizationSettings::SCHEME_NAME_TYPE("by type");
139 const std::string GUIVisualizationSettings::SCHEME_NAME_PERMISSION_CODE("by permission code");
140 
141 // color constants for scheme background
142 #define COL_SCHEME_EMISSION RGBColor(255,255,210)
143 #define COL_SCHEME_MISC RGBColor(210,220,255)
144 #define COL_SCHEME_STATIC RGBColor(230,230,230)
145 #define COL_SCHEME_DYNAMIC RGBColor(220,255,220)
146 
147 // ===========================================================================
148 // member method definitions
149 // ===========================================================================
150 
151 // ---------------------------------------------------------------------------
152 // GUIVisualizationTextSettings - methods
153 // ---------------------------------------------------------------------------
154 
155 GUIVisualizationTextSettings::GUIVisualizationTextSettings(bool _show, double _size, RGBColor _color, RGBColor _bgColor, bool _constSize) :
156  show(_show),
157  size(_size),
158  color(_color),
159  bgColor(_bgColor),
160  constSize(_constSize) {
161 }
162 
163 
164 bool
166  return (show == other.show) &&
167  (size == other.size) &&
168  (color == other.color) &&
169  (bgColor == other.bgColor) &&
170  (constSize == other.constSize);
171 }
172 
173 
174 bool
176  return (show != other.show) ||
177  (size != other.size) ||
178  (color != other.color) ||
179  (bgColor != other.bgColor) ||
180  (constSize != other.constSize);
181 }
182 
183 
184 void
185 GUIVisualizationTextSettings::print(OutputDevice& dev, const std::string& name) const {
186  dev.writeAttr(name + "_show", show);
187  dev.writeAttr(name + "_size", size);
188  dev.writeAttr(name + "_color", color);
189  dev.writeAttr(name + "_bgColor", bgColor);
190  dev.writeAttr(name + "_constantSize", constSize);
191 }
192 
193 
194 double
195 GUIVisualizationTextSettings::scaledSize(double scale, double constFactor) const {
196  return constSize ? (size / scale) : (size * constFactor);
197 }
198 
199 // ---------------------------------------------------------------------------
200 // GUIVisualizationSizeSettings - methods
201 // ---------------------------------------------------------------------------
202 
203 GUIVisualizationSizeSettings::GUIVisualizationSizeSettings(double _minSize, double _exaggeration, bool _constantSize, bool _constantSizeSelected) :
204  minSize(_minSize),
205  exaggeration(_exaggeration),
206  constantSize(_constantSize),
207  constantSizeSelected(_constantSizeSelected) {
208 }
209 
210 
211 double
214  if (constantSize && (!constantSizeSelected || (o == nullptr) || gSelected.isSelected(o))) {
215  return MAX2((double)exaggeration, exaggeration * factor / s.scale);
216  } else if (!constantSizeSelected || (o == nullptr) || gSelected.isSelected(o)) {
217  return exaggeration;
218  } else {
219  return 1;
220  }
221 }
222 
223 
224 bool
226  return (constantSize == other.constantSize) &&
228  (minSize == other.minSize) &&
229  (exaggeration == other.exaggeration);
230 }
231 
232 
233 bool
235  return (constantSize != other.constantSize) ||
237  (minSize != other.minSize) ||
238  (exaggeration != other.exaggeration);
239 }
240 
241 
242 void
243 GUIVisualizationSizeSettings::print(OutputDevice& dev, const std::string& name) const {
244  dev.writeAttr(name + "_minSize", minSize);
245  dev.writeAttr(name + "_exaggeration", exaggeration);
246  dev.writeAttr(name + "_constantSize", constantSize);
247  dev.writeAttr(name + "_constantSizeSelected", constantSizeSelected);
248 }
249 
250 // ---------------------------------------------------------------------------
251 // GUIVisualizationColorSettings - methods
252 // ---------------------------------------------------------------------------
253 
255  selectionColor(0, 0, 204, 255),
256  selectedEdgeColor(0, 0, 204, 255),
257  selectedLaneColor(0, 0, 128, 255),
258  selectedConnectionColor(0, 0, 100, 255),
259  selectedProhibitionColor(0, 0, 120, 255),
260  selectedCrossingColor(0, 100, 196, 255),
261  selectedAdditionalColor(0, 0, 150, 255),
262  selectedRouteColor(0, 0, 150, 255),
263  selectedVehicleColor(0, 0, 100, 255),
264  selectedPersonColor(0, 0, 120, 255),
265  selectedPersonPlanColor(0, 0, 130, 255) {
266 }
267 
268 
269 bool
271  return (selectionColor == v2.selectionColor) &&
282 }
283 
284 
285 bool
287  return (selectionColor != v2.selectionColor) ||
298 }
299 
300 // ---------------------------------------------------------------------------
301 // GUIVisualizationSettings - methods
302 // ---------------------------------------------------------------------------
303 
305  name(""),
306  netedit(_netedit),
307  angle(0),
308  dither(false),
309  fps(false),
310  backgroundColor(RGBColor::WHITE),
311  showGrid(false), gridXSize(100), gridYSize(100),
312  laneShowBorders(false), showBikeMarkings(true), showLinkDecals(true),
313  showLinkRules(true), showRails(true),
314  edgeName(false, 60, RGBColor(255, 128, 0, 255)),
315  internalEdgeName(false, 45, RGBColor(128, 64, 0, 255)),
316  cwaEdgeName(false, 60, RGBColor::MAGENTA),
317  streetName(false, 60, RGBColor::YELLOW),
318  edgeValue(false, 100, RGBColor::CYAN),
319  hideConnectors(false),
320  laneWidthExaggeration(1),
321  laneMinSize(0),
322  showLaneDirection(false),
323  showSublanes(true),
324  spreadSuperposed(false),
325  edgeParam("EDGE_KEY"),
326  laneParam("LANE_KEY"),
327  vehicleParam("PARAM_NUMERICAL"),
328  vehicleTextParam("PARAM_TEXT"),
329  edgeData("speed"),
330  vehicleQuality(0), showBlinker(true),
331  drawLaneChangePreference(false),
332  drawMinGap(false),
333  drawBrakeGap(false),
334  showBTRange(false),
335  showRouteIndex(false),
336  vehicleSize(1),
337  vehicleName(false, 60, RGBColor(204, 153, 0, 255)),
338  vehicleValue(false, 80, RGBColor::CYAN),
339  vehicleText(false, 80, RGBColor::RED),
340  personQuality(0),
341  personSize(1),
342  personName(false, 60, RGBColor(0, 153, 204, 255)),
343  personValue(false, 80, RGBColor::CYAN),
344  containerQuality(0),
345  containerSize(1),
346  containerName(false, 60, RGBColor(0, 153, 204, 255)),
347  drawLinkTLIndex(false, 50, RGBColor(128, 128, 255, 255)),
348  drawLinkJunctionIndex(false, 50, RGBColor(128, 128, 255, 255)),
349  junctionName(false, 60, RGBColor(0, 255, 128, 255)),
350  internalJunctionName(false, 50, RGBColor(0, 204, 128, 255)),
351  tlsPhaseIndex(false, 150, RGBColor(255, 255, 0, 255)),
352  showLane2Lane(false),
353  drawJunctionShape(true),
354  drawCrossingsAndWalkingareas(true),
355  junctionSize(1),
356  addMode(0),
357  addSize(1),
358  addName(false, 60, RGBColor(255, 0, 128, 255)),
359  addFullName(false, 60, RGBColor(255, 0, 128, 255)),
360  poiSize(0), poiName(false, 50, RGBColor(255, 0, 128, 255)),
361  poiType(false, 60, RGBColor(255, 0, 128, 255)),
362  polySize(0), polyName(false, 50, RGBColor(255, 0, 128, 255)),
363  polyType(false, 60, RGBColor(255, 0, 128, 255)),
364  showSizeLegend(true),
365  showColorLegend(false),
366  gaming(false),
367  drawBoundaries(false),
368  selectionScale(1.),
369  drawForPositionSelection(false),
370  drawForRectangleSelection(false),
371  forceDrawForPositionSelection(false),
372  forceDrawForRectangleSelection(false),
373  lefthand(false),
374  disableLaneIcons(false) {
375 
376  if (netedit) {
378  } else {
380  }
381 }
382 
383 
384 void
387  GUIColorScheme scheme = GUIColorScheme("uniform", RGBColor::BLACK, "road", true, 0);
388  scheme.addColor(RGBColor::GREY, 1, "sidewalk");
389  scheme.addColor(RGBColor(192, 66, 44), 2, "bike lane");
390  scheme.addColor(RGBColor(0, 0, 0, 0), 3, "green verge");
391  scheme.addColor(RGBColor(150, 200, 200), 4, "waterway");
392  scheme.addColor(RGBColor::BLACK, 5, "railway");
393  scheme.addColor(RGBColor(92, 92, 92), 6, "no passenger"); // paths, service roads etc
394  scheme.addColor(RGBColor::RED, 7, "closed"); // road closing
395  scheme.addColor(RGBColor::GREEN, 8, "connector"); // macro-connector
396  scheme.addColor(RGBColor::ORANGE, 9, "forbidden"); // forbidden road
397  laneColorer.addScheme(scheme);
398  scheme = GUIColorScheme(SCHEME_NAME_SELECTION, RGBColor(128, 128, 128, 255), "unselected", true, 0, COL_SCHEME_MISC);
399  scheme.addColor(RGBColor(0, 80, 180, 255), 1, "selected");
400  laneColorer.addScheme(scheme);
401  scheme = GUIColorScheme(SCHEME_NAME_PERMISSION_CODE, RGBColor(240, 240, 240), "nobody");
402  scheme.addColor(RGBColor(10, 10, 10), (double)SVC_PASSENGER, "passenger");
403  scheme.addColor(RGBColor(128, 128, 128), (double)SVC_PEDESTRIAN, "pedestrian");
404  scheme.addColor(RGBColor(80, 80, 80), (double)(SVC_PEDESTRIAN | SVC_DELIVERY), "pedestrian_delivery");
405  scheme.addColor(RGBColor(192, 66, 44), (double)SVC_BICYCLE, "bicycle");
406  scheme.addColor(RGBColor(40, 100, 40), (double)SVC_BUS, "bus");
407  scheme.addColor(RGBColor(166, 147, 26), (double)SVC_TAXI, "taxi");
408  scheme.addColor(RGBColor::BLACK, (double)(SVCAll & ~SVC_NON_ROAD), "normal_road");
409  scheme.addColor(RGBColor::BLACK, (double)(SVCAll & ~(SVC_PEDESTRIAN | SVC_NON_ROAD)), "disallow_pedestrian");
410  scheme.addColor(RGBColor(255, 206, 0), (double)(SVCAll & ~(SVC_PEDESTRIAN | SVC_BICYCLE | SVC_MOPED | SVC_NON_ROAD)), "motorway");
411  scheme.addColor(RGBColor(150, 200, 200), (double)SVC_SHIP, "waterway");
412  scheme.addColor(RGBColor::GREEN, (double)SVCAll, "all");
413  laneColorer.addScheme(scheme);
414  // ... traffic states ...
415  scheme = GUIColorScheme("by allowed speed (lanewise)", RGBColor::RED);
416  scheme.addColor(RGBColor::YELLOW, (double)(30 / 3.6));
417  scheme.addColor(RGBColor::GREEN, (double)(55 / 3.6));
418  scheme.addColor(RGBColor::CYAN, (double)(80 / 3.6));
419  scheme.addColor(RGBColor::BLUE, (double)(120 / 3.6));
420  scheme.addColor(RGBColor::MAGENTA, (double)(150 / 3.6));
421  laneColorer.addScheme(scheme);
422  scheme = GUIColorScheme("by current occupancy (lanewise, brutto)", RGBColor(235, 235, 235), "", false, 0, COL_SCHEME_DYNAMIC);
423  scheme.addColor(RGBColor::GREEN, 0.25);
424  scheme.addColor(RGBColor::YELLOW, 0.5);
425  scheme.addColor(RGBColor::ORANGE, 0.75);
426  scheme.addColor(RGBColor::RED, 1.0);
427  laneColorer.addScheme(scheme);
428  scheme = GUIColorScheme("by current occupancy (lanewise, netto)", RGBColor(235, 235, 235), "", false, 0, COL_SCHEME_DYNAMIC);
429  scheme.addColor(RGBColor::GREEN, 0.25);
430  scheme.addColor(RGBColor::YELLOW, 0.5);
431  scheme.addColor(RGBColor::ORANGE, 0.75);
432  scheme.addColor(RGBColor::RED, 1.0);
433  laneColorer.addScheme(scheme);
434  scheme = GUIColorScheme("by first vehicle waiting time (lanewise)", RGBColor(235, 235, 235), "", false, 0, COL_SCHEME_DYNAMIC);
435  scheme.addColor(RGBColor::CYAN, (double)30);
436  scheme.addColor(RGBColor::GREEN, (double)100);
437  scheme.addColor(RGBColor::YELLOW, (double)200);
438  scheme.addColor(RGBColor::RED, (double)300);
439  laneColorer.addScheme(scheme);
440  scheme = GUIColorScheme("by lane number (streetwise)", RGBColor::RED);
441  scheme.addColor(RGBColor::BLUE, (double)5);
442  laneColorer.addScheme(scheme);
443  // ... emissions ...
444  scheme = GUIColorScheme("by CO2 emissions", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
445  scheme.addColor(RGBColor::RED, (double)(10. / 7.5 / 5.));
446  laneColorer.addScheme(scheme);
447  scheme = GUIColorScheme("by CO emissions", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
448  scheme.addColor(RGBColor::RED, (double)(0.05 / 7.5 / 2.));
449  laneColorer.addScheme(scheme);
450  scheme = GUIColorScheme("by PMx emissions", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
451  scheme.addColor(RGBColor::RED, (double)(.005 / 7.5 / 5.));
452  laneColorer.addScheme(scheme);
453  scheme = GUIColorScheme("by NOx emissions", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
454  scheme.addColor(RGBColor::RED, (double)(.125 / 7.5 / 5.));
455  laneColorer.addScheme(scheme);
456  scheme = GUIColorScheme("by HC emissions", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
457  scheme.addColor(RGBColor::RED, (double)(.02 / 7.5 / 4.));
458  laneColorer.addScheme(scheme);
459  scheme = GUIColorScheme("by fuel consumption", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
460  scheme.addColor(RGBColor::RED, (double)(.005 / 7.5 * 100.));
461  laneColorer.addScheme(scheme);
462  scheme = GUIColorScheme("by noise emissions (Harmonoise)", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
463  scheme.addColor(RGBColor::RED, (double)100);
464  laneColorer.addScheme(scheme);
465  // ... weights (experimental) ...
466  scheme = GUIColorScheme("by global travel time", RGBColor::GREEN);
467  scheme.addColor(RGBColor::RED, (double)100);
468  scheme.setAllowsNegativeValues(true);
469  laneColorer.addScheme(scheme);
470  scheme = GUIColorScheme("by global speed percentage", RGBColor::RED);
471  scheme.addColor(RGBColor::YELLOW, (double)50);
472  scheme.addColor(RGBColor::GREEN, (double)100);
473  scheme.setAllowsNegativeValues(true);
474  laneColorer.addScheme(scheme);
475  scheme = GUIColorScheme("by given length/geometrical length", RGBColor::BLACK);
476  scheme.addColor(RGBColor::RED, 0.25);
477  scheme.addColor(RGBColor::YELLOW, 0.5);
478  scheme.addColor(RGBColor(179, 179, 179, 255), (double)1.0);
479  scheme.addColor(RGBColor::GREEN, (double)2.0);
480  scheme.addColor(RGBColor::BLUE, (double)4.0);
481  laneColorer.addScheme(scheme);
482  laneColorer.addScheme(GUIColorScheme("by angle", RGBColor::YELLOW, "", true));
483  scheme = GUIColorScheme("by loaded weight", RGBColor::GREEN);
484  scheme.addColor(RGBColor::RED, (double)100);
485  scheme.setAllowsNegativeValues(true);
486  laneColorer.addScheme(scheme);
487  scheme = GUIColorScheme("by priority", RGBColor::YELLOW);
488  scheme.addColor(RGBColor::RED, (double) - 20);
489  scheme.addColor(RGBColor::GREEN, (double)20);
490  scheme.setAllowsNegativeValues(true);
491  laneColorer.addScheme(scheme);
492  scheme = GUIColorScheme("by height at start", RGBColor::GREY);
493  scheme.addColor(RGBColor::BLUE, (double) - 10);
494  scheme.addColor(RGBColor::RED, (double)10);
495  scheme.addColor(RGBColor::YELLOW, (double)50);
496  scheme.addColor(RGBColor::GREEN, (double)100);
497  scheme.addColor(RGBColor::MAGENTA, (double)200);
498  scheme.setAllowsNegativeValues(true);
499  laneColorer.addScheme(scheme);
500  scheme = GUIColorScheme("by height at geometry-segment start", RGBColor::GREY);
501  scheme.addColor(RGBColor::BLUE, (double) - 10);
502  scheme.addColor(RGBColor::RED, (double)10);
503  scheme.addColor(RGBColor::YELLOW, (double)50);
504  scheme.addColor(RGBColor::GREEN, (double)100);
505  scheme.addColor(RGBColor::MAGENTA, (double)200);
506  scheme.setAllowsNegativeValues(true);
507  laneColorer.addScheme(scheme);
508  scheme = GUIColorScheme("by inclination", RGBColor::GREY);
509  scheme.addColor(RGBColor::YELLOW, (double) .1);
510  scheme.addColor(RGBColor::RED, (double) .3);
511  scheme.addColor(RGBColor::GREEN, (double) - .1);
512  scheme.addColor(RGBColor::BLUE, (double) - .3);
513  scheme.setAllowsNegativeValues(true);
514  laneColorer.addScheme(scheme);
515  scheme = GUIColorScheme("by geometry-segment inclination", RGBColor::GREY);
516  scheme.addColor(RGBColor::YELLOW, (double) .1);
517  scheme.addColor(RGBColor::RED, (double) .3);
518  scheme.addColor(RGBColor::GREEN, (double) - .1);
519  scheme.addColor(RGBColor::BLUE, (double) - .3);
520  scheme.setAllowsNegativeValues(true);
521  laneColorer.addScheme(scheme);
522  scheme = GUIColorScheme("by average speed", RGBColor::RED, "", false, 0, COL_SCHEME_DYNAMIC);
523  scheme.addColor(RGBColor::YELLOW, (double)(30 / 3.6));
524  scheme.addColor(RGBColor::GREEN, (double)(55 / 3.6));
525  scheme.addColor(RGBColor::CYAN, (double)(80 / 3.6));
526  scheme.addColor(RGBColor::BLUE, (double)(120 / 3.6));
527  scheme.addColor(RGBColor::MAGENTA, (double)(150 / 3.6));
528  laneColorer.addScheme(scheme);
529  scheme = GUIColorScheme("by average relative speed ", RGBColor::RED, "", false, 0, COL_SCHEME_DYNAMIC);
530  scheme.addColor(RGBColor::YELLOW, (double)(0.25));
531  scheme.addColor(RGBColor::GREEN, (double)(0.5));
532  scheme.addColor(RGBColor::CYAN, (double)(0.75));
533  scheme.addColor(RGBColor::BLUE, (double)(1));
534  scheme.addColor(RGBColor::MAGENTA, (double)(1.25));
535  laneColorer.addScheme(scheme);
536  scheme = GUIColorScheme("by routing device assumed speed ", RGBColor::RED, "", false, 0, COL_SCHEME_DYNAMIC);
537  scheme.addColor(RGBColor::YELLOW, (double)(30 / 3.6));
538  scheme.addColor(RGBColor::GREEN, (double)(55 / 3.6));
539  scheme.addColor(RGBColor::CYAN, (double)(80 / 3.6));
540  scheme.addColor(RGBColor::BLUE, (double)(120 / 3.6));
541  scheme.addColor(RGBColor::MAGENTA, (double)(150 / 3.6));
542  laneColorer.addScheme(scheme);
543  scheme = GUIColorScheme("by electricity consumption", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
544  scheme.addColor(RGBColor::RED, (double)(1 / 7.5 / 5.));
545  laneColorer.addScheme(scheme);
546  scheme = GUIColorScheme("by insertion-backlog (streetwise)", RGBColor(204, 204, 204), "", false, 0, COL_SCHEME_DYNAMIC);
547  scheme.addColor(RGBColor::GREEN, (double)1);
548  scheme.addColor(RGBColor::YELLOW, (double)10);
549  scheme.addColor(RGBColor::RED, (double)100);
550  laneColorer.addScheme(scheme);
551  scheme = GUIColorScheme("by TAZ (streetwise)", RGBColor(204, 204, 204), "no TAZ", true);
552  laneColorer.addScheme(scheme);
553  scheme = GUIColorScheme(SCHEME_NAME_EDGE_PARAM_NUMERICAL, RGBColor(204, 204, 204));
554  scheme.setAllowsNegativeValues(true);
555  laneColorer.addScheme(scheme);
556  scheme = GUIColorScheme(SCHEME_NAME_LANE_PARAM_NUMERICAL, RGBColor(204, 204, 204));
557  scheme.setAllowsNegativeValues(true);
558  laneColorer.addScheme(scheme);
559  scheme = GUIColorScheme(SCHEME_NAME_EDGEDATA_NUMERICAL, RGBColor(204, 204, 204));
560  scheme.setAllowsNegativeValues(true);
561  laneColorer.addScheme(scheme);
562  scheme = GUIColorScheme("by distance (kilometrage)", RGBColor(204, 204, 204));
563  scheme.addColor(RGBColor(255, 204, 204), (double)1);
564  scheme.addColor(RGBColor::RED, (double)10000);
565  scheme.addColor(RGBColor(204, 204, 255), (double) -1);
566  scheme.addColor(RGBColor::BLUE, (double) -10000);
567  scheme.setAllowsNegativeValues(true);
568  laneColorer.addScheme(scheme);
569  scheme = GUIColorScheme("by abs distance (kilometrage)", RGBColor(204, 204, 204));
570  scheme.addColor(RGBColor::RED, (double)1);
571  scheme.setAllowsNegativeValues(false);
572  laneColorer.addScheme(scheme);
573  scheme = GUIColorScheme("by reachability (traveltime)", RGBColor(204, 204, 204));
574  scheme.addColor(RGBColor::RED, (double)1);
575  scheme.setAllowsNegativeValues(true);
576  laneColorer.addScheme(scheme);
577  scheme = GUIColorScheme("by thread index", RGBColor(204, 204, 204));
578  scheme.addColor(RGBColor::RED, (double)1);
579  laneColorer.addScheme(scheme);
580 
582  vehicleColorer.addScheme(GUIColorScheme("given vehicle/type/route color", RGBColor::YELLOW, "", true));
584  vehicleColorer.addScheme(GUIColorScheme("given/assigned vehicle color", RGBColor::YELLOW, "", true));
585  vehicleColorer.addScheme(GUIColorScheme("given/assigned type color", RGBColor::YELLOW, "", true));
586  vehicleColorer.addScheme(GUIColorScheme("given/assigned route color", RGBColor::YELLOW, "", true));
587  vehicleColorer.addScheme(GUIColorScheme("depart position as HSV", RGBColor::YELLOW, "", true));
588  vehicleColorer.addScheme(GUIColorScheme("arrival position as HSV", RGBColor::YELLOW, "", true));
589  vehicleColorer.addScheme(GUIColorScheme("direction/distance as HSV", RGBColor::YELLOW, "", true));
590  scheme = GUIColorScheme("by speed", RGBColor::RED, "", false, 0, COL_SCHEME_DYNAMIC);
591  scheme.addColor(RGBColor::YELLOW, (double)(30 / 3.6));
592  scheme.addColor(RGBColor::GREEN, (double)(55 / 3.6));
593  scheme.addColor(RGBColor::CYAN, (double)(80 / 3.6));
594  scheme.addColor(RGBColor::BLUE, (double)(120 / 3.6));
595  scheme.addColor(RGBColor::MAGENTA, (double)(150 / 3.6));
596  vehicleColorer.addScheme(scheme);
597  scheme = GUIColorScheme("by action step", RGBColor::GREY, "no action", true, 0, COL_SCHEME_DYNAMIC);
598  scheme.addColor(RGBColor(0, 255, 0, 255), 1., "action in next step");
599  scheme.addColor(RGBColor(80, 160, 80, 255), 2., "had action step");
600  vehicleColorer.addScheme(scheme);
601  scheme = GUIColorScheme("by waiting time", RGBColor::BLUE, "", false, 0, COL_SCHEME_DYNAMIC);
602  scheme.addColor(RGBColor::CYAN, (double)30);
603  scheme.addColor(RGBColor::GREEN, (double)100);
604  scheme.addColor(RGBColor::YELLOW, (double)200);
605  scheme.addColor(RGBColor::RED, (double)300);
606  vehicleColorer.addScheme(scheme);
607  scheme = GUIColorScheme("by accumulated waiting time", RGBColor::BLUE, "", false, 0, COL_SCHEME_DYNAMIC);
608  scheme.addColor(RGBColor::CYAN, (double)25);
609  scheme.addColor(RGBColor::GREEN, (double)50);
610  scheme.addColor(RGBColor::YELLOW, (double)75);
611  scheme.addColor(RGBColor::RED, (double)100);
612  vehicleColorer.addScheme(scheme);
613  scheme = GUIColorScheme("by time since lane change", RGBColor(179, 179, 179, 255), "0", false, 0, COL_SCHEME_DYNAMIC);
614  scheme.addColor(RGBColor(189, 189, 179, 255), -180);
615  scheme.addColor(RGBColor(255, 255, 0, 255), -20);
616  scheme.addColor(RGBColor(255, 0, 0, 255), -0.001);
617  scheme.addColor(RGBColor(0, 0, 255, 255), 0.001);
618  scheme.addColor(RGBColor(0, 255, 255, 255), 20);
619  scheme.addColor(RGBColor(179, 189, 189, 255), 180);
620  scheme.setAllowsNegativeValues(true);
621  vehicleColorer.addScheme(scheme);
622  scheme = GUIColorScheme("by max speed", RGBColor::RED);
623  scheme.addColor(RGBColor::YELLOW, (double)(30 / 3.6));
624  scheme.addColor(RGBColor::GREEN, (double)(55 / 3.6));
625  scheme.addColor(RGBColor::CYAN, (double)(80 / 3.6));
626  scheme.addColor(RGBColor::BLUE, (double)(120 / 3.6));
627  scheme.addColor(RGBColor::MAGENTA, (double)(150 / 3.6));
628  vehicleColorer.addScheme(scheme);
629  // ... emissions ...
630  scheme = GUIColorScheme("by CO2 emissions", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
631  scheme.addColor(RGBColor::RED, (double)5.);
632  vehicleColorer.addScheme(scheme);
633  scheme = GUIColorScheme("by CO emissions", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
634  scheme.addColor(RGBColor::RED, 0.05);
635  vehicleColorer.addScheme(scheme);
636  scheme = GUIColorScheme("by PMx emissions", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
637  scheme.addColor(RGBColor::RED, (double).005);
638  vehicleColorer.addScheme(scheme);
639  scheme = GUIColorScheme("by NOx emissions", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
640  scheme.addColor(RGBColor::RED, (double).125);
641  vehicleColorer.addScheme(scheme);
642  scheme = GUIColorScheme("by HC emissions", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
643  scheme.addColor(RGBColor::RED, (double).02);
644  vehicleColorer.addScheme(scheme);
645  scheme = GUIColorScheme("by fuel consumption", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
646  scheme.addColor(RGBColor::RED, (double).005);
647  vehicleColorer.addScheme(scheme);
648  scheme = GUIColorScheme("by noise emissions (Harmonoise)", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
649  scheme.addColor(RGBColor::RED, (double)100.);
650  vehicleColorer.addScheme(scheme);
651  scheme = GUIColorScheme("by reroute number", RGBColor::RED, "", false, 0, COL_SCHEME_DYNAMIC);
652  scheme.addColor(RGBColor::YELLOW, (double)1.);
653  scheme.addColor(RGBColor::WHITE, (double)10.);
654  vehicleColorer.addScheme(scheme);
655  scheme = GUIColorScheme(SCHEME_NAME_SELECTION, RGBColor(179, 179, 179, 255), "unselected", true, 0, COL_SCHEME_MISC);
656  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
657  vehicleColorer.addScheme(scheme);
658  scheme = GUIColorScheme("by offset from best lane", RGBColor(179, 179, 179, 255), "0", false, 0, COL_SCHEME_DYNAMIC);
659  scheme.addColor(RGBColor(255, 0, 255, 255), -100, "opposite lane");
660  scheme.addColor(RGBColor(255, 0, 0, 255), -3, "-3");
661  scheme.addColor(RGBColor(255, 255, 0, 255), -1, "-1");
662  scheme.addColor(RGBColor(0, 255, 255, 255), 1, "1");
663  scheme.addColor(RGBColor(0, 0, 255, 255), 3, "3");
664  scheme.setAllowsNegativeValues(true);
665  vehicleColorer.addScheme(scheme);
666  scheme = GUIColorScheme("by acceleration", RGBColor(179, 179, 179, 255), "0", false, 0, COL_SCHEME_DYNAMIC);
667  scheme.addColor(RGBColor(64, 0, 0, 255), -9.0);
668  scheme.addColor(RGBColor(255, 0, 0, 255), -4.5 /* -SUMOVTypeParameter::getDefaultDecel() */);
669  scheme.addColor(RGBColor(255, 255, 0, 255), -0.1);
670  scheme.addColor(RGBColor(0, 255, 255, 255), 0.1);
671  scheme.addColor(RGBColor(0, 0, 255, 255), 2.6 /* SUMOVTypeParameter::getDefaultAccel() */);
672  scheme.addColor(RGBColor(255, 0, 255, 255), 5.2);
673  scheme.setAllowsNegativeValues(true);
674  vehicleColorer.addScheme(scheme);
675  scheme = GUIColorScheme("by time gap on lane", RGBColor(255, 255, 0, 255), "0", false, 0, COL_SCHEME_DYNAMIC);
676  scheme.addColor(RGBColor(179, 179, 179, 255), -1);
677  scheme.addColor(RGBColor(0, 255, 255, 255), 1);
678  scheme.addColor(RGBColor(0, 0, 255, 255), 2);
679  scheme.setAllowsNegativeValues(true);
680  vehicleColorer.addScheme(scheme);
681  scheme = GUIColorScheme("by depart delay", RGBColor::BLUE);
682  scheme.addColor(RGBColor::CYAN, (double)30);
683  scheme.addColor(RGBColor::GREEN, (double)100);
684  scheme.addColor(RGBColor::YELLOW, (double)200);
685  scheme.addColor(RGBColor::RED, (double)300);
686  vehicleColorer.addScheme(scheme);
687  scheme = GUIColorScheme("by electricity consumption", RGBColor::GREEN, "", false, 0, COL_SCHEME_EMISSION);
688  scheme.addColor(RGBColor::RED, (double)5);
689  vehicleColorer.addScheme(scheme);
690  scheme = GUIColorScheme("by time loss", RGBColor::BLUE, "", false, 0, COL_SCHEME_DYNAMIC);
691  scheme.addColor(RGBColor::CYAN, (double)10);
692  scheme.addColor(RGBColor::GREEN, (double)60);
693  scheme.addColor(RGBColor::YELLOW, (double)180);
694  scheme.addColor(RGBColor::RED, (double)900);
695  vehicleColorer.addScheme(scheme);
696  scheme = GUIColorScheme("by lateral speed", RGBColor(179, 179, 179, 255), "0", false, 0, COL_SCHEME_DYNAMIC);
697  scheme.addColor(RGBColor(255, 0, 0, 255), -3, "-1.5");
698  scheme.addColor(RGBColor(255, 255, 0, 255), -1, "-0.5");
699  scheme.addColor(RGBColor(0, 255, 255, 255), 1, "0.5");
700  scheme.addColor(RGBColor(0, 0, 255, 255), 3, "1.5");
701  scheme.setAllowsNegativeValues(true);
702  vehicleColorer.addScheme(scheme);
704  scheme = GUIColorScheme(SCHEME_NAME_PARAM_NUMERICAL, RGBColor(204, 204, 204));
705  scheme.setAllowsNegativeValues(true);
706  vehicleColorer.addScheme(scheme);
707 
709  personColorer.addScheme(GUIColorScheme("given person/type color", RGBColor::BLUE, "", true));
710  personColorer.addScheme(GUIColorScheme("uniform", RGBColor::BLUE, "", true));
711  personColorer.addScheme(GUIColorScheme("given/assigned person color", RGBColor::BLUE, "", true));
712  personColorer.addScheme(GUIColorScheme("given/assigned type color", RGBColor::BLUE, "", true));
713  scheme = GUIColorScheme("by speed", RGBColor::RED, "", false, 0, COL_SCHEME_DYNAMIC);
714  scheme.addColor(RGBColor::YELLOW, (double)(2.5 / 3.6));
715  scheme.addColor(RGBColor::GREEN, (double)(5 / 3.6));
716  scheme.addColor(RGBColor::BLUE, (double)(10 / 3.6));
717  personColorer.addScheme(scheme);
718  scheme = GUIColorScheme("by mode", RGBColor::GREY, "waiting for insertion", true, 0, COL_SCHEME_DYNAMIC);
719  scheme.addColor(RGBColor::RED, (double)(1), "stopped");
720  scheme.addColor(RGBColor::GREEN, (double)(2), "walking");
721  scheme.addColor(RGBColor::BLUE, (double)(3), "riding");
722  scheme.addColor(RGBColor::CYAN, (double)(4), "accessing trainStop");
723  scheme.addColor(RGBColor::YELLOW, (double)(5), "waiting for ride");
724  personColorer.addScheme(scheme);
725  scheme = GUIColorScheme("by waiting time", RGBColor::BLUE, "", false, 0, COL_SCHEME_DYNAMIC);
726  scheme.addColor(RGBColor::CYAN, (double)30);
727  scheme.addColor(RGBColor::GREEN, (double)100);
728  scheme.addColor(RGBColor::YELLOW, (double)200);
729  scheme.addColor(RGBColor::RED, (double)300);
730  personColorer.addScheme(scheme);
731  scheme = GUIColorScheme(SCHEME_NAME_SELECTION, RGBColor(179, 179, 179, 255), "unselected", true, 0, COL_SCHEME_MISC);
732  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
733  personColorer.addScheme(scheme);
734  personColorer.addScheme(GUIColorScheme("by angle", RGBColor::YELLOW, "", true));
736 
738  containerColorer.addScheme(GUIColorScheme("given container/type color", RGBColor::YELLOW, "", true));
740  containerColorer.addScheme(GUIColorScheme("given/assigned container color", RGBColor::YELLOW, "", true));
741  containerColorer.addScheme(GUIColorScheme("given/assigned type color", RGBColor::YELLOW, "", true));
742  scheme = GUIColorScheme("by speed", RGBColor::RED, "", false, 0, COL_SCHEME_DYNAMIC);
743  scheme.addColor(RGBColor::YELLOW, (double)(2.5 / 3.6));
744  scheme.addColor(RGBColor::GREEN, (double)(5 / 3.6));
745  scheme.addColor(RGBColor::BLUE, (double)(10 / 3.6));
746  containerColorer.addScheme(scheme);
747  scheme = GUIColorScheme("by mode", RGBColor::GREY, "waiting for insertion", true, 0, COL_SCHEME_DYNAMIC);
748  scheme.addColor(RGBColor::RED, (double)(1), "stopped");
749  scheme.addColor(RGBColor::GREEN, (double)(2), "tranship"); // walking
750  scheme.addColor(RGBColor::BLUE, (double)(3), "transport");
751  scheme.addColor(RGBColor::CYAN, (double)(4), "accessing trainStop");
752  scheme.addColor(RGBColor::YELLOW, (double)(5), "waiting for transport");
753  containerColorer.addScheme(scheme);
754  scheme = GUIColorScheme("by waiting time", RGBColor::BLUE, "", false, 0, COL_SCHEME_DYNAMIC);
755  scheme.addColor(RGBColor::CYAN, (double)30);
756  scheme.addColor(RGBColor::GREEN, (double)100);
757  scheme.addColor(RGBColor::YELLOW, (double)200);
758  scheme.addColor(RGBColor::RED, (double)300);
759  containerColorer.addScheme(scheme);
760  scheme = GUIColorScheme(SCHEME_NAME_SELECTION, RGBColor(179, 179, 179, 255), "unselected", true, 0, COL_SCHEME_MISC);
761  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
762  containerColorer.addScheme(scheme);
764 
766  scheme = GUIColorScheme("uniform", RGBColor::BLACK, "", true);
767  scheme.addColor(RGBColor(150, 200, 200), 1, "waterway");
768  scheme.addColor(RGBColor(0, 0, 0, 0), 2, "railway");
769  junctionColorer.addScheme(scheme);
770  scheme = GUIColorScheme(SCHEME_NAME_SELECTION, RGBColor(128, 128, 128, 255), "unselected", true, 0, COL_SCHEME_MISC);
771  scheme.addColor(RGBColor(0, 80, 180, 255), 1, "selected");
772  junctionColorer.addScheme(scheme);
773  scheme = GUIColorScheme(SCHEME_NAME_TYPE, RGBColor::GREEN, "traffic_light", true);
774  scheme.addColor(RGBColor(0, 128, 0), 1, "traffic_light_unregulated");
775  scheme.addColor(RGBColor::YELLOW, 2, "priority");
776  scheme.addColor(RGBColor::RED, 3, "priority_stop");
777  scheme.addColor(RGBColor::BLUE, 4, "right_before_left");
778  scheme.addColor(RGBColor::CYAN, 5, "allway_stop");
779  scheme.addColor(RGBColor::GREY, 6, "district");
780  scheme.addColor(RGBColor::MAGENTA, 7, "unregulated");
781  scheme.addColor(RGBColor::BLACK, 8, "dead_end");
782  scheme.addColor(RGBColor::ORANGE, 9, "rail_signal");
783  scheme.addColor(RGBColor(172, 108, 44), 10, "zipper"); // brown, darker than the zipper link rule
784  scheme.addColor(RGBColor(192, 255, 192), 11, "traffic_light_right_on_red"); // light green
785  scheme.addColor(RGBColor(128, 0, 128), 12, "rail_crossing"); // dark purple
786  junctionColorer.addScheme(scheme);
787  scheme = GUIColorScheme("by height", RGBColor::GREY);
788  scheme.addColor(RGBColor::BLUE, (double) - 10);
789  scheme.addColor(RGBColor::RED, (double)10);
790  scheme.addColor(RGBColor::YELLOW, (double)50);
791  scheme.addColor(RGBColor::GREEN, (double)100);
792  scheme.addColor(RGBColor::MAGENTA, (double)200);
793  scheme.setAllowsNegativeValues(true);
794  junctionColorer.addScheme(scheme);
795 
797  poiColorer.addScheme(GUIColorScheme("given POI color", RGBColor::RED, "", true));
798  scheme = GUIColorScheme(SCHEME_NAME_SELECTION, RGBColor(179, 179, 179, 255), "unselected", true, 0, COL_SCHEME_MISC);
799  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
800  poiColorer.addScheme(scheme);
801  poiColorer.addScheme(GUIColorScheme("uniform", RGBColor::RED, "", true));
802 
804  polyColorer.addScheme(GUIColorScheme("given polygon color", RGBColor::ORANGE, "", true));
805  scheme = GUIColorScheme(SCHEME_NAME_SELECTION, RGBColor(179, 179, 179, 255), "unselected", true, 0, COL_SCHEME_MISC);
806  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
807  polyColorer.addScheme(scheme);
808  polyColorer.addScheme(GUIColorScheme("uniform", RGBColor::ORANGE, "", true));
809 
811  {
812  GUIScaleScheme laneScheme = GUIScaleScheme("default", 1, "uniform", true);
813  laneScaler.addScheme(laneScheme);
814  laneScheme = GUIScaleScheme(SCHEME_NAME_SELECTION, 0.5, "unselected", true, 0, COL_SCHEME_MISC);
815  laneScheme.addColor(5, 1, "selected");
816  laneScaler.addScheme(laneScheme);
817  // ... traffic states ...
818  laneScheme = GUIScaleScheme("by allowed speed (lanewise)", 0);
819  laneScheme.addColor(10, (double)(150.0 / 3.6));
820  laneScaler.addScheme(laneScheme);
821  laneScheme = GUIScaleScheme("by current occupancy (lanewise, brutto)", 0, "", false, 0, COL_SCHEME_DYNAMIC);
822  laneScheme.addColor(10, 0.95);
823  laneScaler.addScheme(laneScheme);
824  laneScheme = GUIScaleScheme("by current occupancy (lanewise, netto)", 0, "", false, 0, COL_SCHEME_DYNAMIC);
825  laneScheme.addColor(10, 0.95);
826  laneScaler.addScheme(laneScheme);
827  laneScheme = GUIScaleScheme("by first vehicle waiting time (lanewise)", 0, "", false, 0, COL_SCHEME_DYNAMIC);
828  laneScheme.addColor(10, (double)300);
829  laneScaler.addScheme(laneScheme);
830  laneScheme = GUIScaleScheme("by lane number (streetwise)", 1);
831  laneScheme.addColor(10, (double)5);
832  laneScaler.addScheme(laneScheme);
833  // ... emissions ...
834  laneScheme = GUIScaleScheme("by CO2 emissions", 0, "", false, 0, COL_SCHEME_EMISSION);
835  laneScheme.addColor(10, (double)(10. / 7.5 / 5.));
836  laneScaler.addScheme(laneScheme);
837  laneScheme = GUIScaleScheme("by CO emissions", 0, "", false, 0, COL_SCHEME_EMISSION);
838  laneScheme.addColor(10, (double)(0.05 / 7.5 / 2.));
839  laneScaler.addScheme(laneScheme);
840  laneScheme = GUIScaleScheme("by PMx emissions", 0, "", false, 0, COL_SCHEME_EMISSION);
841  laneScheme.addColor(10, (double)(.005 / 7.5 / 5.));
842  laneScaler.addScheme(laneScheme);
843  laneScheme = GUIScaleScheme("by NOx emissions", 0, "", false, 0, COL_SCHEME_EMISSION);
844  laneScheme.addColor(10, (double)(.125 / 7.5 / 5.));
845  laneScaler.addScheme(laneScheme);
846  laneScheme = GUIScaleScheme("by HC emissions", 0, "", false, 0, COL_SCHEME_EMISSION);
847  laneScheme.addColor(10, (double)(.02 / 7.5 / 4.));
848  laneScaler.addScheme(laneScheme);
849  laneScheme = GUIScaleScheme("by fuel consumption", 0, "", false, 0, COL_SCHEME_EMISSION);
850  laneScheme.addColor(10, (double)(.005 / 7.5 * 100.));
851  laneScaler.addScheme(laneScheme);
852  laneScheme = GUIScaleScheme("by noise emissions (Harmonoise)", 0, "", false, 0, COL_SCHEME_EMISSION);
853  laneScheme.addColor(10, (double)100);
854  laneScaler.addScheme(laneScheme);
855  // ... weights (experimental) ...
856  laneScheme = GUIScaleScheme("by global travel time", 0);
857  laneScheme.addColor(10, (double)100);
858  laneScheme.setAllowsNegativeValues(true);
859  laneScaler.addScheme(laneScheme);
860  laneScheme = GUIScaleScheme("by global speed percentage", 0);
861  laneScheme.addColor(10, (double)100);
862  laneScheme.setAllowsNegativeValues(true);
863  laneScaler.addScheme(laneScheme);
864  laneScheme = GUIScaleScheme("by given length/geometrical length", 0);
865  laneScheme.addColor(10, (double)10.0);
866  laneScaler.addScheme(laneScheme);
867  laneScheme = GUIScaleScheme("by loaded weight", 0);
868  laneScheme.addColor(-1000, (double) - 1000);
869  laneScheme.addColor(1000, (double)1000);
870  laneScheme.setAllowsNegativeValues(true);
871  laneScaler.addScheme(laneScheme);
872  laneScheme = GUIScaleScheme("by priority", 1);
873  laneScheme.addColor(0.5, (double) - 20);
874  laneScheme.addColor(5, (double)20);
875  laneScheme.setAllowsNegativeValues(true);
876  laneScaler.addScheme(laneScheme);
877  laneScheme = GUIScaleScheme("by average speed", 0, "", false, 0, COL_SCHEME_DYNAMIC);
878  laneScheme.addColor(10, (double)(150.0 / 3.6));
879  laneScaler.addScheme(laneScheme);
880  laneScheme = GUIScaleScheme("by average relative speed", 0, "", false, 0, COL_SCHEME_DYNAMIC);
881  laneScheme.addColor(0.5, (double)(0.5));
882  laneScheme.addColor(2, (double)(1));
883  laneScheme.addColor(10, (double)(2));
884  laneScaler.addScheme(laneScheme);
885  laneScheme = GUIScaleScheme("by electricity consumption", 0, "", false, 0, COL_SCHEME_EMISSION);
886  laneScheme.addColor(10, (double)(1 / 7.5 / 5.));
887  laneScaler.addScheme(laneScheme);
888  laneScheme = GUIScaleScheme("by insertion-backlog (streetwise)", 0, "", false, 0, COL_SCHEME_DYNAMIC);
889  laneScheme.addColor(1, (double)1);
890  laneScheme.addColor(10, (double)10);
891  laneScheme.addColor(50, (double)100);
892  laneScaler.addScheme(laneScheme);
893  }
894 
896  edgeColorer.addScheme(GUIColorScheme("uniform", RGBColor(0, 0, 0, 0), "", true));
897  scheme = GUIColorScheme(SCHEME_NAME_SELECTION, RGBColor(128, 128, 128, 255), "unselected", true, 0, COL_SCHEME_MISC);
898  scheme.addColor(RGBColor(0, 80, 180, 255), 1, "selected");
899  edgeColorer.addScheme(scheme);
900  scheme = GUIColorScheme("by purpose (streetwise)", RGBColor(), "normal", true);
901  scheme.addColor(RGBColor(128, 0, 128, 255), 1, "connector"); // see MSEdge::EdgeBasicFunction::EDGEFUNCTION_CONNECTOR
902  scheme.addColor(RGBColor::BLUE, 2, "internal"); // see MSEdge::EdgeBasicFunction::EDGEFUNCTION_INTERNAL
903  edgeColorer.addScheme(scheme);
904  scheme = GUIColorScheme("by allowed speed (streetwise)", RGBColor::RED);
905  scheme.addColor(RGBColor::YELLOW, (double)(30 / 3.6));
906  scheme.addColor(RGBColor::GREEN, (double)(55 / 3.6));
907  scheme.addColor(RGBColor::CYAN, (double)(80 / 3.6));
908  scheme.addColor(RGBColor::BLUE, (double)(120 / 3.6));
909  scheme.addColor(RGBColor::MAGENTA, (double)(150 / 3.6));
910  edgeColorer.addScheme(scheme);
911  scheme = GUIColorScheme("by current occupancy (streetwise, brutto)", RGBColor::BLUE, "", false, 0, COL_SCHEME_DYNAMIC);
912  scheme.addColor(RGBColor::RED, 0.95);
913  edgeColorer.addScheme(scheme);
914  scheme = GUIColorScheme("by current speed (streetwise)", RGBColor::RED, "", false, 0, COL_SCHEME_DYNAMIC);
915  scheme.addColor(RGBColor::YELLOW, (double)(30 / 3.6));
916  scheme.addColor(RGBColor::GREEN, (double)(55 / 3.6));
917  scheme.addColor(RGBColor::CYAN, (double)(80 / 3.6));
918  scheme.addColor(RGBColor::BLUE, (double)(120 / 3.6));
919  scheme.addColor(RGBColor::MAGENTA, (double)(150 / 3.6));
920  edgeColorer.addScheme(scheme);
921  scheme = GUIColorScheme("by current flow (streetwise)", RGBColor::BLUE, "", false, 0, COL_SCHEME_DYNAMIC);
922  scheme.addColor(RGBColor::RED, (double)5000);
923  edgeColorer.addScheme(scheme);
924  scheme = GUIColorScheme("by relative speed (streetwise)", RGBColor::RED, "", false, 0, COL_SCHEME_DYNAMIC);
925  scheme.addColor(RGBColor::YELLOW, (double)(0.25));
926  scheme.addColor(RGBColor::GREEN, (double)(0.5));
927  scheme.addColor(RGBColor::CYAN, (double)(0.75));
928  scheme.addColor(RGBColor::BLUE, (double)(1));
929  scheme.addColor(RGBColor::MAGENTA, (double)(1.25));
930  edgeColorer.addScheme(scheme);
931  scheme = GUIColorScheme("by routing device assumed speed", RGBColor::RED, "", false, 0, COL_SCHEME_DYNAMIC);
932  scheme.addColor(RGBColor::YELLOW, (double)(30 / 3.6));
933  scheme.addColor(RGBColor::GREEN, (double)(55 / 3.6));
934  scheme.addColor(RGBColor::CYAN, (double)(80 / 3.6));
935  scheme.addColor(RGBColor::BLUE, (double)(120 / 3.6));
936  scheme.addColor(RGBColor::MAGENTA, (double)(150 / 3.6));
937  edgeColorer.addScheme(scheme);
938  edgeColorer.addScheme(GUIColorScheme("by angle", RGBColor::YELLOW, "", true));
939  scheme = GUIColorScheme("by segments (alternating)", RGBColor::BLUE, "odd", true);
940  scheme.addColor(RGBColor::RED, 1, "even");
941  edgeColorer.addScheme(scheme);
942  scheme = GUIColorScheme("by jammed state (segmentwise)", RGBColor::GREEN, "free", true, 0, COL_SCHEME_DYNAMIC);
943  scheme.addColor(RGBColor::RED, 1, "jammed");
944  edgeColorer.addScheme(scheme);
945  scheme = GUIColorScheme("by current occupancy (segmentwise, brutto)", RGBColor::BLUE, "", false, 0, COL_SCHEME_DYNAMIC);
946  scheme.addColor(RGBColor::RED, 0.95);
947  edgeColorer.addScheme(scheme);
948  scheme = GUIColorScheme("by current speed (segmentwise)", RGBColor::RED, "", false, 0, COL_SCHEME_DYNAMIC);
949  scheme.addColor(RGBColor::YELLOW, (double)(30 / 3.6));
950  scheme.addColor(RGBColor::GREEN, (double)(55 / 3.6));
951  scheme.addColor(RGBColor::CYAN, (double)(80 / 3.6));
952  scheme.addColor(RGBColor::BLUE, (double)(120 / 3.6));
953  scheme.addColor(RGBColor::MAGENTA, (double)(150 / 3.6));
954  edgeColorer.addScheme(scheme);
955  scheme = GUIColorScheme("by current flow (segmentwise)", RGBColor::BLUE, "", false, 0, COL_SCHEME_DYNAMIC);
956  scheme.addColor(RGBColor::RED, (double)5000);
957  edgeColorer.addScheme(scheme);
958  scheme = GUIColorScheme("by relative speed (segmentwise)", RGBColor::RED, "", false, 0, COL_SCHEME_DYNAMIC);
959  scheme.addColor(RGBColor::YELLOW, (double)(0.25));
960  scheme.addColor(RGBColor::GREEN, (double)(0.5));
961  scheme.addColor(RGBColor::CYAN, (double)(0.75));
962  scheme.addColor(RGBColor::BLUE, (double)(1));
963  scheme.addColor(RGBColor::MAGENTA, (double)(1.25));
964  edgeColorer.addScheme(scheme);
965  scheme = GUIColorScheme("by insertion-backlog (streetwise)", RGBColor::GREY, "", false, 0, COL_SCHEME_DYNAMIC);
966  scheme.addColor(RGBColor::GREEN, (double)1);
967  scheme.addColor(RGBColor::YELLOW, (double)10);
968  scheme.addColor(RGBColor::RED, (double)100);
969  edgeColorer.addScheme(scheme);
970  scheme = GUIColorScheme("by TAZ (streetwise)", RGBColor(204, 204, 204), "no TAZ", true);
971  edgeColorer.addScheme(scheme);
972 
974  {
975  edgeScaler.addScheme(GUIScaleScheme("uniform", 1, "", true));
976  GUIScaleScheme edgeScheme = GUIScaleScheme(SCHEME_NAME_SELECTION, 0.5, "unselected", true, 0, COL_SCHEME_MISC);
977  edgeScheme.addColor(5, 1, "selected");
978  edgeScaler.addScheme(edgeScheme);
979  edgeScheme = GUIScaleScheme("by allowed speed (streetwise)", 0);
980  edgeScheme.addColor(10, (double)(150.0 / 3.6));
981  edgeScaler.addScheme(edgeScheme);
982  edgeScheme = GUIScaleScheme("by current occupancy (streetwise, brutto)", 0, "", false, 0, COL_SCHEME_DYNAMIC);
983  edgeScheme.addColor(10, 0.95);
984  edgeScaler.addScheme(edgeScheme);
985  edgeScheme = GUIScaleScheme("by current speed (streetwise)", 0, "", false, 0, COL_SCHEME_DYNAMIC);
986  edgeScheme.addColor(10, (double)(150.0 / 3.6));
987  edgeScaler.addScheme(edgeScheme);
988  edgeScheme = GUIScaleScheme("by current flow (streetwise)", 0, "", false, 0, COL_SCHEME_DYNAMIC);
989  edgeScheme.addColor(20, (double)5000);
990  edgeScaler.addScheme(edgeScheme);
991  edgeScheme = GUIScaleScheme("by relative speed (streetwise)", 0, "", false, 0, COL_SCHEME_DYNAMIC);
992  edgeScheme.addColor(20, (double)1);
993  edgeScaler.addScheme(edgeScheme);
994  edgeScheme = GUIScaleScheme("by insertion-backlog (streetwise)", 0, "", false, 0, COL_SCHEME_DYNAMIC);
995  edgeScheme.addColor(1, (double)1);
996  edgeScheme.addColor(10, (double)10);
997  edgeScheme.addColor(50, (double)100);
998  edgeScaler.addScheme(edgeScheme);
999  }
1000 
1001 }
1002 
1003 
1004 void
1006  // init color schemes
1007  GUIColorScheme scheme = GUIColorScheme("uniform", RGBColor::BLACK, "road", true);
1008  scheme.addColor(RGBColor::GREY, 1, "Sidewalk");
1009  scheme.addColor(RGBColor(192, 66, 44), 2, "bike lane");
1010  scheme.addColor(RGBColor(200, 255, 200), 3, "green verge");
1011  scheme.addColor(RGBColor(150, 200, 200), 4, "waterway");
1012  scheme.addColor(RGBColor::BLACK, 5, "railway");
1013  scheme.addColor(RGBColor(92, 92, 92), 6, "no passenger"); // paths, service roads etc
1014  laneColorer.addScheme(scheme);
1015  scheme = GUIColorScheme(SCHEME_NAME_SELECTION, RGBColor(128, 128, 128, 255), "unselected", true, 0, COL_SCHEME_MISC);
1016  scheme.addColor(RGBColor(0, 80, 180, 255), 1, "selected");
1017  laneColorer.addScheme(scheme);
1018  scheme = GUIColorScheme("by permission code", RGBColor(240, 240, 240), "nobody");
1019  scheme.addColor(RGBColor(10, 10, 10), (double)SVC_PASSENGER, "passenger");
1020  scheme.addColor(RGBColor(128, 128, 128), (double)SVC_PEDESTRIAN, "pedestrian");
1021  scheme.addColor(RGBColor(80, 80, 80), (double)(SVC_PEDESTRIAN | SVC_DELIVERY), "pedestrian_delivery");
1022  scheme.addColor(RGBColor(192, 66, 44), (double)SVC_BICYCLE, "bicycle");
1023  scheme.addColor(RGBColor(40, 100, 40), (double)SVC_BUS, "bus");
1024  scheme.addColor(RGBColor(166, 147, 26), (double)SVC_TAXI, "taxi");
1025  scheme.addColor(RGBColor::BLACK, (double)(SVCAll & ~SVC_NON_ROAD), "normal_road");
1026  scheme.addColor(RGBColor::BLACK, (double)(SVCAll & ~(SVC_PEDESTRIAN | SVC_NON_ROAD)), "disallow_pedestrian");
1027  scheme.addColor(RGBColor(255, 206, 0), (double)(SVCAll & ~(SVC_PEDESTRIAN | SVC_BICYCLE | SVC_MOPED | SVC_NON_ROAD)), "motorway");
1028  scheme.addColor(RGBColor(150, 200, 200), (double)SVC_SHIP, "waterway");
1029  scheme.addColor(RGBColor::GREEN, (double)SVCAll, "all");
1030  laneColorer.addScheme(scheme);
1031 
1032  scheme = GUIColorScheme("by allowed speed (lanewise)", RGBColor::RED);
1033  scheme.addColor(RGBColor::YELLOW, (double)(30 / 3.6));
1034  scheme.addColor(RGBColor::GREEN, (double)(55 / 3.6));
1035  scheme.addColor(RGBColor::CYAN, (double)(80 / 3.6));
1036  scheme.addColor(RGBColor::BLUE, (double)(120 / 3.6));
1037  scheme.addColor(RGBColor::MAGENTA, (double)(150 / 3.6));
1038  laneColorer.addScheme(scheme);
1039 
1040  scheme = GUIColorScheme("by lane number (streetwise)", RGBColor::RED);
1041  scheme.addColor(RGBColor::BLUE, (double)5);
1042  laneColorer.addScheme(scheme);
1043 
1044  scheme = GUIColorScheme("by given length/geometrical length", RGBColor::BLACK);
1045  scheme.addColor(RGBColor::RED, 0.25);
1046  scheme.addColor(RGBColor::YELLOW, 0.5);
1047  scheme.addColor(RGBColor(179, 179, 179, 255), (double)1.0);
1048  scheme.addColor(RGBColor::GREEN, (double)2.0);
1049  scheme.addColor(RGBColor::BLUE, (double)4.0);
1050  laneColorer.addScheme(scheme);
1051  laneColorer.addScheme(GUIColorScheme("by angle", RGBColor::YELLOW, "", true));
1052 
1053  scheme = GUIColorScheme("by priority", RGBColor::YELLOW);
1054  scheme.addColor(RGBColor::RED, (double) - 20);
1055  scheme.addColor(RGBColor::GREEN, (double)20);
1056  scheme.setAllowsNegativeValues(true);
1057  laneColorer.addScheme(scheme);
1058  scheme = GUIColorScheme("by height at start", RGBColor::RED);
1059  scheme.addColor(RGBColor::BLUE, (double) - 10);
1060  scheme.addColor(RGBColor::YELLOW, (double)50);
1061  scheme.addColor(RGBColor::GREEN, (double)100);
1062  scheme.addColor(RGBColor::MAGENTA, (double)200);
1063  scheme.setAllowsNegativeValues(true);
1064  laneColorer.addScheme(scheme);
1065  scheme = GUIColorScheme("by height at segment start", RGBColor::RED);
1066  scheme.addColor(RGBColor::BLUE, (double) - 10);
1067  scheme.addColor(RGBColor::YELLOW, (double)50);
1068  scheme.addColor(RGBColor::GREEN, (double)100);
1069  scheme.addColor(RGBColor::MAGENTA, (double)200);
1070  scheme.setAllowsNegativeValues(true);
1071  laneColorer.addScheme(scheme);
1072  scheme = GUIColorScheme("by inclination", RGBColor::GREY);
1073  scheme.addColor(RGBColor::YELLOW, (double) .1);
1074  scheme.addColor(RGBColor::RED, (double) .3);
1075  scheme.addColor(RGBColor::GREEN, (double) - .1);
1076  scheme.addColor(RGBColor::BLUE, (double) - .3);
1077  scheme.setAllowsNegativeValues(true);
1078  laneColorer.addScheme(scheme);
1079  scheme = GUIColorScheme("by segment inclination", RGBColor::GREY);
1080  scheme.addColor(RGBColor::YELLOW, (double) .1);
1081  scheme.addColor(RGBColor::RED, (double) .3);
1082  scheme.addColor(RGBColor::GREEN, (double) - .1);
1083  scheme.addColor(RGBColor::BLUE, (double) - .3);
1084  scheme.setAllowsNegativeValues(true);
1085  laneColorer.addScheme(scheme);
1086  scheme = GUIColorScheme(SCHEME_NAME_EDGE_PARAM_NUMERICAL, RGBColor(204, 204, 204));
1087  scheme.setAllowsNegativeValues(true);
1088  laneColorer.addScheme(scheme);
1089  scheme = GUIColorScheme(SCHEME_NAME_LANE_PARAM_NUMERICAL, RGBColor(204, 204, 204));
1090  scheme.setAllowsNegativeValues(true);
1091  laneColorer.addScheme(scheme);
1092  scheme = GUIColorScheme("by distance (kilometrage)", RGBColor(204, 204, 204));
1093  scheme.addColor(RGBColor::RED, (double)1);
1094  scheme.addColor(RGBColor::RED, (double) -1);
1095  scheme.setAllowsNegativeValues(true);
1096  laneColorer.addScheme(scheme);
1097  scheme = GUIColorScheme("by abs distance (kilometrage)", RGBColor(204, 204, 204));
1098  scheme.addColor(RGBColor::RED, (double)1);
1099  scheme.setAllowsNegativeValues(false);
1100  laneColorer.addScheme(scheme);
1101 
1102  scheme = GUIColorScheme("uniform", RGBColor(102, 0, 0), "", true);
1103  scheme.addColor(RGBColor(204, 0, 0), 1, "shape not computed");
1104  scheme.addColor(RGBColor(153, 0, 0), 2, "geometry points");
1105  scheme.addColor(RGBColor::GREEN, 3, "custom shape");
1106  junctionColorer.addScheme(scheme);
1107  scheme = GUIColorScheme(SCHEME_NAME_SELECTION, RGBColor(128, 128, 128, 255), "unselected", true, 0, COL_SCHEME_MISC);
1108  scheme.addColor(RGBColor(0, 80, 180, 255), 1, "selected");
1109  junctionColorer.addScheme(scheme);
1110  scheme = GUIColorScheme(SCHEME_NAME_TYPE, RGBColor::GREEN, "traffic_light", true);
1111  scheme.addColor(RGBColor(0, 128, 0), 1, "traffic_light_unregulated");
1112  scheme.addColor(RGBColor::YELLOW, 2, "priority");
1113  scheme.addColor(RGBColor::RED, 3, "priority_stop");
1114  scheme.addColor(RGBColor::BLUE, 4, "right_before_left");
1115  scheme.addColor(RGBColor::CYAN, 5, "allway_stop");
1116  scheme.addColor(RGBColor::GREY, 6, "district");
1117  scheme.addColor(RGBColor::MAGENTA, 7, "unregulated");
1118  scheme.addColor(RGBColor::BLACK, 8, "dead_end");
1119  scheme.addColor(RGBColor::ORANGE, 9, "rail_signal");
1120  scheme.addColor(RGBColor(172, 108, 44), 10, "zipper"); // brown, darker than the zipper link rule
1121  scheme.addColor(RGBColor(192, 255, 192), 11, "traffic_light_right_on_red");
1122  scheme.addColor(RGBColor(128, 0, 128), 12, "rail_crossing"); // dark purple
1123  junctionColorer.addScheme(scheme);
1124  scheme = GUIColorScheme("by height", RGBColor::GREY);
1125  scheme.addColor(RGBColor::BLUE, (double) - 10);
1126  scheme.addColor(RGBColor::RED, (double)10);
1127  scheme.addColor(RGBColor::YELLOW, (double)50);
1128  scheme.addColor(RGBColor::GREEN, (double)100);
1129  scheme.addColor(RGBColor::MAGENTA, (double)200);
1130  scheme.setAllowsNegativeValues(true);
1131  junctionColorer.addScheme(scheme);
1132 
1134  poiColorer.addScheme(GUIColorScheme("given POI color", RGBColor::RED, "", true));
1135  scheme = GUIColorScheme(SCHEME_NAME_SELECTION, RGBColor(179, 179, 179, 255), "unselected", true, 0, COL_SCHEME_MISC);
1136  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
1137  poiColorer.addScheme(scheme);
1138  poiColorer.addScheme(GUIColorScheme("uniform", RGBColor::RED, "", true));
1139 
1141  polyColorer.addScheme(GUIColorScheme("given polygon color", RGBColor::ORANGE, "", true));
1142  scheme = GUIColorScheme(SCHEME_NAME_SELECTION, RGBColor(179, 179, 179, 255), "unselected", true, 0, COL_SCHEME_MISC);
1143  scheme.addColor(RGBColor(0, 102, 204, 255), 1, "selected");
1144  polyColorer.addScheme(scheme);
1145  polyColorer.addScheme(GUIColorScheme("uniform", RGBColor::ORANGE, "", true));
1146 
1148  {
1149  GUIScaleScheme edgeScheme = GUIScaleScheme("default", 1, "uniform", true);
1150  laneScaler.addScheme(edgeScheme);
1151  }
1152 
1153  // dummy schemes
1155  personColorer.addScheme(GUIColorScheme("uniform", RGBColor::YELLOW, "", true));
1157 }
1158 
1159 
1160 int
1162  if (UseMesoSim) {
1163  return edgeColorer.getActive();
1164  }
1165  return laneColorer.getActive();
1166 }
1167 
1168 
1169 int
1171  if (UseMesoSim) {
1172  return edgeScaler.getActive();
1173  }
1174  return laneScaler.getActive();
1175 }
1176 
1177 
1180  if (UseMesoSim) {
1181  return edgeColorer.getScheme();
1182  }
1183  return laneColorer.getScheme();
1184 }
1185 
1186 
1189  if (UseMesoSim) {
1190  return edgeScaler.getScheme();
1191  }
1192  return laneScaler.getScheme();
1193 }
1194 
1195 
1196 void
1201  dev.writeAttr("dither", dither);
1202  dev.writeAttr("fps", fps);
1203  dev.writeAttr("drawBoundaries", drawBoundaries);
1204  dev.writeAttr("forceDrawPositionSelection", forceDrawForPositionSelection);
1205  dev.writeAttr("forceDrawRectangleSelection", forceDrawForRectangleSelection);
1206  dev.closeTag();
1208  dev.writeAttr("backgroundColor", backgroundColor);
1209  dev.writeAttr("showGrid", showGrid);
1210  dev.writeAttr("gridXSize", gridXSize);
1211  dev.writeAttr("gridYSize", gridYSize);
1212  dev.closeTag();
1213  // edges
1215  dev.writeAttr("laneEdgeMode", getLaneEdgeMode());
1216  dev.writeAttr("scaleMode", getLaneEdgeScaleMode());
1217  dev.writeAttr("laneShowBorders", laneShowBorders);
1218  dev.writeAttr("showBikeMarkings", showBikeMarkings);
1219  dev.writeAttr("showLinkDecals", showLinkDecals);
1220  dev.writeAttr("showLinkRules", showLinkRules);
1221  dev.writeAttr("showRails", showRails);
1222  dev.writeAttr("hideConnectors", hideConnectors);
1223  dev.writeAttr("widthExaggeration", laneWidthExaggeration);
1224  dev.writeAttr("minSize", laneMinSize);
1225  dev.writeAttr("showDirection", showLaneDirection);
1226  dev.writeAttr("showSublanes", showSublanes);
1227  dev.writeAttr("spreadSuperposed", spreadSuperposed);
1228  dev.writeAttr("edgeParam", edgeParam);
1229  dev.writeAttr("laneParam", laneParam);
1230  dev.writeAttr("vehicleParam", vehicleParam);
1231  dev.writeAttr("vehicleTextParam", vehicleTextParam);
1232  dev.writeAttr("edgeData", edgeData);
1233  dev.lf();
1234  dev << " ";
1235  edgeName.print(dev, "edgeName");
1236  dev.lf();
1237  dev << " ";
1238  internalEdgeName.print(dev, "internalEdgeName");
1239  dev.lf();
1240  dev << " ";
1241  cwaEdgeName.print(dev, "cwaEdgeName");
1242  dev.lf();
1243  dev << " ";
1244  streetName.print(dev, "streetName");
1245  dev.lf();
1246  dev << " ";
1247  edgeValue.print(dev, "edgeValue");
1248  laneColorer.save(dev);
1249  laneScaler.save(dev);
1250  edgeColorer.save(dev);
1251  edgeScaler.save(dev);
1252  dev.closeTag();
1253  // vehicles
1255  dev.writeAttr("vehicleMode", vehicleColorer.getActive());
1256  dev.writeAttr("vehicleQuality", vehicleQuality);
1257  vehicleSize.print(dev, "vehicle");
1258  dev.writeAttr("showBlinker", showBlinker);
1259  dev.writeAttr("drawMinGap", drawMinGap);
1260  dev.writeAttr("drawBrakeGap", drawBrakeGap);
1261  dev.writeAttr("showBTRange", showBTRange);
1262  dev.writeAttr("showRouteIndex", showRouteIndex);
1263  dev.lf();
1264  dev << " ";
1265  vehicleName.print(dev, "vehicleName");
1266  dev.lf();
1267  dev << " ";
1268  vehicleValue.print(dev, "vehicleValue");
1269  dev.lf();
1270  dev << " ";
1271  vehicleText.print(dev, "vehicleText");
1272  vehicleColorer.save(dev);
1273  dev.closeTag();
1274  // persons
1276  dev.writeAttr("personMode", personColorer.getActive());
1277  dev.writeAttr("personQuality", personQuality);
1278  personSize.print(dev, "person");
1279  dev.lf();
1280  dev << " ";
1281  personName.print(dev, "personName");
1282  dev.lf();
1283  dev << " ";
1284  personValue.print(dev, "personValue");
1285  personColorer.save(dev);
1286  dev.closeTag();
1287  // containers
1289  dev.writeAttr("containerMode", containerColorer.getActive());
1290  dev.writeAttr("containerQuality", containerQuality);
1291  containerSize.print(dev, "container");
1292  dev.lf();
1293  dev << " ";
1294  containerName.print(dev, "containerName");
1295  containerColorer.save(dev);
1296  dev.closeTag();
1297  // junctions
1299  dev.writeAttr("junctionMode", junctionColorer.getActive());
1300  dev.lf();
1301  dev << " ";
1302  drawLinkTLIndex.print(dev, "drawLinkTLIndex");
1303  dev.lf();
1304  dev << " ";
1305  drawLinkJunctionIndex.print(dev, "drawLinkJunctionIndex");
1306  dev.lf();
1307  dev << " ";
1308  junctionName.print(dev, "junctionName");
1309  dev.lf();
1310  dev << " ";
1311  internalJunctionName.print(dev, "internalJunctionName");
1312  dev.lf();
1313  dev << " ";
1314  tlsPhaseIndex.print(dev, "tlsPhaseIndex");
1315  dev.lf();
1316  dev << " ";
1317  dev.writeAttr("showLane2Lane", showLane2Lane);
1318  dev.writeAttr("drawShape", drawJunctionShape);
1319  dev.writeAttr("drawCrossingsAndWalkingareas", drawCrossingsAndWalkingareas);
1320  junctionSize.print(dev, "junction");
1321  junctionColorer.save(dev);
1322  dev.closeTag();
1323  // additionals
1325  dev.writeAttr("addMode", addMode);
1326  addSize.print(dev, "add");
1327  addName.print(dev, "addName");
1328  addFullName.print(dev, "addFullName");
1329  dev.closeTag();
1330  // pois
1332  poiSize.print(dev, "poi");
1333  poiName.print(dev, "poiName");
1334  poiType.print(dev, "poiType");
1335  poiColorer.save(dev);
1336  dev.closeTag();
1337  // polys
1339  polySize.print(dev, "poly");
1340  polyName.print(dev, "polyName");
1341  polyType.print(dev, "polyType");
1342  polyColorer.save(dev);
1343  dev.closeTag();
1344  // legend
1346  dev.writeAttr("showSizeLegend", showSizeLegend);
1347  dev.writeAttr("showColorLegend", showColorLegend);
1348  dev.closeTag();
1349 
1350  dev.closeTag();
1351 }
1352 
1353 
1354 bool
1356  if (dither != v2.dither) {
1357  return false;
1358  }
1359  if (fps != v2.fps) {
1360  return false;
1361  }
1362  if (drawBoundaries != v2.drawBoundaries) {
1363  return false;
1364  }
1366  return false;
1367  }
1369  return false;
1370  }
1371  if (backgroundColor != v2.backgroundColor) {
1372  return false;
1373  }
1374  if (colorSettings != v2.colorSettings) {
1375  return false;
1376  }
1377  if (showGrid != v2.showGrid) {
1378  return false;
1379  }
1380  if (gridXSize != v2.gridXSize) {
1381  return false;
1382  }
1383  if (gridYSize != v2.gridYSize) {
1384  return false;
1385  }
1386 
1387  if (!(edgeColorer == v2.edgeColorer)) {
1388  return false;
1389  }
1390  if (!(edgeScaler == v2.edgeScaler)) {
1391  return false;
1392  }
1393  if (!(laneColorer == v2.laneColorer)) {
1394  return false;
1395  }
1396  if (!(laneScaler == v2.laneScaler)) {
1397  return false;
1398  }
1399  if (laneShowBorders != v2.laneShowBorders) {
1400  return false;
1401  }
1402  if (showBikeMarkings != v2.showBikeMarkings) {
1403  return false;
1404  }
1405  if (showLinkDecals != v2.showLinkDecals) {
1406  return false;
1407  }
1408  if (showLinkRules != v2.showLinkRules) {
1409  return false;
1410  }
1411  if (showRails != v2.showRails) {
1412  return false;
1413  }
1414  if (edgeName != v2.edgeName) {
1415  return false;
1416  }
1417  if (internalEdgeName != v2.internalEdgeName) {
1418  return false;
1419  }
1420  if (cwaEdgeName != v2.cwaEdgeName) {
1421  return false;
1422  }
1423  if (streetName != v2.streetName) {
1424  return false;
1425  }
1426  if (edgeValue != v2.edgeValue) {
1427  return false;
1428  }
1429  if (hideConnectors != v2.hideConnectors) {
1430  return false;
1431  }
1433  return false;
1434  }
1435  if (laneMinSize != v2.laneMinSize) {
1436  return false;
1437  }
1439  return false;
1440  }
1441  if (showSublanes != v2.showSublanes) {
1442  return false;
1443  }
1444  if (spreadSuperposed != v2.spreadSuperposed) {
1445  return false;
1446  }
1447  if (edgeParam != v2.edgeParam) {
1448  return false;
1449  }
1450  if (laneParam != v2.laneParam) {
1451  return false;
1452  }
1453  if (vehicleParam != v2.vehicleParam) {
1454  return false;
1455  }
1456  if (vehicleTextParam != v2.vehicleTextParam) {
1457  return false;
1458  }
1459  if (edgeData != v2.edgeData) {
1460  return false;
1461  }
1462  if (!(vehicleColorer == v2.vehicleColorer)) {
1463  return false;
1464  }
1465  if (vehicleQuality != v2.vehicleQuality) {
1466  return false;
1467  }
1468  if (vehicleSize != v2.vehicleSize) {
1469  return false;
1470  }
1471  if (showBlinker != v2.showBlinker) {
1472  return false;
1473  }
1475  return false;
1476  }
1477  if (drawMinGap != v2.drawMinGap) {
1478  return false;
1479  }
1480  if (drawBrakeGap != v2.drawBrakeGap) {
1481  return false;
1482  }
1483  if (showBTRange != v2.showBTRange) {
1484  return false;
1485  }
1486  if (showRouteIndex != v2.showRouteIndex) {
1487  return false;
1488  }
1489  if (vehicleName != v2.vehicleName) {
1490  return false;
1491  }
1492  if (vehicleValue != v2.vehicleValue) {
1493  return false;
1494  }
1495  if (vehicleText != v2.vehicleText) {
1496  return false;
1497  }
1498  if (!(personColorer == v2.personColorer)) {
1499  return false;
1500  }
1501  if (personQuality != v2.personQuality) {
1502  return false;
1503  }
1504  if (personSize != v2.personSize) {
1505  return false;
1506  }
1507  if (personName != v2.personName) {
1508  return false;
1509  }
1510  if (personValue != v2.personValue) {
1511  return false;
1512  }
1513  if (!(containerColorer == v2.containerColorer)) {
1514  return false;
1515  }
1516  if (containerQuality != v2.containerQuality) {
1517  return false;
1518  }
1519  if (containerSize != v2.containerSize) {
1520  return false;
1521  }
1522  if (containerName != v2.containerName) {
1523  return false;
1524  }
1525  if (!(junctionColorer == v2.junctionColorer)) {
1526  return false;
1527  }
1528  if (!(poiColorer == v2.poiColorer)) {
1529  return false;
1530  }
1531  if (!(polyColorer == v2.polyColorer)) {
1532  return false;
1533  }
1534  if (drawLinkTLIndex != v2.drawLinkTLIndex) {
1535  return false;
1536  }
1538  return false;
1539  }
1540  if (junctionName != v2.junctionName) {
1541  return false;
1542  }
1544  return false;
1545  }
1546  if (tlsPhaseIndex != v2.tlsPhaseIndex) {
1547  return false;
1548  }
1549 
1550  if (showLane2Lane != v2.showLane2Lane) {
1551  return false;
1552  }
1553 
1555  return false;
1556  }
1557 
1559  return false;
1560  }
1561  if (junctionSize != v2.junctionSize) {
1562  return false;
1563  }
1564 
1565  if (addMode != v2.addMode) {
1566  return false;
1567  }
1568  if (addSize != v2.addSize) {
1569  return false;
1570  }
1571  if (addName != v2.addName) {
1572  return false;
1573  }
1574  if (addFullName != v2.addFullName) {
1575  return false;
1576  }
1577  if (poiSize != v2.poiSize) {
1578  return false;
1579  }
1580  if (poiName != v2.poiName) {
1581  return false;
1582  }
1583  if (poiType != v2.poiType) {
1584  return false;
1585  }
1586  if (polySize != v2.polySize) {
1587  return false;
1588  }
1589  if (polyName != v2.polyName) {
1590  return false;
1591  }
1592  if (polyType != v2.polyType) {
1593  return false;
1594  }
1595 
1596  if (showSizeLegend != v2.showSizeLegend) {
1597  return false;
1598  }
1599  if (showColorLegend != v2.showColorLegend) {
1600  return false;
1601  }
1602 
1603  return true;
1604 }
1605 
1606 
1607 const RGBColor&
1609  switch (ls) {
1614  case LINKSTATE_TL_RED:
1615  return SUMO_color_TL_RED;
1617  return SUMO_color_TL_REDYELLOW;
1626  case LINKSTATE_MAJOR:
1627  return SUMO_color_MAJOR;
1628  case LINKSTATE_MINOR:
1629  return SUMO_color_MINOR;
1630  case LINKSTATE_EQUAL:
1631  return SUMO_color_EQUAL;
1632  case LINKSTATE_STOP:
1633  return SUMO_color_STOP;
1634  case LINKSTATE_ALLWAY_STOP:
1635  return SUMO_color_ALLWAY_STOP;
1636  case LINKSTATE_ZIPPER:
1637  return SUMO_color_ZIPPER;
1638  case LINKSTATE_DEADEND:
1639  return SUMO_color_DEADEND;
1640  default:
1641  throw ProcessError("No color defined for LinkState '" + std::string(ls, 1) + "'");
1642  }
1643 }
1644 
1645 
1646 double
1647 GUIVisualizationSettings::getTextAngle(double objectAngle) const {
1648  double viewAngle = objectAngle - angle;
1649  while (viewAngle < 0) {
1650  viewAngle += 360;
1651  }
1652  // fmod round towards zero which is not want we want for negative numbers
1653  viewAngle = fmod(viewAngle, 360);
1654  if (viewAngle > 90 && viewAngle < 270) {
1655  // avoid reading text on it's head
1656  objectAngle -= 180;
1657  }
1658  return objectAngle;
1659 }
1660 
1661 
1662 bool
1663 GUIVisualizationSettings::drawAdditionals(const double exaggeration) const {
1664  return (scale * exaggeration) > 1.;
1665 }
1666 
1667 
1668 bool
1669 GUIVisualizationSettings::drawDetail(const double detail, const double exaggeration) const {
1670  if (detail <= 0) {
1671  return true;
1672  } else {
1673  return ((scale * exaggeration) >= detail);
1674  }
1675 }
1676 
1677 
1678 int
1681  return 8;
1682  } else if (scale >= 10) {
1683  return 32;
1684  } else if (scale >= 2) {
1685  return 16;
1686  } else {
1687  return 8;
1688  }
1689 }
1690 
1691 /****************************************************************************/
1692 
1693 
RGBColor::GREY
static const RGBColor GREY
Definition: RGBColor.h:198
GUIVisualizationDetailSettings::vehicleBoxes
static const double vehicleBoxes
details for draw person as boxes
Definition: GUIVisualizationSettings.h:322
GUIVisualizationSettings::polySize
GUIVisualizationSizeSettings polySize
Definition: GUIVisualizationSettings.h:616
GUIVisualizationSettings::name
std::string name
The name of this setting.
Definition: GUIVisualizationSettings.h:399
GUIVisualizationWidthSettings::dottedContour
static const double dottedContour
width of dotted contours (note: must be float)
Definition: GUIVisualizationSettings.h:254
GUIVisualizationSettings::edgeColorer
GUIColorer edgeColorer
The mesoscopic edge colorer.
Definition: GUIVisualizationSettings.h:431
GUIVisualizationSettings::getLaneEdgeScaleMode
int getLaneEdgeScaleMode() const
Returns the number of the active lane (edge) scaling schme.
Definition: GUIVisualizationSettings.cpp:1170
GUIVisualizationSettings::drawForPositionSelection
bool drawForPositionSelection
whether drawing is performed for the purpose of selecting objects with a single click
Definition: GUIVisualizationSettings.h:644
GUIVisualizationSettings::fps
bool fps
Information whether frames-per-second should be drawn.
Definition: GUIVisualizationSettings.h:411
SVC_PEDESTRIAN
pedestrian
Definition: SUMOVehicleClass.h:156
GUIVisualizationColorSettings::selectedEdgeColor
RGBColor selectedEdgeColor
edge selection color
Definition: GUIVisualizationSettings.h:132
GUIVisualizationSettings::UseMesoSim
static bool UseMesoSim
this should be set at the same time as MSGlobals::gUseMesoSim
Definition: GUIVisualizationSettings.h:437
GUIVisualizationSettings::hideConnectors
bool hideConnectors
flag to show or hidde connectors
Definition: GUIVisualizationSettings.h:464
LINKSTATE_EQUAL
This is an uncontrolled, right-before-left link.
Definition: SUMOXMLDefinitions.h:1159
GUIVisualizationColorSettings::busStop
static const RGBColor busStop
color for busStops
Definition: GUIVisualizationSettings.h:174
GUIVisualizationColorSettings::operator==
bool operator==(const GUIVisualizationColorSettings &other)
equality comparator
Definition: GUIVisualizationSettings.cpp:270
GUIVisualizationDetailSettings::personShapes
static const double personShapes
details for draw person as person shapes
Definition: GUIVisualizationSettings.h:334
GUIVisualizationSettings::laneShowBorders
bool laneShowBorders
Information whether lane borders shall be drawn.
Definition: GUIVisualizationSettings.h:446
GUIPropertyScheme.h
GUIVisualizationSettings::edgeParam
std::string edgeParam
key for coloring by edge parameter
Definition: GUIVisualizationSettings.h:482
GUIVisualizationSettings::SCHEME_NAME_LANE_PARAM_NUMERICAL
static const std::string SCHEME_NAME_LANE_PARAM_NUMERICAL
Definition: GUIVisualizationSettings.h:669
GUIVisualizationSizeSettings::GUIVisualizationSizeSettings
GUIVisualizationSizeSettings(double _minSize, double _exaggeration=1.0, bool _constantSize=false, bool _constantSizeSelected=false)
constructor
Definition: GUIVisualizationSettings.cpp:203
SUMO_color_TL_GREEN_MINOR
const RGBColor SUMO_color_TL_GREEN_MINOR(0, 179, 0)
GUIVisualizationSettings::laneMinSize
double laneMinSize
The minimum visual lane width for drawing.
Definition: GUIVisualizationSettings.h:470
GUIVisualizationDetailSettings::stoppingPlaceDetails
static const double stoppingPlaceDetails
details for stopping places
Definition: GUIVisualizationSettings.h:298
GUIVisualizationSettings::junctionSize
GUIVisualizationSizeSettings junctionSize
Definition: GUIVisualizationSettings.h:578
GUIVisualizationSettings::vehicleValue
GUIVisualizationTextSettings vehicleValue
Definition: GUIVisualizationSettings.h:523
LINKSTATE_TL_OFF_BLINKING
The link is controlled by a tls which is off and blinks, has to brake.
Definition: SUMOXMLDefinitions.h:1151
GUIVisualizationSettings::tlsPhaseIndex
GUIVisualizationTextSettings tlsPhaseIndex
Definition: GUIVisualizationSettings.h:569
GUIVisualizationSettings::getTextAngle
double getTextAngle(double objectAngle) const
return an angle that is suitable for reading text aligned with the given angle (degrees)
Definition: GUIVisualizationSettings.cpp:1647
SUMO_TAG_VIEWSETTINGS_OPENGL
Definition: SUMOXMLDefinitions.h:244
GUIVisualizationTextSettings::bgColor
RGBColor bgColor
background text color
Definition: GUIVisualizationSettings.h:77
GUIVisualizationSettings::gridYSize
double gridYSize
Definition: GUIVisualizationSettings.h:423
GUIVisualizationSettings::getLaneEdgeMode
int getLaneEdgeMode() const
Returns the number of the active lane (edge) coloring schme.
Definition: GUIVisualizationSettings.cpp:1161
OutputDevice
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:63
GUIVisualizationSizeSettings::operator==
bool operator==(const GUIVisualizationSizeSettings &other)
equality comparator
Definition: GUIVisualizationSettings.cpp:225
GUIVisualizationTextSettings::operator!=
bool operator!=(const GUIVisualizationTextSettings &other)
inequality comparator
Definition: GUIVisualizationSettings.cpp:175
GUIVisualizationSettings::angle
double angle
The current view rotation angle.
Definition: GUIVisualizationSettings.h:405
RGBColor::BLACK
static const RGBColor BLACK
Definition: RGBColor.h:197
SUMO_TAG_VIEWSETTINGS_SCHEME
Definition: SUMOXMLDefinitions.h:243
LINKSTATE_TL_OFF_NOSIGNAL
The link is controlled by a tls which is off, not blinking, may pass.
Definition: SUMOXMLDefinitions.h:1153
GUIVisualizationSettings::drawForRectangleSelection
bool drawForRectangleSelection
whether drawing is performed for the purpose of selecting objects using a rectangle
Definition: GUIVisualizationSettings.h:647
GUIVisualizationSettings::drawBoundaries
bool drawBoundaries
enable or disable draw boundaries
Definition: GUIVisualizationSettings.h:638
GUIVisualizationSizeSettings::constantSizeSelected
bool constantSizeSelected
whether only selected objects shall be drawn with constant
Definition: GUIVisualizationSettings.h:112
GUIVisualizationSettings::containerName
GUIVisualizationTextSettings containerName
Definition: GUIVisualizationSettings.h:558
SUMO_TAG_VIEWSETTINGS_LEGEND
Definition: SUMOXMLDefinitions.h:254
GUIVisualizationWidthSettings::route
static const double route
width for routes
Definition: GUIVisualizationSettings.h:260
GUIVisualizationSettings::showRouteIndex
bool showRouteIndex
Information whether the route index should be shown.
Definition: GUIVisualizationSettings.h:517
GUIVisualizationColorSettings::E2
static const RGBColor E2
color for E2 detectors
Definition: GUIVisualizationSettings.h:213
GUIScaleScheme
GUIPropertyScheme< double > GUIScaleScheme
Definition: GUIPropertyScheme.h:244
GUIVisualizationSettings::SCHEME_NAME_PERMISSION_CODE
static const std::string SCHEME_NAME_PERMISSION_CODE
Definition: GUIVisualizationSettings.h:674
GUIVisualizationTextSettings::color
RGBColor color
text color
Definition: GUIVisualizationSettings.h:74
GUIVisualizationDetailSettings::stopsText
static const double stopsText
details for stop texts
Definition: GUIVisualizationSettings.h:316
GUIVisualizationSettings::showGrid
bool showGrid
Information whether a grid shall be shown.
Definition: GUIVisualizationSettings.h:420
SUMO_TAG_VIEWSETTINGS_POIS
Definition: SUMOXMLDefinitions.h:252
RGBColor::YELLOW
static const RGBColor YELLOW
Definition: RGBColor.h:192
GUIColorScheme
GUIPropertyScheme< RGBColor > GUIColorScheme
Definition: GUIPropertyScheme.h:243
GUIGlobalSelection.h
RGBColor::CYAN
static const RGBColor CYAN
Definition: RGBColor.h:193
GUIVisualizationDetailSettings::personTriangles
static const double personTriangles
details for draw person as triangles
Definition: GUIVisualizationSettings.h:328
GUIVisualizationSettings::GUIVisualizationSettings
GUIVisualizationSettings(bool _netedit=false)
constructor
Definition: GUIVisualizationSettings.cpp:304
GUIVisualizationSettings::netedit
bool netedit
Whether the settings are for Netedit.
Definition: GUIVisualizationSettings.h:402
GUIVisualizationWidthSettings::ride
static const double ride
width for rides
Definition: GUIVisualizationSettings.h:272
GUIVisualizationSettings::personColorer
GUIColorer personColorer
The person colorer.
Definition: GUIVisualizationSettings.h:532
SVC_BICYCLE
vehicle is a bicycle
Definition: SUMOVehicleClass.h:179
SVC_DELIVERY
vehicle is a small delivery vehicle
Definition: SUMOVehicleClass.h:169
LINKSTATE_TL_GREEN_MINOR
The link has green light, has to brake.
Definition: SUMOXMLDefinitions.h:1141
GUIVisualizationColorSettings::crossing
static const RGBColor crossing
color for crossings
Definition: GUIVisualizationSettings.h:165
GUIVisualizationColorSettings::selectedRouteColor
RGBColor selectedRouteColor
route selection color (used for routes and vehicle stops)
Definition: GUIVisualizationSettings.h:150
GUIVisualizationTextSettings
Definition: GUIVisualizationSettings.h:50
GUIVisualizationSettings.h
SVC_NON_ROAD
classes which (normally) do not drive on normal roads
Definition: SUMOVehicleClass.h:209
GUIVisualizationSettings::containerSize
GUIVisualizationSizeSettings containerSize
Definition: GUIVisualizationSettings.h:555
GUIVisualizationColorSettings::childConnections
static const RGBColor childConnections
color for child connections between parents and child elements
Definition: GUIVisualizationSettings.h:162
GUIVisualizationSettings::drawLinkJunctionIndex
GUIVisualizationTextSettings drawLinkJunctionIndex
Definition: GUIVisualizationSettings.h:569
GUIVisualizationSettings::vehicleSize
GUIVisualizationSizeSettings vehicleSize
Definition: GUIVisualizationSettings.h:520
GUIVisualizationSettings::showRails
bool showRails
Information whether rails shall be drawn.
Definition: GUIVisualizationSettings.h:458
GUIVisualizationSettings::vehicleColorer
GUIColorer vehicleColorer
The vehicle colorer.
Definition: GUIVisualizationSettings.h:496
GUIVisualizationDetailSettings::additionalTextures
static const double additionalTextures
details for additional textures
Definition: GUIVisualizationSettings.h:289
SUMO_TAG_VIEWSETTINGS_VEHICLES
Definition: SUMOXMLDefinitions.h:247
LINKSTATE_TL_GREEN_MAJOR
The link has green light, may pass.
Definition: SUMOXMLDefinitions.h:1139
SUMO_color_MINOR
const RGBColor SUMO_color_MINOR(51, 51, 51)
GUIVisualizationColorSettings::selectedConnectionColor
RGBColor selectedConnectionColor
connection selection color
Definition: GUIVisualizationSettings.h:138
GUIVisualizationSettings::edgeScaler
GUIScaler edgeScaler
The mesoscopic edge scaler.
Definition: GUIVisualizationSettings.h:434
GUIVisualizationColorSettings::containerStop
static const RGBColor containerStop
color for containerStops
Definition: GUIVisualizationSettings.h:180
LINKSTATE_MAJOR
This is an uncontrolled, major link, may pass.
Definition: SUMOXMLDefinitions.h:1155
SUMO_TAG_VIEWSETTINGS_BACKGROUND
Definition: SUMOXMLDefinitions.h:245
GUIVisualizationSettings::polyName
GUIVisualizationTextSettings polyName
Definition: GUIVisualizationSettings.h:619
GUIVisualizationSizeSettings::print
void print(OutputDevice &dev, const std::string &name) const
print values in output device
Definition: GUIVisualizationSettings.cpp:243
GUIVisualizationSettings::drawMinGap
bool drawMinGap
Information whether the minimum gap shall be drawn.
Definition: GUIVisualizationSettings.h:508
GUIVisualizationSettings::polyColorer
GUIColorer polyColorer
The polygon colorer.
Definition: GUIVisualizationSettings.h:613
GUIVisualizationColorSettings::crossingPriority
static const RGBColor crossingPriority
color for priority crossing
Definition: GUIVisualizationSettings.h:168
GUIVisualizationDetailSettings::vehicleShapes
static const double vehicleShapes
details for draw person as shapes
Definition: GUIVisualizationSettings.h:325
SUMO_color_EQUAL
const RGBColor SUMO_color_EQUAL(128, 128, 128)
GUIVisualizationColorSettings::chargingStation
static const RGBColor chargingStation
color for chargingStations
Definition: GUIVisualizationSettings.h:186
GUIVisualizationDetailSettings::detectorDetails
static const double detectorDetails
details for detectors
Definition: GUIVisualizationSettings.h:304
GUIVisualizationSettings::initNeteditDefaults
void initNeteditDefaults()
init default settings
Definition: GUIVisualizationSettings.cpp:1005
COL_SCHEME_DYNAMIC
#define COL_SCHEME_DYNAMIC
Definition: GUIVisualizationSettings.cpp:145
GUIVisualizationDetailSettings::geometryPointsText
static const double geometryPointsText
details for Geometry Points Texts
Definition: GUIVisualizationSettings.h:295
GUIVisualizationTextSettings::scaledSize
double scaledSize(double scale, double constFactor=0.1) const
get scale size
Definition: GUIVisualizationSettings.cpp:195
SUMO_TAG_VIEWSETTINGS_PERSONS
Definition: SUMOXMLDefinitions.h:248
SUMO_color_ZIPPER
const RGBColor SUMO_color_ZIPPER(192, 128, 64)
GUIVisualizationColorSettings::selectedProhibitionColor
RGBColor selectedProhibitionColor
prohibition selection color
Definition: GUIVisualizationSettings.h:141
OutputDevice::closeTag
bool closeTag(const std::string &comment="")
Closes the most recently opened tag and optionally adds a comment.
Definition: OutputDevice.cpp:253
GUIVisualizationSettings::junctionName
GUIVisualizationTextSettings junctionName
Definition: GUIVisualizationSettings.h:569
GUIVisualizationSettings::initSumoGuiDefaults
void initSumoGuiDefaults()
Definition: GUIVisualizationSettings.cpp:385
GUIVisualizationTextSettings::GUIVisualizationTextSettings
GUIVisualizationTextSettings(bool _show, double _size, RGBColor _color, RGBColor _bgColor=RGBColor(128, 0, 0, 0), bool _constSize=true)
constructor
Definition: GUIVisualizationSettings.cpp:155
GUIVisualizationSettings::getLaneEdgeScheme
GUIColorScheme & getLaneEdgeScheme()
Returns the current lane (edge) coloring schme.
Definition: GUIVisualizationSettings.cpp:1179
GUIVisualizationSettings::junctionColorer
GUIColorer junctionColorer
The junction colorer.
Definition: GUIVisualizationSettings.h:566
MAX2
T MAX2(T a, T b)
Definition: StdDefs.h:79
GUIVisualizationSettings::polyType
GUIVisualizationTextSettings polyType
Definition: GUIVisualizationSettings.h:622
GUIVisualizationColorSettings::containerStop_sign
static const RGBColor containerStop_sign
color for containerStop signs
Definition: GUIVisualizationSettings.h:183
GUIVisualizationSettings::drawCrossingsAndWalkingareas
bool drawCrossingsAndWalkingareas
whether crosings and walkingareas shall be drawn
Definition: GUIVisualizationSettings.h:576
OutputDevice::writeAttr
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
Definition: OutputDevice.h:255
GUIVisualizationColorSettings::E1Instant
static const RGBColor E1Instant
color for E1 Instant detectors
Definition: GUIVisualizationSettings.h:210
RGBColor
Definition: RGBColor.h:39
GUIVisualizationSettings::gridXSize
double gridXSize
Information about the grid spacings.
Definition: GUIVisualizationSettings.h:423
LinkState
LinkState
The right-of-way state of a link between two lanes used when constructing a NBTrafficLightLogic,...
Definition: SUMOXMLDefinitions.h:1137
GUIVisualizationSettings::backgroundColor
RGBColor backgroundColor
The background color to use.
Definition: GUIVisualizationSettings.h:417
GUIVisualizationSettings::internalEdgeName
GUIVisualizationTextSettings internalEdgeName
Definition: GUIVisualizationSettings.h:461
GUIVisualizationSettings::addName
GUIVisualizationTextSettings addName
Definition: GUIVisualizationSettings.h:591
SUMO_color_STOP
const RGBColor SUMO_color_STOP(128, 0, 128)
GUIVisualizationDetailSettings::lockIcon
static const double lockIcon
lock icons
Definition: GUIVisualizationSettings.h:286
GUIVisualizationSettings::save
void save(OutputDevice &dev) const
Writes the settings into an output device.
Definition: GUIVisualizationSettings.cpp:1197
RGBColor::MAGENTA
static const RGBColor MAGENTA
Definition: RGBColor.h:194
GUIVisualizationSettings::showBikeMarkings
bool showBikeMarkings
Information whether bicycle lane marking shall be drawn.
Definition: GUIVisualizationSettings.h:449
GUIVisualizationSettings::poiSize
GUIVisualizationSizeSettings poiSize
Definition: GUIVisualizationSettings.h:604
LINKSTATE_TL_YELLOW_MINOR
The link has yellow light, has to brake anyway.
Definition: SUMOXMLDefinitions.h:1149
GUIPropertySchemeStorage::save
void save(OutputDevice &dev) const
Definition: GUIPropertySchemeStorage.h:109
COL_SCHEME_EMISSION
#define COL_SCHEME_EMISSION
Definition: GUIVisualizationSettings.cpp:142
GUIVisualizationTextSettings::constSize
bool constSize
@brif flag to avoid size changes
Definition: GUIVisualizationSettings.h:80
GUIVisualizationColorSettings::selectedAdditionalColor
RGBColor selectedAdditionalColor
additional selection color (busStops, Detectors...)
Definition: GUIVisualizationSettings.h:147
GUIVisualizationSettings::showLinkDecals
bool showLinkDecals
Information whether link textures (arrows) shall be drawn.
Definition: GUIVisualizationSettings.h:452
COL_SCHEME_MISC
#define COL_SCHEME_MISC
Definition: GUIVisualizationSettings.cpp:143
GUIVisualizationColorSettings::parkingAreaSign
static const RGBColor parkingAreaSign
color for parkingArea sign
Definition: GUIVisualizationSettings.h:198
GUIVisualizationSettings::laneWidthExaggeration
double laneWidthExaggeration
The lane exaggeration (upscale thickness)
Definition: GUIVisualizationSettings.h:467
GUIVisualizationDetailSettings::calibratorText
static const double calibratorText
details for calibrator text
Definition: GUIVisualizationSettings.h:310
GUIVisualizationSettings::showColorLegend
bool showColorLegend
Information whether the colo legend shall be drawn.
Definition: GUIVisualizationSettings.h:629
GUIVisualizationSizeSettings
struct for size settings
Definition: GUIVisualizationSettings.h:85
RGBColor::ORANGE
static const RGBColor ORANGE
Definition: RGBColor.h:195
LINKSTATE_TL_REDYELLOW
The link has red light (must brake) but indicates upcoming green.
Definition: SUMOXMLDefinitions.h:1145
GUIPropertySchemeStorage::getScheme
T & getScheme()
Definition: GUIPropertySchemeStorage.h:79
GUIVisualizationSettings::laneScaler
GUIScaler laneScaler
The lane scaler.
Definition: GUIVisualizationSettings.h:443
GUIVisualizationSettings::SCHEME_NAME_SELECTION
static const std::string SCHEME_NAME_SELECTION
Definition: GUIVisualizationSettings.h:672
GUIVisualizationSizeSettings::constantSize
bool constantSize
whether the object shall be drawn with constant size regardless of zoom
Definition: GUIVisualizationSettings.h:109
GUIVisualizationDetailSettings::geometryPointsDetails
static const double geometryPointsDetails
details for Geometry Points
Definition: GUIVisualizationSettings.h:292
GUIVisualizationSettings::vehicleQuality
int vehicleQuality
The quality of vehicle drawing.
Definition: GUIVisualizationSettings.h:499
SUMO_TAG_VIEWSETTINGS_JUNCTIONS
Definition: SUMOXMLDefinitions.h:250
GUIVisualizationColorSettings::E3Entry
static const RGBColor E3Entry
color for Entrys
Definition: GUIVisualizationSettings.h:216
SVC_PASSENGER
vehicle is a passenger car (a "normal" car)
Definition: SUMOVehicleClass.h:159
GUIVisualizationSettings::showSublanes
bool showSublanes
Whether to show sublane boundaries.
Definition: GUIVisualizationSettings.h:476
SUMO_color_TL_OFF_BLINKING
const RGBColor SUMO_color_TL_OFF_BLINKING(128, 64, 0)
GUIVisualizationColorSettings::routeProbe
static const RGBColor routeProbe
color for route probes
Definition: GUIVisualizationSettings.h:225
LINKSTATE_ZIPPER
This is an uncontrolled, zipper-merge link.
Definition: SUMOXMLDefinitions.h:1165
GUIVisualizationSettings::SCHEME_NAME_EDGEDATA_NUMERICAL
static const std::string SCHEME_NAME_EDGEDATA_NUMERICAL
Definition: GUIVisualizationSettings.h:671
GUIVisualizationColorSettings::selectedPersonColor
RGBColor selectedPersonColor
person selection color
Definition: GUIVisualizationSettings.h:156
GUIVisualizationWidthSettings::personTrip
static const double personTrip
width for person trips
Definition: GUIVisualizationSettings.h:266
RGBColor::BLUE
static const RGBColor BLUE
Definition: RGBColor.h:191
GUIVisualizationColorSettings::personTrip
static const RGBColor personTrip
color for personStops
Definition: GUIVisualizationSettings.h:240
GUIVisualizationSettings::scale
double scale
information about a lane's width (temporary, used for a single view)
Definition: GUIVisualizationSettings.h:632
ProcessError
Definition: UtilExceptions.h:39
SUMO_color_MAJOR
const RGBColor SUMO_color_MAJOR(255, 255, 255)
GUIVisualizationSettings::vehicleName
GUIVisualizationTextSettings vehicleName
Definition: GUIVisualizationSettings.h:523
GUIVisualizationDetailSettings::personExaggeration
static const double personExaggeration
Exaggeration for persons (only used in NETEDIT)
Definition: GUIVisualizationSettings.h:337
GUIVisualizationColorSettings::vaporizer
static const RGBColor vaporizer
color for vaporizers
Definition: GUIVisualizationSettings.h:228
GUIVisualizationSettings::containerQuality
int containerQuality
The quality of container drawing.
Definition: GUIVisualizationSettings.h:552
GUIVisualizationWidthSettings::trip
static const double trip
width for trips
Definition: GUIVisualizationSettings.h:263
GUIVisualizationSettings::vehicleTextParam
std::string vehicleTextParam
key for rendering textual parameter
Definition: GUIVisualizationSettings.h:486
GUIVisualizationSettings::dither
bool dither
Information whether dithering shall be enabled.
Definition: GUIVisualizationSettings.h:408
GUIVisualizationColorSettings::operator!=
bool operator!=(const GUIVisualizationColorSettings &other)
inequality comparator
Definition: GUIVisualizationSettings.cpp:286
LINKSTATE_DEADEND
This is a dead end link.
Definition: SUMOXMLDefinitions.h:1167
RGBColor::RED
static const RGBColor RED
named colors
Definition: RGBColor.h:189
GUIVisualizationSettings::addFullName
GUIVisualizationTextSettings addFullName
Definition: GUIVisualizationSettings.h:593
GUIVisualizationSettings::drawLinkTLIndex
GUIVisualizationTextSettings drawLinkTLIndex
Definition: GUIVisualizationSettings.h:569
GUIVisualizationSettings::personSize
GUIVisualizationSizeSettings personSize
Definition: GUIVisualizationSettings.h:538
SUMO_color_TL_REDYELLOW
const RGBColor SUMO_color_TL_REDYELLOW(255, 128, 0)
GUIVisualizationTextSettings::show
bool show
flag show
Definition: GUIVisualizationSettings.h:68
GUIGlObject
Definition: GUIGlObject.h:65
LINKSTATE_MINOR
This is an uncontrolled, minor link, has to brake.
Definition: SUMOXMLDefinitions.h:1157
GUIVisualizationDetailSettings::laneTextures
static const double laneTextures
details for lane textures
Definition: GUIVisualizationSettings.h:283
GUIVisualizationSettings::SCHEME_NAME_EDGE_PARAM_NUMERICAL
static const std::string SCHEME_NAME_EDGE_PARAM_NUMERICAL
scheme names
Definition: GUIVisualizationSettings.h:668
GUIVisualizationColorSettings::parkingArea
static const RGBColor parkingArea
color for parkingAreas
Definition: GUIVisualizationSettings.h:195
GUIVisualizationSettings::laneParam
std::string laneParam
Definition: GUIVisualizationSettings.h:482
SVC_SHIP
is an arbitrary ship
Definition: SUMOVehicleClass.h:195
GUIVisualizationSettings::internalJunctionName
GUIVisualizationTextSettings internalJunctionName
Definition: GUIVisualizationSettings.h:569
GUIVisualizationColorSettings::crossingInvalid
static const RGBColor crossingInvalid
color for invalid crossing
Definition: GUIVisualizationSettings.h:171
SUMO_color_TL_YELLOW_MAJOR
const RGBColor SUMO_color_TL_YELLOW_MAJOR(255, 255, 0)
GUIVisualizationSizeSettings::minSize
double minSize
The minimum size to draw this object.
Definition: GUIVisualizationSettings.h:103
GUIVisualizationSettings::vehicleParam
std::string vehicleParam
key for coloring by vehicle parameter
Definition: GUIVisualizationSettings.h:484
GUIVisualizationSettings::getLaneEdgeScaleScheme
GUIScaleScheme & getLaneEdgeScaleScheme()
Returns the current lane (edge) scaling schme.
Definition: GUIVisualizationSettings.cpp:1188
GUIVisualizationColorSettings::calibrator
static const RGBColor calibrator
color for Calibrators
Definition: GUIVisualizationSettings.h:222
GUIVisualizationSettings::streetName
GUIVisualizationTextSettings streetName
Definition: GUIVisualizationSettings.h:461
GUIVisualizationSettings::colorSettings
GUIVisualizationColorSettings colorSettings
color settings
Definition: GUIVisualizationSettings.h:677
GUIPropertySchemeStorage::addScheme
void addScheme(T scheme)
Definition: GUIPropertySchemeStorage.h:120
GUIVisualizationSettings::SCHEME_NAME_TYPE
static const std::string SCHEME_NAME_TYPE
Definition: GUIVisualizationSettings.h:673
GUIVisualizationColorSettings::selectionColor
RGBColor selectionColor
basic selection color
Definition: GUIVisualizationSettings.h:129
GUIVisualizationSettings::getCircleResolution
int getCircleResolution() const
function to calculate circle resolution for all circles drawn in drawGL(...) functions
Definition: GUIVisualizationSettings.cpp:1679
GUIVisualizationSettings::getLinkColor
static const RGBColor & getLinkColor(const LinkState &ls)
map from LinkState to color constants
Definition: GUIVisualizationSettings.cpp:1608
GUIVisualizationColorSettings::chargingStation_sign
static const RGBColor chargingStation_sign
color for chargingStation sign
Definition: GUIVisualizationSettings.h:189
SUMO_TAG_VIEWSETTINGS_ADDITIONALS
Definition: SUMOXMLDefinitions.h:251
GUIVisualizationDetailSettings::vehicleTriangles
static const double vehicleTriangles
details for draw person as triangles
Definition: GUIVisualizationSettings.h:319
GUIVisualizationSettings::vehicleText
GUIVisualizationTextSettings vehicleText
Definition: GUIVisualizationSettings.h:523
GUIVisualizationSettings::showSizeLegend
bool showSizeLegend
Information whether the size legend shall be drawn.
Definition: GUIVisualizationSettings.h:626
GUIVisualizationColorSettings::E3Exit
static const RGBColor E3Exit
color for Exits
Definition: GUIVisualizationSettings.h:219
GUIVisualizationSettings::cwaEdgeName
GUIVisualizationTextSettings cwaEdgeName
Definition: GUIVisualizationSettings.h:461
OutputDevice::openTag
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
Definition: OutputDevice.cpp:239
SUMO_color_ALLWAY_STOP
const RGBColor SUMO_color_ALLWAY_STOP(0, 0, 192)
GUIVisualizationSettings::SCHEME_NAME_PARAM_NUMERICAL
static const std::string SCHEME_NAME_PARAM_NUMERICAL
Definition: GUIVisualizationSettings.h:670
GUIVisualizationSettings::poiType
GUIVisualizationTextSettings poiType
Definition: GUIVisualizationSettings.h:610
GUIVisualizationSettings::poiName
GUIVisualizationTextSettings poiName
Definition: GUIVisualizationSettings.h:607
GUIVisualizationSettings::showLaneDirection
bool showLaneDirection
Whether to show direction indicators for lanes.
Definition: GUIVisualizationSettings.h:473
GUIVisualizationSettings::drawLaneChangePreference
bool drawLaneChangePreference
Information whether the lane change preference shall be drawn.
Definition: GUIVisualizationSettings.h:505
SVC_MOPED
vehicle is a moped
Definition: SUMOVehicleClass.h:177
SUMO_TAG_VIEWSETTINGS_CONTAINERS
Definition: SUMOXMLDefinitions.h:249
GUIVisualizationSettings::addMode
int addMode
The additional structures visualization scheme.
Definition: GUIVisualizationSettings.h:587
GUIVisualizationSettings::showLane2Lane
bool showLane2Lane
Information whether lane-to-lane arrows shall be drawn.
Definition: GUIVisualizationSettings.h:572
LINKSTATE_TL_YELLOW_MAJOR
The link has yellow light, may pass.
Definition: SUMOXMLDefinitions.h:1147
GUIVisualizationDetailSettings::detectorText
static const double detectorText
details for detector texts
Definition: GUIVisualizationSettings.h:307
SVC_TAXI
vehicle is a taxi
Definition: SUMOVehicleClass.h:163
GUIVisualizationSettings::showBlinker
bool showBlinker
Information whether vehicle blinkers shall be drawn.
Definition: GUIVisualizationSettings.h:502
GUIVisualizationColorSettings::chargingStation_charge
static const RGBColor chargingStation_charge
color for chargingStation during charging
Definition: GUIVisualizationSettings.h:192
SVCAll
const SVCPermissions SVCAll
all VClasses are allowed
Definition: SUMOVehicleClass.cpp:146
GUIVisualizationColorSettings::busStop_sign
static const RGBColor busStop_sign
color for busStops signs
Definition: GUIVisualizationSettings.h:177
SUMO_color_TL_YELLOW_MINOR
const RGBColor SUMO_color_TL_YELLOW_MINOR(255, 255, 0)
GUIVisualizationSettings::drawAdditionals
bool drawAdditionals(const double exaggeration) const
check if additionals must be drawn
Definition: GUIVisualizationSettings.cpp:1663
OutputDevice::lf
void lf()
writes a line feed if applicable
Definition: OutputDevice.h:233
GUIVisualizationDetailSettings::stoppingPlaceText
static const double stoppingPlaceText
details for stopping place texts
Definition: GUIVisualizationSettings.h:301
gSelected
GUISelectedStorage gSelected
A global holder of selected objects.
Definition: GUIGlobalSelection.cpp:33
GUIVisualizationSizeSettings::operator!=
bool operator!=(const GUIVisualizationSizeSettings &other)
inequality comparator
Definition: GUIVisualizationSettings.cpp:234
GUIPropertyScheme::setAllowsNegativeValues
void setAllowsNegativeValues(bool value)
Definition: GUIPropertyScheme.h:165
GUIVisualizationColorSettings::ride
static const RGBColor ride
color for rides
Definition: GUIVisualizationSettings.h:246
GUIVisualizationTextSettings::size
double size
text size
Definition: GUIVisualizationSettings.h:71
GUIVisualizationColorSettings::parkingSpaceInnen
static const RGBColor parkingSpaceInnen
color for parkingArea innen
Definition: GUIVisualizationSettings.h:204
GUIVisualizationColorSettings::GUIVisualizationColorSettings
GUIVisualizationColorSettings()
constructor
Definition: GUIVisualizationSettings.cpp:254
GUIVisualizationSettings::personQuality
int personQuality
The quality of person drawing.
Definition: GUIVisualizationSettings.h:535
GUIPropertyScheme::addColor
int addColor(const T &color, const double threshold, const std::string &name="")
Definition: GUIPropertyScheme.h:80
GUIVisualizationColorSettings::selectedPersonPlanColor
RGBColor selectedPersonPlanColor
person plan selection color (Rides, Walks, personStops...)
Definition: GUIVisualizationSettings.h:159
LINKSTATE_ALLWAY_STOP
This is an uncontrolled, all-way stop link.
Definition: SUMOXMLDefinitions.h:1163
config.h
GUIVisualizationColorSettings::E1
static const RGBColor E1
color for E1 detectors
Definition: GUIVisualizationSettings.h:207
GUIVisualizationSettings::addSize
GUIVisualizationSizeSettings addSize
Definition: GUIVisualizationSettings.h:589
GUIVisualizationSettings::personValue
GUIVisualizationTextSettings personValue
Definition: GUIVisualizationSettings.h:541
GUIVisualizationSettings::personName
GUIVisualizationTextSettings personName
Definition: GUIVisualizationSettings.h:541
GUIVisualizationSettings::laneColorer
GUIColorer laneColorer
The lane colorer.
Definition: GUIVisualizationSettings.h:440
SVC_BUS
vehicle is a bus
Definition: SUMOVehicleClass.h:165
GUIVisualizationTextSettings::print
void print(OutputDevice &dev, const std::string &name) const
print values in output device
Definition: GUIVisualizationSettings.cpp:185
SUMO_color_TL_OFF_NOSIGNAL
const RGBColor SUMO_color_TL_OFF_NOSIGNAL(0, 255, 255)
GUIVisualizationSettings::containerColorer
GUIColorer containerColorer
The container colorer.
Definition: GUIVisualizationSettings.h:549
GUIVisualizationSettings::showLinkRules
bool showLinkRules
Information whether link rules (colored bars) shall be drawn.
Definition: GUIVisualizationSettings.h:455
GUIVisualizationColorSettings::stops
static const RGBColor stops
color for Stops
Definition: GUIVisualizationSettings.h:231
GUIVisualizationColorSettings::selectedCrossingColor
RGBColor selectedCrossingColor
crossings selection color
Definition: GUIVisualizationSettings.h:144
GUIVisualizationSettings::spreadSuperposed
bool spreadSuperposed
Whether to improve visualisation of superposed (rail) edges.
Definition: GUIVisualizationSettings.h:479
SUMO_color_DEADEND
const RGBColor SUMO_color_DEADEND(0, 0, 0)
GUIVisualizationWidthSettings::dottedContourSegmentLength
static const double dottedContourSegmentLength
length of dotted contour segments
Definition: GUIVisualizationSettings.h:257
LINKSTATE_TL_RED
The link has red light (must brake)
Definition: SUMOXMLDefinitions.h:1143
RGBColor::GREEN
static const RGBColor GREEN
Definition: RGBColor.h:190
GUIVisualizationColorSettings::walk
static const RGBColor walk
color for walks
Definition: GUIVisualizationSettings.h:243
GUIVisualizationSettings::drawDetail
bool drawDetail(const double detail, const double exaggeration) const
check if details can be drawn for the given GUIVisualizationDetailSettings and current scale and exxa...
Definition: GUIVisualizationSettings.cpp:1669
GUIVisualizationSettings::drawBrakeGap
bool drawBrakeGap
Information whether the brake gap shall be drawn.
Definition: GUIVisualizationSettings.h:511
GUIVisualizationSettings::drawJunctionShape
bool drawJunctionShape
whether the shape of the junction should be drawn
Definition: GUIVisualizationSettings.h:574
GUIVisualizationDetailSettings::stopsDetails
static const double stopsDetails
details for stops
Definition: GUIVisualizationSettings.h:313
GUIVisualizationColorSettings
struct for color settings
Definition: GUIVisualizationSettings.h:117
SUMO_ATTR_NAME
Definition: SUMOXMLDefinitions.h:380
GUIVisualizationDetailSettings::connectionsDemandMode
static const double connectionsDemandMode
draw connections in demand mode
Definition: GUIVisualizationSettings.h:280
GUIVisualizationSettings::poiColorer
GUIColorer poiColorer
The POI colorer.
Definition: GUIVisualizationSettings.h:601
GUIVisualizationColorSettings::parkingSpace
static const RGBColor parkingSpace
color for parkingArea sign
Definition: GUIVisualizationSettings.h:201
GUIVisualizationSettings
Stores the information about how to visualize structures.
Definition: GUIVisualizationSettings.h:345
GUIVisualizationColorSettings::vehicleTrips
static const RGBColor vehicleTrips
color for vehicle trips
Definition: GUIVisualizationSettings.h:234
GUIVisualizationColorSettings::personStops
static const RGBColor personStops
color for personStops
Definition: GUIVisualizationSettings.h:237
GUIVisualizationSettings::operator==
bool operator==(const GUIVisualizationSettings &vs2)
Comparison operator.
Definition: GUIVisualizationSettings.cpp:1355
GUIVisualizationColorSettings::selectedVehicleColor
RGBColor selectedVehicleColor
vehicle selection color
Definition: GUIVisualizationSettings.h:153
GUIVisualizationSettings::forceDrawForPositionSelection
bool forceDrawForPositionSelection
flag to force draw for position selection (see drawForPositionSelection)
Definition: GUIVisualizationSettings.h:650
GUIVisualizationColorSettings::selectedLaneColor
RGBColor selectedLaneColor
lane selection color
Definition: GUIVisualizationSettings.h:135
SUMO_TAG_VIEWSETTINGS_EDGES
Definition: SUMOXMLDefinitions.h:246
GUIVisualizationSettings::edgeName
GUIVisualizationTextSettings edgeName
Definition: GUIVisualizationSettings.h:461
GUIVisualizationSettings::edgeValue
GUIVisualizationTextSettings edgeValue
Definition: GUIVisualizationSettings.h:461
GUIVisualizationSettings::forceDrawForRectangleSelection
bool forceDrawForRectangleSelection
flag to force draw for rectangle selection (see drawForRectangleSelection)
Definition: GUIVisualizationSettings.h:653
GUIVisualizationSettings::edgeData
std::string edgeData
key for coloring by edgeData
Definition: GUIVisualizationSettings.h:489
GUIPropertyScheme
Definition: GUIPropertyScheme.h:45
GUIPropertySchemeStorage::getActive
int getActive() const
Definition: GUIPropertySchemeStorage.h:75
GUIVisualizationSettings::showBTRange
bool showBTRange
Information whether the communication range shall be drawn.
Definition: GUIVisualizationSettings.h:514
GUIVisualizationSizeSettings::getExaggeration
double getExaggeration(const GUIVisualizationSettings &s, const GUIGlObject *o, double factor=20) const
return the drawing size including exaggeration and constantSize values
Definition: GUIVisualizationSettings.cpp:212
SUMO_TAG_VIEWSETTINGS_POLYS
Definition: SUMOXMLDefinitions.h:253
SUMO_color_TL_RED
const RGBColor SUMO_color_TL_RED(255, 0, 0)
RGBColor::WHITE
static const RGBColor WHITE
Definition: RGBColor.h:196
GUIVisualizationDetailSettings::personCircles
static const double personCircles
details for draw person as circles
Definition: GUIVisualizationSettings.h:331
SUMO_color_TL_GREEN_MAJOR
const RGBColor SUMO_color_TL_GREEN_MAJOR(0, 255, 0)
GUIVisualizationSizeSettings::exaggeration
double exaggeration
The size exaggeration (upscale)
Definition: GUIVisualizationSettings.h:106
GUIVisualizationTextSettings::operator==
bool operator==(const GUIVisualizationTextSettings &other)
equality comparator
Definition: GUIVisualizationSettings.cpp:165
GUIVisualizationWidthSettings::walk
static const double walk
width for walks
Definition: GUIVisualizationSettings.h:269
LINKSTATE_STOP
This is an uncontrolled, minor link, has to stop.
Definition: SUMOXMLDefinitions.h:1161
GUISelectedStorage::isSelected
bool isSelected(GUIGlObjectType type, GUIGlID id)
Returns the information whether the object with the given type and id is selected.
Definition: GUISelectedStorage.cpp:94