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
NBLoadedSUMOTLDef.h
Go to the documentation of this file.
1
/****************************************************************************/
7
// A complete traffic light logic loaded from a sumo-net. (opted to reimplement
8
// since NBLoadedTLDef is quite vissim specific)
9
/****************************************************************************/
10
// SUMO, Simulation of Urban MObility; see http://sumo-sim.org/
11
// Copyright (C) 2001-2013 DLR (http://www.dlr.de/) and contributors
12
/****************************************************************************/
13
//
14
// This file is part of SUMO.
15
// SUMO is free software: you can redistribute it and/or modify
16
// it under the terms of the GNU General Public License as published by
17
// the Free Software Foundation, either version 3 of the License, or
18
// (at your option) any later version.
19
//
20
/****************************************************************************/
21
#ifndef NBLoadedSUMOTLDef_h
22
#define NBLoadedSUMOTLDef_h
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 <string>
36
#include <set>
37
#include "
NBNode.h
"
38
#include "
NBEdgeCont.h
"
39
#include "
NBTrafficLightDefinition.h
"
40
#include "
NBTrafficLightLogic.h
"
41
#include <
utils/common/SUMOTime.h
>
42
43
44
// ===========================================================================
45
// class definitions
46
// ===========================================================================
51
class
NBLoadedSUMOTLDef
:
public
NBTrafficLightDefinition
{
52
public
:
53
60
NBLoadedSUMOTLDef
(
const
std::string&
id
,
const
std::string& programID,
SUMOTime
offset,
TrafficLightType
type);
61
66
NBLoadedSUMOTLDef
(
NBTrafficLightDefinition
* def,
NBTrafficLightLogic
* logic);
67
68
70
~NBLoadedSUMOTLDef
();
71
75
void
setTLControllingInformation
(
const
NBEdgeCont
& ec)
const
;
76
82
void
remapRemoved
(
NBEdge
* removed,
83
const
EdgeVector
& incoming,
const
EdgeVector
& outgoing);
84
85
92
void
replaceRemoved
(
NBEdge
* removed,
int
removedLane,
93
NBEdge
* by,
int
byLane);
94
100
void
addPhase
(
SUMOTime
duration,
const
std::string& state);
101
102
105
void
addConnection
(
NBEdge
* from,
NBEdge
* to,
int
fromLane,
int
toLane,
int
linkIndex);
106
107
112
void
removeConnection
(
const
NBConnection
& conn,
bool
reconstruct =
true
);
113
116
NBTrafficLightLogic
*
getLogic
() {
117
return
myTLLogic
;
118
}
119
123
void
setOffset
(
SUMOTime
offset);
124
125
protected
:
129
void
collectLinks
();
130
131
137
NBTrafficLightLogic
*
myCompute
(
const
NBEdgeCont
& ec,
138
unsigned
int
brakingTime);
139
140
bool
amInvalid
()
const
;
141
142
private
:
143
145
NBTrafficLightLogic
*
myTLLogic
;
146
148
std::set<NBNode*>
myOriginalNodes
;
149
151
void
setTLControllingInformation
()
const
;
152
153
private
:
155
class
connection_equal
{
156
public
:
158
connection_equal
(
const
NBConnection
& c) :
myC
(c) {}
159
160
bool
operator()
(
const
NBConnection
& c)
const
{
161
return
c.
getFrom
() ==
myC
.
getFrom
() && c.
getTo
() ==
myC
.
getTo
() &&
162
c.
getFromLane
() ==
myC
.
getFromLane
() && c.
getToLane
() ==
myC
.
getToLane
();
163
}
164
private
:
165
const
NBConnection
&
myC
;
166
private
:
168
connection_equal
&
operator=
(
const
connection_equal
& s);
169
170
};
171
172
};
173
174
175
#endif
176
177
/****************************************************************************/
178
build
buildd
sumo-0.18~dfsg
src
netbuild
NBLoadedSUMOTLDef.h
Generated on Wed Oct 23 2013 01:15:10 for SUMO - Simulation of Urban MObility by
1.8.4