Eclipse SUMO - Simulation of Urban MObility
NIVissimTrafficDescription.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
/****************************************************************************/
14
// -------------------
15
/****************************************************************************/
16
17
18
// ===========================================================================
19
// included modules
20
// ===========================================================================
21
#include <
config.h
>
22
23
#include <string>
24
#include <map>
25
#include <cassert>
26
#include "
NIVissimVehicleClassVector.h
"
27
#include "
NIVissimTrafficDescription.h
"
28
29
30
// ===========================================================================
31
// member function definitions
32
// ===========================================================================
33
NIVissimTrafficDescription::DictType
NIVissimTrafficDescription::myDict
;
34
35
36
// ===========================================================================
37
// member method definitions
38
// ===========================================================================
39
NIVissimTrafficDescription::NIVissimTrafficDescription
(
40
const
std::string& name,
41
const
NIVissimVehicleClassVector
& vehicleTypes)
42
: myName(name), myVehicleTypes(vehicleTypes) {}
43
44
45
NIVissimTrafficDescription::~NIVissimTrafficDescription
() {
46
for
(NIVissimVehicleClassVector::iterator i =
myVehicleTypes
.begin(); i !=
myVehicleTypes
.end(); i++) {
47
delete
*i;
48
}
49
myVehicleTypes
.clear();
50
}
51
52
53
bool
54
NIVissimTrafficDescription::dictionary
(
int
id
,
55
const
std::string& name,
56
const
NIVissimVehicleClassVector
& vehicleTypes) {
57
NIVissimTrafficDescription
* o =
new
NIVissimTrafficDescription
(name, vehicleTypes);
58
if
(!
dictionary
(
id
, o)) {
59
delete
o;
60
return
false
;
61
}
62
return
true
;
63
}
64
65
66
bool
67
NIVissimTrafficDescription::dictionary
(
int
id
,
NIVissimTrafficDescription
* o) {
68
DictType::iterator i =
myDict
.find(
id
);
69
if
(i ==
myDict
.end()) {
70
myDict
[id] = o;
71
return
true
;
72
}
73
return
false
;
74
}
75
76
77
NIVissimTrafficDescription
*
78
NIVissimTrafficDescription::dictionary
(
int
id
) {
79
DictType::iterator i =
myDict
.find(
id
);
80
if
(i ==
myDict
.end()) {
81
return
nullptr
;
82
}
83
return
(*i).second;
84
}
85
86
87
void
88
NIVissimTrafficDescription::clearDict
() {
89
for
(DictType::iterator i =
myDict
.begin(); i !=
myDict
.end(); i++) {
90
delete
(*i).second;
91
}
92
myDict
.clear();
93
}
94
95
96
97
98
double
99
NIVissimTrafficDescription::meanSpeed
(
int
id
) {
100
NIVissimTrafficDescription
* i =
dictionary
(
id
);
101
assert(i != 0);
102
return
i->
meanSpeed
();
103
}
104
105
106
double
107
NIVissimTrafficDescription::meanSpeed
()
const
{
108
double
speed = 0;
109
for
(NIVissimVehicleClassVector::const_iterator i =
myVehicleTypes
.begin(); i !=
myVehicleTypes
.end(); i++) {
110
speed += (*i)->getSpeed();
111
}
112
return
speed / (double)
myVehicleTypes
.size();
113
}
114
115
116
117
/****************************************************************************/
118
NIVissimTrafficDescription::NIVissimTrafficDescription
NIVissimTrafficDescription(const std::string &name, const NIVissimVehicleClassVector &vehicleTypes)
Definition:
NIVissimTrafficDescription.cpp:39
NIVissimTrafficDescription::dictionary
static bool dictionary(int id, const std::string &name, const NIVissimVehicleClassVector &vehicleTypes)
Definition:
NIVissimTrafficDescription.cpp:54
NIVissimTrafficDescription::meanSpeed
static double meanSpeed(int id)
Definition:
NIVissimTrafficDescription.cpp:99
NIVissimTrafficDescription::DictType
std::map< int, NIVissimTrafficDescription * > DictType
Definition:
NIVissimTrafficDescription.h:52
NIVissimTrafficDescription::meanSpeed
double meanSpeed() const
Definition:
NIVissimTrafficDescription.cpp:107
NIVissimTrafficDescription::myVehicleTypes
NIVissimVehicleClassVector myVehicleTypes
Definition:
NIVissimTrafficDescription.h:50
NIVissimVehicleClassVector
std::vector< NIVissimVehicleClass * > NIVissimVehicleClassVector
Definition:
NIVissimVehicleClassVector.h:29
NIVissimTrafficDescription::myDict
static DictType myDict
Definition:
NIVissimTrafficDescription.h:53
NIVissimTrafficDescription
Definition:
NIVissimTrafficDescription.h:36
NIVissimTrafficDescription::~NIVissimTrafficDescription
~NIVissimTrafficDescription()
Definition:
NIVissimTrafficDescription.cpp:45
NIVissimTrafficDescription::clearDict
static void clearDict()
Definition:
NIVissimTrafficDescription.cpp:88
config.h
NIVissimVehicleClassVector.h
NIVissimTrafficDescription.h
src
netimport
vissim
tempstructs
NIVissimTrafficDescription.cpp
Generated on Thu Jan 16 2020 21:12:23 for Eclipse SUMO - Simulation of Urban MObility by
1.8.16