SUMO - Simulation of Urban MObility
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
GUISettingsHandler.cpp
Go to the documentation of this file.
1
/****************************************************************************/
10
// The dialog to change the view (gui) settings.
11
/****************************************************************************/
12
// SUMO, Simulation of Urban MObility; see http://sumo-sim.org/
13
// Copyright (C) 2001-2014 DLR (http://www.dlr.de/) and contributors
14
/****************************************************************************/
15
//
16
// This file is part of SUMO.
17
// SUMO is free software: you can redistribute it and/or modify
18
// it under the terms of the GNU General Public License as published by
19
// the Free Software Foundation, either version 3 of the License, or
20
// (at your option) any later version.
21
//
22
/****************************************************************************/
23
24
25
// ===========================================================================
26
// included modules
27
// ===========================================================================
28
#ifdef _MSC_VER
29
#include <
windows_config.h
>
30
#else
31
#include <
config.h
>
32
#endif
33
34
#include <vector>
35
#include <
utils/common/TplConvert.h
>
36
#include <
utils/common/ToString.h
>
37
#include <
utils/common/RGBColor.h
>
38
#include <
utils/common/MsgHandler.h
>
39
#include <
utils/common/FileHelpers.h
>
40
#include <
utils/gui/settings/GUIVisualizationSettings.h
>
41
#include <
utils/gui/settings/GUICompleteSchemeStorage.h
>
42
#include <
utils/foxtools/MFXImageHelper.h
>
43
#include <
utils/xml/SUMOSAXReader.h
>
44
#include <
utils/xml/XMLSubSys.h
>
45
#include "
GUISettingsHandler.h
"
46
47
#ifdef CHECK_MEMORY_LEAKS
48
#include <
foreign/nvwa/debug_new.h
>
49
#endif // CHECK_MEMORY_LEAKS
50
51
52
// ===========================================================================
53
// method definitions
54
// ===========================================================================
55
GUISettingsHandler::GUISettingsHandler
(
const
std::string& content,
bool
isFile)
56
:
SUMOSAXHandler
(content), myDelay(-1), myLookFrom(-1, -1, -1), myLookAt(-1, -1, -1),
57
myCurrentColorer(
SUMO_TAG_NOTHING
), myCurrentScheme(0), myJamSoundTime(-1) {
58
if
(isFile) {
59
XMLSubSys::runParser
(*
this
, content);
60
}
else
{
61
setFileName
(
"registrySettings"
);
62
SUMOSAXReader
* reader =
XMLSubSys::getSAXReader
(*
this
);
63
reader->
parseString
(content);
64
delete
reader;
65
}
66
}
67
68
69
GUISettingsHandler::~GUISettingsHandler
() {
70
}
71
72
73
void
74
GUISettingsHandler::myStartElement
(
int
element,
75
const
SUMOSAXAttributes
& attrs) {
76
bool
ok =
true
;
77
switch
(element) {
78
case
SUMO_TAG_BREAKPOINTS_FILE
: {
79
std::string file = attrs.
get
<std::string>(
SUMO_ATTR_VALUE
, 0, ok);
80
myBreakpoints
=
loadBreakpoints
(file);
81
}
82
break
;
83
case
SUMO_TAG_VIEWSETTINGS
:
84
myViewType
= attrs.
getOpt
<std::string>(
SUMO_ATTR_TYPE
, 0, ok,
"default"
);
85
std::transform(
myViewType
.begin(),
myViewType
.end(),
myViewType
.begin(), tolower);
86
break
;
87
case
SUMO_TAG_DELAY
:
88
myDelay
= attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_VALUE
, 0, ok,
myDelay
);
89
break
;
90
case
SUMO_TAG_VIEWPORT
: {
91
const
SUMOReal
x = attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_X
, 0, ok,
myLookFrom
.
x
());
92
const
SUMOReal
y = attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_Y
, 0, ok,
myLookFrom
.
y
());
93
const
SUMOReal
z = attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_ZOOM
, 0, ok,
myLookFrom
.
z
());
94
myLookFrom
.
set
(x, y, z);
95
const
SUMOReal
cx = attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_CENTER_X
, 0, ok,
myLookAt
.
x
());
96
const
SUMOReal
cy = attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_CENTER_Y
, 0, ok,
myLookAt
.
y
());
97
const
SUMOReal
cz = attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_CENTER_Z
, 0, ok,
myLookAt
.
z
());
98
myLookAt
.
set
(cx, cy, cz);
99
break
;
100
}
101
case
SUMO_TAG_SNAPSHOT
: {
102
bool
ok =
true
;
103
std::string file = attrs.
get
<std::string>(
SUMO_ATTR_FILE
, 0, ok);
104
if
(file !=
""
&& !
FileHelpers::isAbsolute
(file)) {
105
file =
FileHelpers::getConfigurationRelative
(
getFileName
(), file);
106
}
107
mySnapshots
[attrs.
getOptSUMOTimeReporting
(
SUMO_ATTR_TIME
, file.c_str(), ok, 0)] = file;
108
}
109
break
;
110
case
SUMO_TAG_VIEWSETTINGS_SCHEME
: {
111
bool
ok =
true
;
112
mySettings
.
name
= attrs.
getOpt
<std::string>(
SUMO_ATTR_NAME
, 0, ok,
mySettings
.
name
);
113
if
(
gSchemeStorage
.
contains
(
mySettings
.
name
)) {
114
mySettings
=
gSchemeStorage
.
get
(
mySettings
.
name
);
115
}
116
}
117
break
;
118
case
SUMO_TAG_VIEWSETTINGS_OPENGL
:
119
mySettings
.
antialiase
=
TplConvert::_2bool
(attrs.
getStringSecure
(
"antialiase"
,
toString
(
mySettings
.
antialiase
)).c_str());
120
mySettings
.
dither
=
TplConvert::_2bool
(attrs.
getStringSecure
(
"dither"
,
toString
(
mySettings
.
dither
)).c_str());
121
break
;
122
case
SUMO_TAG_VIEWSETTINGS_BACKGROUND
: {
123
bool
ok =
true
;
124
mySettings
.
backgroundColor
=
RGBColor::parseColorReporting
(attrs.
getStringSecure
(
"backgroundColor"
,
toString
(
mySettings
.
backgroundColor
)),
"background"
, 0,
true
, ok);
125
mySettings
.
showGrid
=
TplConvert::_2bool
(attrs.
getStringSecure
(
"showGrid"
,
toString
(
mySettings
.
showGrid
)).c_str());
126
mySettings
.
gridXSize
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"gridXSize"
,
toString
(
mySettings
.
gridXSize
)).c_str());
127
mySettings
.
gridYSize
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"gridYSize"
,
toString
(
mySettings
.
gridYSize
)).c_str());
128
}
129
break
;
130
case
SUMO_TAG_VIEWSETTINGS_EDGES
: {
131
int
laneEdgeMode =
TplConvert::_2int
(attrs.
getStringSecure
(
"laneEdgeMode"
,
"0"
).c_str());
132
mySettings
.
laneShowBorders
=
TplConvert::_2bool
(attrs.
getStringSecure
(
"laneShowBorders"
,
toString
(
mySettings
.
laneShowBorders
)).c_str());
133
mySettings
.
showLinkDecals
=
TplConvert::_2bool
(attrs.
getStringSecure
(
"showLinkDecals"
,
toString
(
mySettings
.
showLinkDecals
)).c_str());
134
mySettings
.
showRails
=
TplConvert::_2bool
(attrs.
getStringSecure
(
"showRails"
,
toString
(
mySettings
.
showRails
)).c_str());
135
mySettings
.
edgeName
=
parseTextSettings
(
"edgeName"
, attrs,
mySettings
.
edgeName
);
136
mySettings
.
internalEdgeName
=
parseTextSettings
(
"internalEdgeName"
, attrs,
mySettings
.
internalEdgeName
);
137
mySettings
.
cwaEdgeName
=
parseTextSettings
(
"cwaEdgeName"
, attrs,
mySettings
.
cwaEdgeName
);
138
mySettings
.
streetName
=
parseTextSettings
(
"streetName"
, attrs,
mySettings
.
streetName
);
139
mySettings
.
hideConnectors
=
TplConvert::_2bool
(attrs.
getStringSecure
(
"hideConnectors"
,
toString
(
mySettings
.
hideConnectors
)).c_str());
140
myCurrentColorer
= element;
141
#ifdef HAVE_INTERNAL
142
mySettings
.edgeColorer.setActive(laneEdgeMode);
143
#endif
144
mySettings
.
laneColorer
.
setActive
(laneEdgeMode);
145
}
146
break
;
147
case
SUMO_TAG_COLORSCHEME
:
148
myCurrentScheme
= 0;
149
if
(
myCurrentColorer
==
SUMO_TAG_VIEWSETTINGS_EDGES
) {
150
myCurrentScheme
=
mySettings
.
laneColorer
.
getSchemeByName
(attrs.
getStringSecure
(
SUMO_ATTR_NAME
,
""
));
151
#ifdef HAVE_INTERNAL
152
if
(
myCurrentScheme
== 0) {
153
myCurrentScheme
=
mySettings
.edgeColorer.getSchemeByName(attrs.
getStringSecure
(
SUMO_ATTR_NAME
,
""
));
154
}
155
#endif
156
}
157
if
(
myCurrentColorer
==
SUMO_TAG_VIEWSETTINGS_VEHICLES
) {
158
myCurrentScheme
=
mySettings
.
vehicleColorer
.
getSchemeByName
(attrs.
getStringSecure
(
SUMO_ATTR_NAME
,
""
));
159
}
160
if
(
myCurrentColorer
==
SUMO_TAG_VIEWSETTINGS_JUNCTIONS
) {
161
myCurrentScheme
=
mySettings
.
junctionColorer
.
getSchemeByName
(attrs.
getStringSecure
(
SUMO_ATTR_NAME
,
""
));
162
}
163
if
(
myCurrentScheme
&& !
myCurrentScheme
->
isFixed
()) {
164
bool
ok =
true
;
165
myCurrentScheme
->
setInterpolated
(attrs.
getOpt
<
bool
>(
SUMO_ATTR_INTERPOLATED
, 0, ok,
false
));
166
myCurrentScheme
->
clear
();
167
}
168
break
;
169
case
SUMO_TAG_ENTRY
:
170
if
(
myCurrentScheme
) {
171
bool
ok =
true
;
172
RGBColor
color = attrs.
get
<
RGBColor
>(
SUMO_ATTR_COLOR
, 0, ok);
173
if
(
myCurrentScheme
->
isFixed
()) {
174
myCurrentScheme
->
setColor
(attrs.
getStringSecure
(
SUMO_ATTR_NAME
,
""
), color);
175
}
else
{
176
myCurrentScheme
->
addColor
(color, attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_THRESHOLD
, 0, ok, 0));
177
}
178
}
179
break
;
180
case
SUMO_TAG_VIEWSETTINGS_VEHICLES
:
181
mySettings
.
vehicleColorer
.
setActive
(
TplConvert::_2int
(attrs.
getStringSecure
(
"vehicleMode"
,
"0"
).c_str()));
182
mySettings
.
vehicleQuality
=
TplConvert::_2int
(attrs.
getStringSecure
(
"vehicleQuality"
,
toString
(
mySettings
.
vehicleQuality
)).c_str());
183
mySettings
.
minVehicleSize
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"minVehicleSize"
,
toString
(
mySettings
.
minVehicleSize
)).c_str());
184
mySettings
.
vehicleExaggeration
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"vehicleExaggeration"
,
toString
(
mySettings
.
vehicleExaggeration
)).c_str());
185
mySettings
.
showBlinker
=
TplConvert::_2bool
(attrs.
getStringSecure
(
"showBlinker"
,
toString
(
mySettings
.
showBlinker
)).c_str());
186
mySettings
.
vehicleName
=
parseTextSettings
(
"vehicleName"
, attrs,
mySettings
.
vehicleName
);
187
myCurrentColorer
= element;
188
break
;
189
case
SUMO_TAG_VIEWSETTINGS_PERSONS
:
190
mySettings
.
personColorer
.
setActive
(
TplConvert::_2int
(attrs.
getStringSecure
(
"personMode"
,
"0"
).c_str()));
191
mySettings
.
personQuality
=
TplConvert::_2int
(attrs.
getStringSecure
(
"personQuality"
,
toString
(
mySettings
.
personQuality
)).c_str());
192
mySettings
.
minPersonSize
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"minPersonSize"
,
toString
(
mySettings
.
minPersonSize
)).c_str());
193
mySettings
.
personExaggeration
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"personExaggeration"
,
toString
(
mySettings
.
personExaggeration
)).c_str());
194
mySettings
.
personName
=
parseTextSettings
(
"personName"
, attrs,
mySettings
.
personName
);
195
myCurrentColorer
= element;
196
break
;
197
case
SUMO_TAG_VIEWSETTINGS_JUNCTIONS
:
198
mySettings
.
junctionColorer
.
setActive
(
TplConvert::_2int
(attrs.
getStringSecure
(
"junctionMode"
,
"0"
).c_str()));
199
mySettings
.
drawLinkTLIndex
=
TplConvert::_2bool
(attrs.
getStringSecure
(
"drawLinkTLIndex"
,
toString
(
mySettings
.
drawLinkTLIndex
)).c_str());
200
mySettings
.
drawLinkJunctionIndex
=
TplConvert::_2bool
(attrs.
getStringSecure
(
"drawLinkJunctionIndex"
,
toString
(
mySettings
.
drawLinkJunctionIndex
)).c_str());
201
mySettings
.
junctionName
=
parseTextSettings
(
"junctionName"
, attrs,
mySettings
.
junctionName
);
202
mySettings
.
internalJunctionName
=
parseTextSettings
(
"internalJunctionName"
, attrs,
mySettings
.
internalJunctionName
);
203
mySettings
.
showLane2Lane
=
TplConvert::_2bool
(attrs.
getStringSecure
(
"showLane2Lane"
,
toString
(
mySettings
.
showLane2Lane
)).c_str());
204
mySettings
.
drawJunctionShape
=
TplConvert::_2bool
(attrs.
getStringSecure
(
"drawShape"
,
toString
(
mySettings
.
drawJunctionShape
)).c_str());
205
myCurrentColorer
= element;
206
break
;
207
case
SUMO_TAG_VIEWSETTINGS_ADDITIONALS
:
208
mySettings
.
addMode
=
TplConvert::_2int
(attrs.
getStringSecure
(
"addMode"
,
toString
(
mySettings
.
addMode
)).c_str());
209
mySettings
.
minAddSize
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"minAddSize"
,
toString
(
mySettings
.
minAddSize
)).c_str());
210
mySettings
.
addExaggeration
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"addExaggeration"
,
toString
(
mySettings
.
addExaggeration
)).c_str());
211
mySettings
.
addName
=
parseTextSettings
(
"addName"
, attrs,
mySettings
.
addName
);
212
break
;
213
case
SUMO_TAG_VIEWSETTINGS_POIS
:
214
mySettings
.
poiExaggeration
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"poiExaggeration"
,
toString
(
mySettings
.
poiExaggeration
)).c_str());
215
mySettings
.
minPOISize
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"minPOISize"
,
toString
(
mySettings
.
minPOISize
)).c_str());
216
mySettings
.
poiName
=
parseTextSettings
(
"poiName"
, attrs,
mySettings
.
poiName
);
217
break
;
218
case
SUMO_TAG_VIEWSETTINGS_POLYS
:
219
mySettings
.
polyExaggeration
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"polyExaggeration"
,
toString
(
mySettings
.
polyExaggeration
)).c_str());
220
mySettings
.
minPolySize
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"minPolySize"
,
toString
(
mySettings
.
minPolySize
)).c_str());
221
mySettings
.
polyName
=
parseTextSettings
(
"polyName"
, attrs,
mySettings
.
polyName
);
222
break
;
223
case
SUMO_TAG_VIEWSETTINGS_LEGEND
:
224
mySettings
.
showSizeLegend
=
TplConvert::_2bool
(attrs.
getStringSecure
(
"showSizeLegend"
,
toString
(
mySettings
.
showSizeLegend
)).c_str());
225
break
;
226
case
SUMO_TAG_VIEWSETTINGS_DECAL
: {
227
GUISUMOAbstractView::Decal
d;
228
d.
filename
= attrs.
getStringSecure
(
"filename"
, d.
filename
);
229
if
(d.
filename
!=
""
&& !
FileHelpers::isAbsolute
(d.
filename
)) {
230
d.
filename
=
FileHelpers::getConfigurationRelative
(
getFileName
(), d.
filename
);
231
}
232
d.
centerX
= attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_CENTER_X
, 0, ok, d.
centerX
);
233
d.
centerY
= attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_CENTER_Y
, 0, ok, d.
centerY
);
234
d.
centerZ
= attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_CENTER_Z
, 0, ok, d.
centerZ
);
235
d.
width
= attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_WIDTH
, 0, ok, d.
width
);
236
d.
height
= attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_HEIGHT
, 0, ok, d.
height
);
237
d.
altitude
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"altitude"
,
toString
(d.
height
)).c_str());
238
d.
rot
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"rotation"
,
toString
(d.
rot
)).c_str());
239
d.
tilt
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"tilt"
,
toString
(d.
tilt
)).c_str());
240
d.
roll
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"roll"
,
toString
(d.
roll
)).c_str());
241
d.
layer
= attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_LAYER
, 0, ok, d.
layer
);
242
d.
initialised
=
false
;
243
myDecals
.push_back(d);
244
}
245
break
;
246
case
SUMO_TAG_VIEWSETTINGS_LIGHT
: {
247
GUISUMOAbstractView::Decal
d;
248
d.
filename
=
"light"
+ attrs.
getOpt
<std::string>(
SUMO_ATTR_INDEX
, 0, ok,
"0"
);
249
d.
centerX
= attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_CENTER_X
, 0, ok, d.
centerX
);
250
d.
centerY
= attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_CENTER_Y
, 0, ok, d.
centerY
);
251
d.
centerZ
= attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_CENTER_Z
, 0, ok, d.
centerZ
);
252
d.
width
= attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_WIDTH
, 0, ok, d.
width
);
253
d.
height
= attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_HEIGHT
, 0, ok, d.
height
);
254
d.
altitude
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"altitude"
,
toString
(d.
height
)).c_str());
255
d.
rot
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"rotation"
,
toString
(d.
rot
)).c_str());
256
d.
tilt
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"tilt"
,
toString
(d.
tilt
)).c_str());
257
d.
roll
=
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(
"roll"
,
toString
(d.
roll
)).c_str());
258
d.
layer
= attrs.
getOpt
<
SUMOReal
>(
SUMO_ATTR_LAYER
, 0, ok, d.
layer
);
259
d.
initialised
=
false
;
260
myDecals
.push_back(d);
261
}
262
break
;
263
case
SUMO_TAG_VIEWSETTINGS_EVENT
: {
264
const
std::string
id
= attrs.
get
<std::string>(
SUMO_ATTR_ID
, 0, ok);
265
const
std::string cmd = attrs.
get
<std::string>(
SUMO_ATTR_COMMAND
, 0, ok);
266
const
SUMOReal
prob = attrs.
get
<
SUMOReal
>(
SUMO_ATTR_PROB
,
id
.c_str(), ok);
267
myEventDistributions
[id].add(prob, cmd);
268
}
269
break
;
270
case
SUMO_TAG_VIEWSETTINGS_EVENT_JAM_TIME
:
271
myJamSoundTime
= attrs.
get
<
SUMOReal
>(
SUMO_ATTR_VALUE
, 0, ok);
272
break
;
273
default
:
274
break
;
275
}
276
}
277
278
279
GUIVisualizationTextSettings
280
GUISettingsHandler::parseTextSettings
(
281
const
std::string& prefix,
const
SUMOSAXAttributes
& attrs,
282
GUIVisualizationTextSettings
defaults) {
283
bool
ok =
true
;
284
return
GUIVisualizationTextSettings
(
285
TplConvert::_2bool
(attrs.
getStringSecure
(prefix +
"_show"
,
toString
(defaults.
show
)).c_str()),
286
TplConvert::_2SUMOReal
(attrs.
getStringSecure
(prefix +
"_size"
,
toString
(defaults.
size
)).c_str()),
287
RGBColor::parseColorReporting
(attrs.
getStringSecure
(prefix +
"_color"
,
toString
(defaults.
color
)),
"edges"
, 0,
true
, ok));
288
}
289
290
291
std::string
292
GUISettingsHandler::addSettings
(
GUISUMOAbstractView
* view)
const
{
293
if
(
mySettings
.
name
!=
""
) {
294
gSchemeStorage
.
add
(
mySettings
);
295
if
(view) {
296
FXint index = view->
getColoringSchemesCombo
().appendItem(
mySettings
.
name
.c_str());
297
view->
getColoringSchemesCombo
().setCurrentItem(index);
298
view->
setColorScheme
(
mySettings
.
name
);
299
}
300
}
301
return
mySettings
.
name
;
302
}
303
304
305
void
306
GUISettingsHandler::setViewport
(
GUISUMOAbstractView
* view)
const
{
307
if
(
myLookFrom
.
z
() > 0) {
308
view->
setViewport
(
myLookFrom
,
myLookAt
);
309
}
310
}
311
312
313
void
314
GUISettingsHandler::setViewport
(
Position
& lookFrom,
Position
& lookAt)
const
{
315
lookFrom =
myLookFrom
;
316
lookAt =
myLookAt
;
317
}
318
319
320
void
321
GUISettingsHandler::setSnapshots
(
GUISUMOAbstractView
* view)
const
{
322
if
(!
mySnapshots
.empty()) {
323
view->
setSnapshots
(
mySnapshots
);
324
}
325
}
326
327
328
bool
329
GUISettingsHandler::hasDecals
()
const
{
330
return
!
myDecals
.empty();
331
}
332
333
334
const
std::vector<GUISUMOAbstractView::Decal>&
335
GUISettingsHandler::getDecals
()
const
{
336
return
myDecals
;
337
}
338
339
340
SUMOReal
341
GUISettingsHandler::getDelay
()
const
{
342
return
myDelay
;
343
}
344
345
346
std::vector<SUMOTime>
347
GUISettingsHandler::loadBreakpoints
(
const
std::string& file) {
348
std::vector<SUMOTime> result;
349
std::ifstream strm(file.c_str());
350
while
(strm.good()) {
351
std::string val;
352
strm >> val;
353
if
(val.length() == 0) {
354
continue
;
355
}
356
try
{
357
SUMOTime
value =
string2time
(val);
358
result.push_back(value);
359
}
catch
(
NumberFormatException
&) {
360
WRITE_ERROR
(
" A breakpoint-value must be an int, is:"
+ val);
361
}
catch
(
ProcessError
&) {
362
WRITE_ERROR
(
" Could not decode breakpoint '"
+ val +
"'"
);
363
}
catch
(
EmptyData
&) {}
364
}
365
return
result;
366
}
367
368
369
RandomDistributor<std::string>
370
GUISettingsHandler::getEventDistribution
(
const
std::string&
id
) {
371
RandomDistributor<std::string>
result =
myEventDistributions
[id];
372
if
(result.
getOverallProb
() > 0 && result.
getOverallProb
() < 1) {
373
// unscaled probabilities are assumed, fill up with dummy event
374
result.
add
(1 - result.
getOverallProb
(),
""
);
375
}
376
return
result;
377
}
378
379
380
/****************************************************************************/
381
tmp
buildd
sumo-0.21.0+dfsg
src
utils
gui
settings
GUISettingsHandler.cpp
Generated on Thu Nov 20 2014 19:49:54 for SUMO - Simulation of Urban MObility by
1.8.1.2