SUMO - Simulation of Urban MObility
GUIVisualizationSettings.h
Go to the documentation of this file.
1 /****************************************************************************/
9 // Stores the information about how to visualize structures
10 /****************************************************************************/
11 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
12 // Copyright (C) 2001-2016 DLR (http://www.dlr.de/) and contributors
13 /****************************************************************************/
14 //
15 // This file is part of SUMO.
16 // SUMO is free software: you can redistribute it and/or modify
17 // it under the terms of the GNU General Public License as published by
18 // the Free Software Foundation, either version 3 of the License, or
19 // (at your option) any later version.
20 //
21 /****************************************************************************/
22 #ifndef GUIVisualizationSettings_h
23 #define GUIVisualizationSettings_h
24 
25 
26 // ===========================================================================
27 // included modules
28 // ===========================================================================
29 #ifdef _MSC_VER
30 #include <windows_config.h>
31 #else
32 #include <config.h>
33 #endif
34 
35 #include <string>
36 #include <vector>
37 #include <map>
38 #include <utils/common/RGBColor.h>
39 #include <utils/common/ToString.h>
41 
42 
43 // ===========================================================================
44 // class declarations
45 // ===========================================================================
46 class BaseSchemeInfoSource;
47 class OutputDevice;
49 
50 
51 // ===========================================================================
52 // class definitions
53 // ===========================================================================
54 
55 // cannot declare this as inner class because it needs to be used in forward
56 // declaration (@todo fix inclusion order by removing references to guisim!)
58  GUIVisualizationTextSettings(bool _show, float _size, RGBColor _color) :
59  show(_show), size(_size), color(_color) {}
60 
61  bool show;
62  float size;
64 
66  return show == other.show &&
67  size == other.size &&
68  color == other.color;
69  }
71  return !((*this) == other);
72  }
73 
74  void print(OutputDevice& dev, const std::string& name) const {
75  dev.writeAttr(name + "_show", show);
76  dev.writeAttr(name + "_size", size);
77  dev.writeAttr(name + "_color", color);
78  }
79 };
80 
81 
83  GUIVisualizationSizeSettings(float _minSize, float _exaggeration = 1.0, bool _constantSize = false) :
84  minSize(_minSize), exaggeration(_exaggeration), constantSize(_constantSize) {}
85 
87  float minSize;
89  float exaggeration;
90  // @brief whether the object shall be drawn with constant size regardless of zoom
92 
94  return constantSize == other.constantSize &&
95  minSize == other.minSize &&
96  exaggeration == other.exaggeration;
97  }
99  return !((*this) == other);
100  }
101 
102  void print(OutputDevice& dev, const std::string& name) const {
103  dev.writeAttr(name + "_minSize", minSize);
104  dev.writeAttr(name + "_exaggeration", exaggeration);
105  dev.writeAttr(name + "_constantSize", constantSize);
106  }
107 
109  SUMOReal getExaggeration(const GUIVisualizationSettings& s) const;
110 };
111 
112 
118 public:
119 
122 
124  std::string name;
125 
129  bool dither;
130 
132 
133 
137  bool showGrid;
139  SUMOReal gridXSize, gridYSize;
141 
142 
144 
145 
150 
152  static bool UseMesoSim;
162  bool showRails;
163  // Setting bundles for optional drawing names with size and color
164  GUIVisualizationTextSettings edgeName, internalEdgeName, cwaEdgeName, streetName;
165 
170 
171 
173 
174 
187  // Setting bundles for controling the size of the drawn vehicles
189  // Setting bundles for optional drawing vehicle names
192 
193 
195 
196 
201  // Setting bundles for controling the size of the drawn persons
203  // Setting bundles for optional drawing person names
206 
207 
209 
210 
215  // Setting bundles for controling the size of the drawn containers
217  // Setting bundles for optional drawing person names
220 
221 
223 
224 
227  // Setting bundles for optional drawing junction names and indices
228  GUIVisualizationTextSettings drawLinkTLIndex, drawLinkJunctionIndex, junctionName, internalJunctionName;
236 
237 
239 
240 
242  // @todo decouple addExageration for POIs, Polygons, Triggers etc
243  int addMode;
244  // Setting bundles for controling the size of additional items
246  // Setting bundles for optional drawing additional names
249 
250 
252 
253 
254  // Setting bundles for controling the size of the drawn POIs
256  // Setting bundles for optional drawing poi names
258  // Setting bundles for optional drawing poi types
260 
261  // Setting bundles for controling the size of the drawn polygons
263  // Setting bundles for optional drawing polygon names
265  // Setting bundles for optional drawing polygon types
268 
271 
274 
276  bool gaming;
277 
279  int editMode;
280 
283 
286 
290  void save(OutputDevice& dev) const;
291 
295  size_t getLaneEdgeMode() const;
296 
300  size_t getLaneEdgeScaleMode() const;
301 
305  GUIColorScheme& getLaneEdgeScheme();
306 
310  GUIScaleScheme& getLaneEdgeScaleScheme();
311 
313  bool operator==(const GUIVisualizationSettings& vs2);
314 };
315 
316 
317 #endif
318 
319 /****************************************************************************/
320 
GUIVisualizationTextSettings junctionName
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
Definition: OutputDevice.h:257
bool showSizeLegend
Information whether the size legend shall be drawn.
GUIVisualizationTextSettings poiType
GUIVisualizationTextSettings streetName
float laneWidthExaggeration
The lane exaggeration (upscale thickness)
bool showBlinker
Information whether vehicle blinkers shall be drawn.
GUIVisualizationTextSettings addName
GUIVisualizationTextSettings personName
GUIVisualizationTextSettings poiName
bool gaming
whether the application is in gaming mode or not
bool operator!=(const GUIVisualizationTextSettings &other)
GUIVisualizationTextSettings(bool _show, float _size, RGBColor _color)
void print(OutputDevice &dev, const std::string &name) const
bool showBTRange
Information whether the communication range shall be drawn.
bool operator==(const GUIVisualizationTextSettings &other)
GUIColorer laneColorer
The lane colorer.
GUIColorer containerColorer
The container colorer.
bool operator==(const GUIVisualizationSizeSettings &other)
Stores the information about how to visualize structures.
GUIColorer edgeColorer
The mesoscopic edge colorer.
bool drawLaneChangePreference
Information whether the lane change preference shall be drawn.
bool showRails
Information whether rails shall be drawn.
GUIVisualizationTextSettings vehicleName
int editMode
the current NETEDIT mode (temporary)
bool laneShowBorders
Information whether lane borders shall be drawn.
GUIVisualizationSizeSettings(float _minSize, float _exaggeration=1.0, bool _constantSize=false)
bool dither
Information whether dithering shall be enabled.
SUMOReal scale
information about a lane&#39;s width (temporary, used for a single view)
GUIVisualizationSizeSettings polySize
GUIColorer vehicleColorer
The vehicle colorer.
GUIVisualizationSizeSettings addSize
SUMOReal selectionScale
the current selection scaling in NETEDIT (temporary)
std::string name
The name of this setting.
bool drawMinGap
Information whether the minimum gap shall be drawn.
int addMode
The additional structures visualization scheme.
GUIVisualizationTextSettings polyType
GUIColorer personColorer
The person colorer.
float minSize
The minimum size to draw this object.
GUIColorer junctionColorer
The junction colorer.
GUIScaler edgeScaler
The mesoscopic edge scaler.
int containerQuality
The quality of container drawing.
RGBColor backgroundColor
The background color to use.
bool antialiase
Information whether antialiase shall be enabled.
GUIVisualizationSizeSettings poiSize
float exaggeration
The size exaggeration (upscale)
bool showLinkDecals
Information whether link textures (arrows) shall be drawn.
GUIVisualizationSizeSettings containerSize
GUIVisualizationSizeSettings personSize
int personQuality
The quality of person drawing.
bool showGrid
Information whether a grid shall be shown.
bool drawCrossingsAndWalkingareas
whether crosings and walkingareas shall be drawn
bool showLane2Lane
Information whether lane-to-lane arrows shall be drawn.
bool operator!=(const GUIVisualizationSizeSettings &other)
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:71
#define SUMOReal
Definition: config.h:213
GUIVisualizationSizeSettings vehicleSize
bool drawJunctionShape
whether the shape of the junction should be drawn
void print(OutputDevice &dev, const std::string &name) const
int vehicleQuality
The quality of vehicle drawing.
static bool UseMesoSim
this should be set at the same time as MSGlobals::gUseMesoSim
bool drawForSelecting
whether drawing is performed for the purpose of selecting objects
GUIScaler laneScaler
The lane scaler.
GUIVisualizationTextSettings polyName
GUIVisualizationTextSettings containerName