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
NBOwnTLDef.h
Go to the documentation of this file.
1
/****************************************************************************/
9
// A traffic light logics which must be computed (only nodes/edges are given)
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
#ifndef NBOwnTLDef_h
23
#define NBOwnTLDef_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 <vector>
36
#include <set>
37
#include <
utils/xml/SUMOXMLDefinitions.h
>
38
#include "
NBTrafficLightDefinition.h
"
39
40
41
// ===========================================================================
42
// class declarations
43
// ===========================================================================
44
class
NBNode
;
45
46
47
// ===========================================================================
48
// class definitions
49
// ===========================================================================
54
class
NBOwnTLDef
:
public
NBTrafficLightDefinition
{
55
public
:
62
NBOwnTLDef
(
const
std::string&
id
,
63
const
std::vector<NBNode*>& junctions,
64
SUMOTime
offset,
65
TrafficLightType
type);
66
67
74
NBOwnTLDef
(
const
std::string&
id
,
NBNode
* junction,
SUMOTime
offset,
75
TrafficLightType
type);
76
77
83
NBOwnTLDef
(
const
std::string&
id
,
SUMOTime
offset,
TrafficLightType
type);
84
85
87
~NBOwnTLDef
();
88
89
93
void
setParticipantsInformation
();
94
95
98
105
void
remapRemoved
(
NBEdge
* removed,
106
const
EdgeVector
& incoming,
const
EdgeVector
& outgoing);
107
108
113
void
setTLControllingInformation
(
const
NBEdgeCont
& ec)
const
;
115
116
117
protected
:
120
127
NBTrafficLightLogic
*
myCompute
(
const
NBEdgeCont
& ec,
128
unsigned
int
brakingTimeSeconds);
129
130
134
void
collectNodes
();
135
136
141
void
collectLinks
();
142
143
151
void
replaceRemoved
(
NBEdge
* removed,
int
removedLane,
152
NBEdge
* by,
int
byLane);
154
155
156
protected
:
162
SUMOReal
getDirectionalWeight
(
LinkDirection
dir);
163
164
169
int
getToPrio
(
const
NBEdge
*
const
e);
170
171
177
SUMOReal
computeUnblockedWeightedStreamNumber
(
const
NBEdge
*
const
e1,
const
NBEdge
*
const
e2);
178
179
184
std::pair<NBEdge*, NBEdge*>
getBestCombination
(
const
EdgeVector
& edges);
185
186
194
std::pair<NBEdge*, NBEdge*>
getBestPair
(
EdgeVector
& incoming);
195
196
200
class
edge_by_incoming_priority_sorter
{
201
public
:
206
int
operator()
(
const
NBEdge
*
const
e1,
const
NBEdge
*
const
e2)
const
{
207
if
(e1->
getJunctionPriority
(e1->
getToNode
()) != e2->
getJunctionPriority
(e2->
getToNode
())) {
208
return
e1->
getJunctionPriority
(e1->
getToNode
()) > e2->
getJunctionPriority
(e2->
getToNode
());
209
}
210
return
e1->
getID
() > e2->
getID
();
211
}
212
};
213
214
};
215
216
217
#endif
218
219
/****************************************************************************/
220
build
buildd
sumo-0.18~dfsg
src
netbuild
NBOwnTLDef.h
Generated on Wed Oct 23 2013 01:15:10 for SUMO - Simulation of Urban MObility by
1.8.4