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.sourceforge.net/
12
// Copyright (C) 2001-2012 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
:
61
NBOwnTLDef
(
const
std::string&
id
,
62
const
std::vector<NBNode*>& junctions,
SUMOTime
offset);
63
64
70
NBOwnTLDef
(
const
std::string&
id
,
NBNode
* junction,
SUMOTime
offset);
71
72
77
NBOwnTLDef
(
const
std::string&
id
,
SUMOTime
offset);
78
79
81
~NBOwnTLDef
();
82
83
87
void
setParticipantsInformation
();
88
89
92
99
void
remapRemoved
(
NBEdge
* removed,
100
const
EdgeVector
& incoming,
const
EdgeVector
& outgoing);
101
102
107
void
setTLControllingInformation
(
const
NBEdgeCont
& ec)
const
;
109
110
111
protected
:
114
121
NBTrafficLightLogic
*
myCompute
(
const
NBEdgeCont
& ec,
122
unsigned
int
brakingTimeSeconds);
123
124
128
void
collectNodes
();
129
130
135
void
collectLinks
();
136
137
145
void
replaceRemoved
(
NBEdge
* removed,
int
removedLane,
146
NBEdge
* by,
int
byLane);
148
149
150
protected
:
156
SUMOReal
getDirectionalWeight
(
LinkDirection
dir);
157
158
163
int
getToPrio
(
const
NBEdge
*
const
e);
164
165
171
SUMOReal
computeUnblockedWeightedStreamNumber
(
const
NBEdge
*
const
e1,
const
NBEdge
*
const
e2);
172
173
178
std::pair<NBEdge*, NBEdge*>
getBestCombination
(
const
EdgeVector
& edges);
179
180
188
std::pair<NBEdge*, NBEdge*>
getBestPair
(
EdgeVector
& incoming);
189
190
194
class
edge_by_incoming_priority_sorter
{
195
public
:
200
int
operator()
(
const
NBEdge
*
const
e1,
const
NBEdge
*
const
e2)
const
{
201
if
(e1->
getJunctionPriority
(e1->
getToNode
()) != e2->
getJunctionPriority
(e2->
getToNode
())) {
202
return
e1->
getJunctionPriority
(e1->
getToNode
()) > e2->
getJunctionPriority
(e2->
getToNode
());
203
}
204
return
e1->
getID
() > e2->
getID
();
205
}
206
};
207
208
};
209
210
211
#endif
212
213
/****************************************************************************/
214
build
buildd
sumo-0.16.0~dfsg
src
netbuild
NBOwnTLDef.h
Generated on Tue Apr 16 2013 01:32:18 for SUMO - Simulation of Urban MObility by
1.8.3.1