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-2013 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
112
void
planMovements
(
SUMOTime
t);
113
114
128
void
executeMovements
(
SUMOTime
t);
130
131
140
void
changeLanes
(
SUMOTime
t);
141
142
153
void
detectCollisions
(
SUMOTime
timestep,
int
stage);
154
155
161
const
std::vector<MSEdge*>&
getEdges
()
const
{
162
return
myEdges
;
163
}
164
165
170
std::vector<std::string>
getEdgeNames
()
const
;
171
172
178
void
gotActive
(
MSLane
* l);
179
180
181
public
:
193
struct
LaneUsage
{
195
MSLane
*
lane
;
197
std::vector<MSLane*>::const_iterator
firstNeigh
;
199
std::vector<MSLane*>::const_iterator
lastNeigh
;
201
bool
amActive
;
203
bool
haveNeighbors
;
204
};
205
206
private
:
208
std::vector<MSEdge*>
myEdges
;
209
211
typedef
std::vector<LaneUsage>
LaneUsageVector
;
212
214
LaneUsageVector
myLanes
;
215
217
std::list<MSLane*>
myActiveLanes
;
218
220
std::vector<MSLane*>
myWithVehicles2Integrate
;
221
223
std::set<MSLane*, Named::ComparatorIdLess>
myChangedStateLanes
;
224
226
std::vector<SUMOTime>
myLastLaneChange
;
227
228
private
:
230
MSEdgeControl
(
const
MSEdgeControl
&);
231
233
MSEdgeControl
&
operator=
(
const
MSEdgeControl
&);
234
235
};
236
237
238
#endif
239
240
/****************************************************************************/
241
build
buildd
sumo-0.17.1~dfsg
src
microsim
MSEdgeControl.h
Generated on Sun Jun 16 2013 17:30:16 for SUMO - Simulation of Urban MObility by
1.8.3.1