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
NIImporter_VISUM.h
Go to the documentation of this file.
1
/****************************************************************************/
8
// A VISUM network importer
9
/****************************************************************************/
10
// SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/
11
// Copyright (C) 2001-2012 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 NIImporter_VISUM_h
22
#define NIImporter_VISUM_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 <string>
35
#include <map>
36
#include <vector>
37
#include <
netbuild/NBCapacity2Lanes.h
>
38
#include <
utils/importio/LineHandler.h
>
39
#include <
utils/importio/LineReader.h
>
40
#include <
utils/importio/NamedColumnsParser.h
>
41
#include "
NIVisumTL.h
"
42
43
44
// ===========================================================================
45
// class declaration
46
// ===========================================================================
47
class
OptionsCont
;
48
class
NBNetBuilder
;
49
class
NBNodeCont
;
50
class
NBEdgeCont
;
51
class
NBNode
;
52
class
NBEdge
;
53
54
55
// ===========================================================================
56
// class declaration
57
// ===========================================================================
76
class
NIImporter_VISUM
{
77
public
:
89
static
void
loadNetwork
(
const
OptionsCont
& oc,
NBNetBuilder
& nb);
90
91
92
protected
:
103
NIImporter_VISUM
(
NBNetBuilder
& nb,
const
std::string& file,
104
NBCapacity2Lanes
capacity2Lanes,
bool
useVisumPrio);
105
106
108
~NIImporter_VISUM
();
109
110
121
void
load
();
122
123
private
:
132
SUMOReal
getNamedFloat
(
const
std::string& fieldName)
throw
(
OutOfBoundsException
,
NumberFormatException
,
UnknownElement
);
133
143
SUMOReal
getNamedFloat
(
const
std::string& fieldName1,
const
std::string& fieldName2)
throw
(
OutOfBoundsException
,
NumberFormatException
,
UnknownElement
);
144
145
152
SUMOReal
getNamedFloat
(
const
std::string& fieldName,
SUMOReal
defaultValue);
153
161
SUMOReal
getNamedFloat
(
const
std::string& fieldName1,
const
std::string& fieldName2,
162
SUMOReal
defaultValue);
163
164
175
std::string
getNamedString
(
const
std::string& fieldName)
throw
(
OutOfBoundsException
,
NumberFormatException
,
UnknownElement
);
176
186
std::string
getNamedString
(
const
std::string& fieldName1,
const
std::string& fieldName2)
throw
(
OutOfBoundsException
,
NumberFormatException
,
UnknownElement
);
187
188
198
SUMOReal
getWeightedFloat
(
const
std::string& name);
199
200
210
bool
getWeightedBool
(
const
std::string& name);
211
212
225
NBNode
*
getNamedNode
(
const
std::string& fieldName)
throw
(
OutOfBoundsException
,
NumberFormatException
,
UnknownElement
);
226
236
NBNode
*
getNamedNode
(
const
std::string& fieldName1,
const
std::string& fieldName2)
throw
(
OutOfBoundsException
,
NumberFormatException
,
UnknownElement
);
237
238
251
NBEdge
*
getNamedEdge
(
const
std::string& fieldName)
throw
(
OutOfBoundsException
,
NumberFormatException
,
UnknownElement
);
252
262
NBEdge
*
getNamedEdge
(
const
std::string& fieldName1,
const
std::string& fieldName2)
throw
(
OutOfBoundsException
,
NumberFormatException
,
UnknownElement
);
263
264
279
NBEdge
*
getNamedEdgeContinuating
(
const
std::string& fieldName,
NBNode
* node)
throw
(
OutOfBoundsException
,
NumberFormatException
,
UnknownElement
);
280
291
NBEdge
*
getNamedEdgeContinuating
(
const
std::string& fieldName1,
const
std::string& fieldName2,
292
NBNode
* node)
throw
(
OutOfBoundsException
,
NumberFormatException
,
UnknownElement
);
293
300
NBEdge
*
getNamedEdgeContinuating
(
NBEdge
* begin,
NBNode
* node);
301
302
309
NBEdge
*
getEdge
(
NBNode
* FromNode,
NBNode
* ToNode);
310
311
322
NBEdge
*
getReversedContinuating
(
NBEdge
* edge,
NBNode
* node);
323
324
337
NBNode
*
buildDistrictNode
(
const
std::string&
id
,
NBNode
* dest,
bool
isSource);
338
339
348
bool
checkNodes
(
NBNode
* from,
NBNode
* to);
349
350
351
private
:
358
typedef
void (
NIImporter_VISUM
::*
ParsingFunction
)();
359
364
struct
TypeParser
{
368
std::string
name
;
369
373
ParsingFunction
function
;
374
379
long
position
;
380
384
std::string
pattern
;
385
386
};
387
388
389
391
void
parse_VSysTypes
();
392
394
void
parse_Types
();
395
397
void
parse_Nodes
();
398
400
void
parse_Districts
();
401
403
void
parse_Point
();
404
405
407
void
parse_Edges
();
408
410
void
parse_PartOfArea
();
411
413
void
parse_Kante
();
414
415
417
void
parse_Connectors
();
418
420
void
parse_Turns
();
421
423
void
parse_EdgePolys
();
424
426
void
parse_Lanes
();
427
429
void
parse_TrafficLights
();
430
432
void
parse_NodesToTrafficLights
();
433
435
void
parse_SignalGroups
();
436
438
void
parse_TurnsToSignalGroups
();
439
441
void
parse_AreaSubPartElement
();
442
444
void
parse_Phases
();
445
447
void
parse_SignalGroupsToPhases
();
448
450
void
parse_LanesConnections
();
451
452
458
void
addParser
(
const
std::string& name,
ParsingFunction
function
);
459
460
461
private
:
463
NBNetBuilder
&
myNetBuilder
;
464
466
std::string
myFileName
;
467
469
LineReader
myLineReader
;
470
474
NamedColumnsParser
myLineParser
;
475
477
NBCapacity2Lanes
myCapacity2Lanes
;
478
480
typedef
std::map<std::string, std::string>
VSysTypeNames
;
482
VSysTypeNames
myVSysTypes
;
483
485
typedef
std::vector<TypeParser>
ParserVector
;
487
ParserVector
mySingleDataParsers
;
488
490
typedef
std::map<std::string, NIVisumTL*>
NIVisumTL_Map
;
492
NIVisumTL_Map
myTLS
;
493
495
std::vector<std::string >
myTouchedEdges
;
496
498
bool
myUseVisumPrio
;
499
501
std::string
myCurrentID
;
502
503
505
std::map<SUMOLong, Position>
myPoints
;
506
508
std::map<SUMOLong, std::pair<SUMOLong, SUMOLong> >
myEdges
;
509
511
std::map<SUMOLong, NBDistrict*>
myShapeDistrictMap
;
512
514
std::map<SUMOLong, std::vector<SUMOLong> >
mySubPartsAreas
;
515
517
std::map<NBDistrict*, PositionVector>
myDistrictShapes
;
518
519
520
};
521
522
523
#endif
524
525
/****************************************************************************/
526
build
buildd
sumo-0.16.0~dfsg
src
netimport
NIImporter_VISUM.h
Generated on Tue Apr 16 2013 01:32:19 for SUMO - Simulation of Urban MObility by
1.8.3.1