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
MSEdgeControl.h
Go to the documentation of this file.
1
/****************************************************************************/
12
// Stores edges and lanes, performs moving of vehicle
13
/****************************************************************************/
14
// SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/
15
// Copyright (C) 2001-2012 DLR (http://www.dlr.de/) and contributors
16
/****************************************************************************/
17
//
18
// This file is part of SUMO.
19
// SUMO is free software: you can redistribute it and/or modify
20
// it under the terms of the GNU General Public License as published by
21
// the Free Software Foundation, either version 3 of the License, or
22
// (at your option) any later version.
23
//
24
/****************************************************************************/
25
#ifndef MSEdgeControl_h
26
#define MSEdgeControl_h
27
28
29
// ===========================================================================
30
// included modules
31
// ===========================================================================
32
#ifdef _MSC_VER
33
#include <
windows_config.h
>
34
#else
35
#include <
config.h
>
36
#endif
37
38
#include <vector>
39
#include <map>
40
#include <string>
41
#include <iostream>
42
#include <list>
43
#include <set>
44
#include <
utils/common/SUMOTime.h
>
45
#include <
utils/common/Named.h
>
46
47
48
// ===========================================================================
49
// class declarations
50
// ===========================================================================
51
class
MSEdge
;
52
class
MSLane
;
53
class
OutputDevice
;
54
55
56
// ===========================================================================
57
// class definitions
58
// ===========================================================================
73
class
MSEdgeControl
{
74
public
:
76
typedef
std::vector< MSEdge* >
EdgeCont
;
77
78
public
:
86
MSEdgeControl
(
const
std::vector< MSEdge* >& edges);
87
88
90
~MSEdgeControl
();
91
92
99
void
patchActiveLanes
();
100
101
104
117
void
moveCritical
(
SUMOTime
t);
118
119
138
void
moveFirst
(
SUMOTime
t);
140
141
150
void
changeLanes
(
SUMOTime
t);
151
152
161
void
detectCollisions
(
SUMOTime
timestep);
162
163
169
const
std::vector<MSEdge*>&
getEdges
()
const
{
170
return
myEdges
;
171
}
172
173
178
std::vector<std::string>
getEdgeNames
()
const
;
179
180
186
void
gotActive
(
MSLane
* l);
187
188
189
public
:
201
struct
LaneUsage
{
203
MSLane
*
lane
;
205
std::vector<MSLane*>::const_iterator
firstNeigh
;
207
std::vector<MSLane*>::const_iterator
lastNeigh
;
209
bool
amActive
;
211
bool
haveNeighbors
;
212
};
213
214
private
:
216
std::vector<MSEdge*>
myEdges
;
217
219
typedef
std::vector<LaneUsage>
LaneUsageVector
;
220
222
LaneUsageVector
myLanes
;
223
225
std::list<MSLane*>
myActiveLanes
;
226
228
std::vector<MSLane*>
myWithVehicles2Integrate
;
229
231
std::set<MSLane*, Named::ComparatorIdLess>
myChangedStateLanes
;
232
234
std::vector<SUMOTime>
myLastLaneChange
;
235
236
private
:
238
MSEdgeControl
(
const
MSEdgeControl
&);
239
241
MSEdgeControl
&
operator=
(
const
MSEdgeControl
&);
242
243
};
244
245
246
#endif
247
248
/****************************************************************************/
249
build
buildd
sumo-0.16.0~dfsg
src
microsim
MSEdgeControl.h
Generated on Tue Apr 16 2013 01:32:17 for SUMO - Simulation of Urban MObility by
1.8.3.1