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
SUMOVTypeParameter.cpp
Go to the documentation of this file.
1
/****************************************************************************/
9
// Structure representing possible vehicle parameter
10
/****************************************************************************/
11
// SUMO, Simulation of Urban MObility; see http://sumo-sim.org/
12
// Copyright (C) 2001-2013 DLR (http://www.dlr.de/) and contributors
13
/****************************************************************************/
14
//
15
// This file is part of SUMO.
16
// SUMO is free software: you can redistribute it and/or modify
17
// it under the terms of the GNU General Public License as published by
18
// the Free Software Foundation, either version 3 of the License, or
19
// (at your option) any later version.
20
//
21
/****************************************************************************/
22
23
24
// ===========================================================================
25
// included modules
26
// ===========================================================================
27
#ifdef _MSC_VER
28
#include <
windows_config.h
>
29
#else
30
#include <
config.h
>
31
#endif
32
33
#include <algorithm>
34
#include <
utils/common/SUMOVTypeParameter.h
>
35
#include <
utils/common/ToString.h
>
36
#include <
utils/common/TplConvert.h
>
37
#include <
utils/common/MsgHandler.h
>
38
#include <
utils/iodevices/OutputDevice.h
>
39
#include <
utils/options/OptionsCont.h
>
40
#include <
utils/xml/SUMOXMLDefinitions.h
>
41
42
#ifdef CHECK_MEMORY_LEAKS
43
#include <
foreign/nvwa/debug_new.h
>
44
#endif // CHECK_MEMORY_LEAKS
45
46
47
// ===========================================================================
48
// member method definitions
49
// ===========================================================================
50
SUMOVTypeParameter::SUMOVTypeParameter
()
51
: id(
DEFAULT_VTYPE_ID
), length(
DEFAULT_VEH_LENGTH
),
52
minGap(
DEFAULT_VEH_MINGAP
), maxSpeed(
DEFAULT_VEH_MAXSPEED
),
53
defaultProbability(
DEFAULT_VEH_PROB
),
54
speedFactor(
DEFAULT_VEH_SPEEDFACTOR
), speedDev(
DEFAULT_VEH_SPEEDDEV
),
55
emissionClass(
SVE_UNKNOWN
), color(
RGBColor
::DEFAULT_COLOR),
56
vehicleClass(
SVC_UNKNOWN
),
57
impatience(0),
58
width(
DEFAULT_VEH_WIDTH
),
59
height(
DEFAULT_VEH_HEIGHT
), shape(
DEFAULT_VEH_SHAPE
),
60
cfModel(
DEFAULT_VEH_FOLLOW_MODEL
), lcModel(
DEFAULT_VEH_LANE_CHANGE_MODEL
),
61
setParameter(0), saved(false), onlyReferenced(false) {
62
}
63
64
65
void
66
SUMOVTypeParameter::write
(
OutputDevice
& dev)
const
{
67
if
(
onlyReferenced
) {
68
return
;
69
}
70
dev.
openTag
(
SUMO_TAG_VTYPE
);
71
dev.
writeAttr
(
SUMO_ATTR_ID
,
id
);
72
if
(
wasSet
(
VTYPEPARS_LENGTH_SET
)) {
73
dev.
writeAttr
(
SUMO_ATTR_LENGTH
,
length
);
74
}
75
if
(
wasSet
(
VTYPEPARS_MINGAP_SET
)) {
76
dev.
writeAttr
(
SUMO_ATTR_MINGAP
,
minGap
);
77
}
78
if
(
wasSet
(
VTYPEPARS_MAXSPEED_SET
)) {
79
dev.
writeAttr
(
SUMO_ATTR_MAXSPEED
,
maxSpeed
);
80
}
81
if
(
wasSet
(
VTYPEPARS_PROBABILITY_SET
)) {
82
dev.
writeAttr
(
SUMO_ATTR_PROB
,
defaultProbability
);
83
}
84
if
(
wasSet
(
VTYPEPARS_SPEEDFACTOR_SET
)) {
85
dev.
writeAttr
(
SUMO_ATTR_SPEEDFACTOR
,
speedFactor
);
86
}
87
if
(
wasSet
(
VTYPEPARS_SPEEDDEVIATION_SET
)) {
88
dev.
writeAttr
(
SUMO_ATTR_SPEEDDEV
,
speedDev
);
89
}
90
if
(
wasSet
(
VTYPEPARS_VEHICLECLASS_SET
)) {
91
dev.
writeAttr
(
SUMO_ATTR_VCLASS
,
toString
(
vehicleClass
));
92
}
93
if
(
wasSet
(
VTYPEPARS_EMISSIONCLASS_SET
)) {
94
dev.
writeAttr
(
SUMO_ATTR_EMISSIONCLASS
,
getVehicleEmissionTypeName
(
emissionClass
));
95
}
96
if
(
wasSet
(
VTYPEPARS_IMPATIENCE_SET
)) {
97
if
(
impatience
== -
std::numeric_limits<SUMOReal>::max
()) {
98
dev.
writeAttr
(
SUMO_ATTR_IMPATIENCE
,
"off"
);
99
}
else
{
100
dev.
writeAttr
(
SUMO_ATTR_IMPATIENCE
,
impatience
);
101
}
102
}
103
if
(
wasSet
(
VTYPEPARS_SHAPE_SET
)) {
104
dev.
writeAttr
(
SUMO_ATTR_GUISHAPE
,
getVehicleShapeName
(
shape
));
105
}
106
if
(
wasSet
(
VTYPEPARS_WIDTH_SET
)) {
107
dev.
writeAttr
(
SUMO_ATTR_WIDTH
,
width
);
108
}
109
if
(
wasSet
(
VTYPEPARS_HEIGHT_SET
)) {
110
dev.
writeAttr
(
SUMO_ATTR_HEIGHT
,
height
);
111
}
112
if
(
wasSet
(
VTYPEPARS_COLOR_SET
)) {
113
dev.
writeAttr
(
SUMO_ATTR_COLOR
,
color
);
114
}
115
if
(
wasSet
(
VTYPEPARS_OSGFILE_SET
)) {
116
dev.
writeAttr
(
SUMO_ATTR_OSGFILE
,
osgFile
);
117
}
118
if
(
wasSet
(
VTYPEPARS_IMGFILE_SET
)) {
119
dev.
writeAttr
(
SUMO_ATTR_IMGFILE
,
imgFile
);
120
}
121
if
(
wasSet
(
VTYPEPARS_LCM_SET
)) {
122
dev.
writeAttr
(
SUMO_ATTR_LANE_CHANGE_MODEL
,
lcModel
);
123
}
124
125
if
(
cfParameter
.size() != 0) {
126
dev.
openTag
(
cfModel
);
127
std::vector<SumoXMLAttr> attrs;
128
for
(CFParams::const_iterator i =
cfParameter
.begin(); i !=
cfParameter
.end(); ++i) {
129
attrs.push_back(i->first);
130
}
131
std::sort(attrs.begin(), attrs.end());
132
for
(std::vector<SumoXMLAttr>::const_iterator i = attrs.begin(); i != attrs.end(); ++i) {
133
dev.
writeAttr
(*i,
cfParameter
.find(*i)->second);
134
}
135
dev.
closeTag
();
136
dev.
closeTag
();
137
}
else
{
138
dev.
closeTag
();
139
}
140
}
141
142
143
SUMOReal
144
SUMOVTypeParameter::get
(
const
SumoXMLAttr
attr,
const
SUMOReal
defaultValue)
const
{
145
if
(
cfParameter
.count(attr)) {
146
return
cfParameter
.find(attr)->second;
147
}
else
{
148
return
defaultValue;
149
}
150
}
151
152
153
/****************************************************************************/
154
home
delphi
sumo
src
utils
common
SUMOVTypeParameter.cpp
Generated by
1.8.2