NIImporter_Vissim Class Reference

#include <NIImporter_Vissim.h>


Detailed Description

Importer for networks stored in Vissim format.

Definition at line 55 of file NIImporter_Vissim.h.


Public Types

typedef std::map< std::string,
RGBColor
ColorMap
 definition of a map from color names to color definitions

Static Public Member Functions

static void loadNetwork (const OptionsCont &oc, NBNetBuilder &nb)
 Loads network definition from the assigned option and stores it in the given network builder.

Protected Member Functions

bool admitContinue (const std::string &tag)
void load (const OptionsCont &options)
 loads the vissim file
 NIImporter_Vissim (NBNetBuilder &nb, const std::string &file)
 constructor
 ~NIImporter_Vissim ()
 destructor

Private Types

typedef std::map< std::string,
NIVissimElement
ToElemIDMap
 Definition of a map from element names to their numerical representation.
typedef std::map
< NIVissimElement,
VissimSingleTypeParser * > 
ToParserMap
 Definition of a map from an element's numerical id to his parser.

Private Member Functions

void buildParsers ()
 adds id-to-parser - relationships of elements to parse into myParsers
void insertKnownElements ()
 adds name-to-id - relationships of known elements into myKnownElements
 NIImporter_Vissim (const NIImporter_Vissim &)
 Invalidated copy constructor.
NIImporter_Vissimoperator= (const NIImporter_Vissim &)
 Invalidated assignment operator.
void postLoadBuild (SUMOReal offset)
bool readContents (std::istream &strm)

Private Attributes

ColorMap myColorMap
 a map from color names to color definitions
ToElemIDMap myKnownElements
 Map from element names to their numerical representation.
std::string myLastSecure
NBNetBuildermyNetBuilder
ToParserMap myParsers
 Parsers by element id.

Data Structures

class  VissimSingleTypeParser

Member Typedef Documentation

typedef std::map<std::string, RGBColor> NIImporter_Vissim::ColorMap

definition of a map from color names to color definitions

Definition at line 140 of file NIImporter_Vissim.h.

typedef std::map<std::string, NIVissimElement> NIImporter_Vissim::ToElemIDMap [private]

Definition of a map from element names to their numerical representation.

Definition at line 155 of file NIImporter_Vissim.h.

Definition of a map from an element's numerical id to his parser.

Definition at line 161 of file NIImporter_Vissim.h.


Constructor & Destructor Documentation

NIImporter_Vissim::NIImporter_Vissim ( NBNetBuilder nb,
const std::string &  file 
) [protected]

constructor

Definition at line 313 of file NIImporter_Vissim.cpp.

References buildParsers(), insertKnownElements(), myColorMap, and SUMOReal.

00314         : myNetBuilder(nb) {
00315     insertKnownElements();
00316     buildParsers();
00317     myColorMap["blau"] = RGBColor((SUMOReal) .3, (SUMOReal) 0.3, (SUMOReal) 1);
00318     myColorMap["gelb"] = RGBColor(1, 1, 0);
00319     myColorMap["grau"] = RGBColor((SUMOReal) .5, (SUMOReal) 0.5, (SUMOReal) .5);
00320     myColorMap["lila"] = RGBColor(1, 0, 1);
00321     myColorMap["gruen"] = RGBColor(0, 1, 0);
00322     myColorMap["rot"] = RGBColor(1, 0, 0);
00323     myColorMap["schwarz"] = RGBColor(0, 0, 0);
00324     myColorMap["tuerkis"] = RGBColor(0, 1, 1);
00325     myColorMap["weiss"] = RGBColor(1, 1, 1);
00326     myColorMap["keine"] = RGBColor(1, 1, 1);
00327 }

NIImporter_Vissim::~NIImporter_Vissim (  )  [protected]

NIImporter_Vissim::NIImporter_Vissim ( const NIImporter_Vissim  )  [private]

Invalidated copy constructor.


Member Function Documentation

bool NIImporter_Vissim::admitContinue ( const std::string &  tag  )  [protected]

Definition at line 373 of file NIImporter_Vissim.cpp.

References myKnownElements, and myLastSecure.

Referenced by NIImporter_Vissim::VissimSingleTypeParser::readEndSecure().

00373                                                      {
00374     ToElemIDMap::const_iterator i=myKnownElements.find(tag);
00375     if (i==myKnownElements.end()) {
00376         return true;
00377     }
00378     myLastSecure = tag;
00379     return false;
00380 }

void NIImporter_Vissim::buildParsers (  )  [private]

adds id-to-parser - relationships of elements to parse into myParsers

Definition at line 557 of file NIImporter_Vissim.cpp.

References myColorMap, myParsers, VE_Auswertungsdefinition, VE_Baujahrverteilungsdefinition, VE_Detektorendefinition, VE_DynUml, VE_Einheitendefinition, VE_Emission, VE_Fahrtverlaufdateien, VE_Fahrverhaltendefinition, VE_Fahrzeugklassendefinition, VE_Fahrzeugtypdefinition, VE_Fensterdefinition, VE_Gefahrenwarnsystemdefinition, VE_Gelbverhaltendefinition, VE_Geschwindigkeitsverteilungsdefinition, VE_Haltestellendefinition, VE_Kantensperrung, VE_Kennungszeile, VE_Knotendefinition, VE_Laengenverteilungsdefinition, VE_Langsamfahrbereichdefinition, VE_Laufleistungsverteilungsdefinition, VE_Leistungsverteilungsdefinition, VE_Lichtsignalanlagendefinition, VE_Liniendefinition, VE_Linksverkehr, VE_LSAKopplungdefinition, VE_Massenverteilungsdefinition, VE_Maxbeschleunigungskurvedefinition, VE_Maxverzoegerungskurvedefinition, VE_Messungsdefinition, VE_Netzobjektdefinition, VE_Parkplatzdefinition, VE_Querschnittsmessungsdefinition, VE_Querverkehrsstoerungsdefinition, VE_Rautedefinition, VE_Reisezeitmessungsdefinition, VE_Richtungsentscheidungsdefinition, VE_Richtungspfeildefinition, VE_Routenentscheidungsdefinition, VE_Signalgeberdefinition, VE_Signalgruppendefinition, VE_Simdauer, VE_SimRate, VE_Startuhrzeit, VE_Startzufallszahl, VE_Stauparameterdefinition, VE_Stauzaehlerdefinition, VE_Stopschilddefinition, VE_Streckendefinition, VE_Streckentypdefinition, VE_TEAPACdefinition, VE_Verbindungsdefinition, VE_Verkehrszusammensetzungsdefinition, VE_Verlustzeitmessungsdefinition, VE_VWunschentscheidungsdefinition, VE_Wunschbeschleunigungskurvedefinition, VE_Wunschverzoegerungskurvedefinition, VE_Zeitenverteilungsdefinition, VE_Zeitschrittfaktor, and VE_Zuflussdefinition.

Referenced by NIImporter_Vissim().

00557                                 {
00558     myParsers[VE_Simdauer] =
00559         new NIVissimSingleTypeParser_Simdauer(*this);
00560     myParsers[VE_Startuhrzeit] =
00561         new NIVissimSingleTypeParser_Startuhrzeit(*this);
00562     myParsers[VE_DynUml] =
00563         new NIVissimSingleTypeParser_DynUml(*this);
00564     myParsers[VE_Streckendefinition] =
00565         new NIVissimSingleTypeParser_Streckendefinition(*this);
00566     myParsers[VE_Verbindungsdefinition] =
00567         new NIVissimSingleTypeParser_Verbindungsdefinition(*this);
00568     myParsers[VE_Richtungsentscheidungsdefinition] =
00569         new NIVissimSingleTypeParser_Richtungsentscheidungsdefinition(*this);
00570     myParsers[VE_Routenentscheidungsdefinition] =
00571         new NIVissimSingleTypeParser_Routenentscheidungsdefinition(*this);
00572     myParsers[VE_VWunschentscheidungsdefinition] =
00573         new NIVissimSingleTypeParser_VWunschentscheidungsdefinition(*this);
00574     myParsers[VE_Langsamfahrbereichdefinition] =
00575         new NIVissimSingleTypeParser_Langsamfahrbereichdefinition(*this);
00576     myParsers[VE_Zuflussdefinition] =
00577         new NIVissimSingleTypeParser_Zuflussdefinition(*this);
00578     myParsers[VE_Fahrzeugtypdefinition] =
00579         new NIVissimSingleTypeParser_Fahrzeugtypdefinition(*this, myColorMap);
00580     myParsers[VE_Fahrzeugklassendefinition] =
00581         new NIVissimSingleTypeParser_Fahrzeugklassendefinition(*this, myColorMap);
00582     myParsers[VE_Geschwindigkeitsverteilungsdefinition] =
00583         new NIVissimSingleTypeParser_Geschwindigkeitsverteilungsdefinition(*this);
00584     myParsers[VE_Laengenverteilungsdefinition] =
00585         new NIVissimSingleTypeParser_Laengenverteilungsdefinition(*this);
00586     myParsers[VE_Zeitenverteilungsdefinition] =
00587         new NIVissimSingleTypeParser_Zeitenverteilungsdefinition(*this);
00588     myParsers[VE_Querverkehrsstoerungsdefinition] =
00589         new NIVissimSingleTypeParser_Querverkehrsstoerungsdefinition(*this);
00590     myParsers[VE_Lichtsignalanlagendefinition] =
00591         new NIVissimSingleTypeParser_Lichtsignalanlagendefinition(*this);
00592     myParsers[VE_Signalgruppendefinition] =
00593         new NIVissimSingleTypeParser_Signalgruppendefinition(*this);
00594     myParsers[VE_Stopschilddefinition] =
00595         new NIVissimSingleTypeParser_Stopschilddefinition(*this);
00596     myParsers[VE_Knotendefinition] =
00597         new NIVissimSingleTypeParser_Knotendefinition(*this);
00598     myParsers[VE_Signalgeberdefinition] =
00599         new NIVissimSingleTypeParser_Signalgeberdefinition(*this);
00600     myParsers[VE_Detektorendefinition] =
00601         new NIVissimSingleTypeParser_Detektordefinition(*this);
00602     myParsers[VE_Haltestellendefinition] =
00603         new NIVissimSingleTypeParser_Haltestellendefinition(*this);
00604     myParsers[VE_Liniendefinition] =
00605         new NIVissimSingleTypeParser_Liniendefinition(*this);
00606     myParsers[VE_Reisezeitmessungsdefinition] =
00607         new NIVissimSingleTypeParser_Reisezeitmessungsdefinition(*this);
00608     myParsers[VE_Querschnittsmessungsdefinition] =
00609         new NIVissimSingleTypeParser_Querschnittsmessungsdefinition(*this);
00610     myParsers[VE_Messungsdefinition] =
00611         new NIVissimSingleTypeParser_Messungsdefinition(*this);
00612     myParsers[VE_Verlustzeitmessungsdefinition] =
00613         new NIVissimSingleTypeParser_Verlustzeitmessungsdefinition(*this);
00614     myParsers[VE_Stauzaehlerdefinition] =
00615         new NIVissimSingleTypeParser_Stauzaehlerdefinition(*this);
00616     myParsers[VE_Rautedefinition] =
00617         new NIVissimSingleTypeParser_Rautedefinition(*this);
00618     myParsers[VE_Richtungspfeildefinition] =
00619         new NIVissimSingleTypeParser_Richtungspfeildefinition(*this);
00620     myParsers[VE_Parkplatzdefinition] =
00621         new NIVissimSingleTypeParser_Parkplatzdefinition(*this);
00622     myParsers[VE_Fahrverhaltendefinition] =
00623         new NIVissimSingleTypeParser_Fahrverhaltendefinition(*this);
00624     myParsers[VE_Streckentypdefinition] =
00625         new NIVissimSingleTypeParser_Streckentypdefinition(*this);
00626     myParsers[VE_Kennungszeile] =
00627         new NIVissimSingleTypeParser_Kennungszeile(*this);
00628     myParsers[VE_Fensterdefinition] =
00629         new NIVissimSingleTypeParser_Fensterdefinition(*this);
00630     myParsers[VE_Auswertungsdefinition] =
00631         new NIVissimSingleTypeParser_Auswertungsdefinition(*this);
00632     myParsers[VE_Verkehrszusammensetzungsdefinition] =
00633         new NIVissimSingleTypeParser_Zusammensetzungsdefinition(*this);
00634     myParsers[VE_Kantensperrung] =
00635         new NIVissimSingleTypeParser_Kantensperrung(*this);
00636 
00637     myParsers[VE_Startzufallszahl] =
00638         new NIVissimSingleTypeParser_Startzufallszahl(*this);
00639     myParsers[VE_SimRate] =
00640         new NIVissimSingleTypeParser_SimRate(*this);
00641     myParsers[VE_Zeitschrittfaktor] =
00642         new NIVissimSingleTypeParser_Zeitschrittfaktor(*this);
00643     myParsers[VE_Linksverkehr] =
00644         new NIVissimSingleTypeParser_Linksverkehr(*this);
00645     myParsers[VE_Stauparameterdefinition] =
00646         new NIVissimSingleTypeParser_Stauparameterdefinition(*this);
00647     myParsers[VE_Gelbverhaltendefinition] =
00648         new NIVissimSingleTypeParser_Gelbverhaltendefinition(*this);
00649     myParsers[VE_LSAKopplungdefinition] =
00650         new NIVissimSingleTypeParser_LSAKopplungsdefinition(*this);
00651     myParsers[VE_Gefahrenwarnsystemdefinition] =
00652         new NIVissimSingleTypeParser_Gefahrwarnungsdefinition(*this);
00653     myParsers[VE_TEAPACdefinition] =
00654         new NIVissimSingleTypeParser_TEAPACDefinition(*this);
00655     myParsers[VE_Netzobjektdefinition] =
00656         new NIVissimSingleTypeParser_Netzobjektdefinition(*this);
00657     myParsers[VE_Fahrtverlaufdateien] =
00658         new NIVissimSingleTypeParser_Fahrtverlaufdateien(*this);
00659     myParsers[VE_Emission] =
00660         new NIVissimSingleTypeParser_Emission(*this);
00661     myParsers[VE_Einheitendefinition] =
00662         new NIVissimSingleTypeParser_Einheitendefinition(*this);
00663     myParsers[VE_Baujahrverteilungsdefinition] =
00664         new NIVissimSingleTypeParser__XVerteilungsdefinition(*this);
00665     myParsers[VE_Laufleistungsverteilungsdefinition] =
00666         new NIVissimSingleTypeParser__XVerteilungsdefinition(*this);
00667     myParsers[VE_Massenverteilungsdefinition] =
00668         new NIVissimSingleTypeParser__XVerteilungsdefinition(*this);
00669     myParsers[VE_Leistungsverteilungsdefinition] =
00670         new NIVissimSingleTypeParser__XVerteilungsdefinition(*this);
00671     myParsers[VE_Maxbeschleunigungskurvedefinition] =
00672         new NIVissimSingleTypeParser__XKurvedefinition(*this);
00673     myParsers[VE_Wunschbeschleunigungskurvedefinition] =
00674         new NIVissimSingleTypeParser__XKurvedefinition(*this);
00675     myParsers[VE_Maxverzoegerungskurvedefinition] =
00676         new NIVissimSingleTypeParser__XKurvedefinition(*this);
00677     myParsers[VE_Wunschverzoegerungskurvedefinition] =
00678         new NIVissimSingleTypeParser__XKurvedefinition(*this);
00679 
00680 }

void NIImporter_Vissim::insertKnownElements (  )  [private]

adds name-to-id - relationships of known elements into myKnownElements

Definition at line 485 of file NIImporter_Vissim.cpp.

References myKnownElements, VE_Auswertungsdefinition, VE_Baujahrverteilungsdefinition, VE_Detektorendefinition, VE_DUMMY, VE_DynUml, VE_Einheitendefinition, VE_Emission, VE_Fahrtverlaufdateien, VE_Fahrverhaltendefinition, VE_Fahrzeugklassendefinition, VE_Fahrzeugtypdefinition, VE_Fensterdefinition, VE_Gefahrenwarnsystemdefinition, VE_Gelbverhaltendefinition, VE_Geschwindigkeitsverteilungsdefinition, VE_Haltestellendefinition, VE_Kantensperrung, VE_Kennungszeile, VE_Knotendefinition, VE_Laengenverteilungsdefinition, VE_Langsamfahrbereichdefinition, VE_Laufleistungsverteilungsdefinition, VE_Leistungsverteilungsdefinition, VE_Lichtsignalanlagendefinition, VE_Liniendefinition, VE_Linksverkehr, VE_LSAKopplungdefinition, VE_Massenverteilungsdefinition, VE_Maxbeschleunigungskurvedefinition, VE_Maxverzoegerungskurvedefinition, VE_Messungsdefinition, VE_Netzobjektdefinition, VE_Parkplatzdefinition, VE_Querschnittsmessungsdefinition, VE_Querverkehrsstoerungsdefinition, VE_Rautedefinition, VE_Reisezeitmessungsdefinition, VE_Richtungsentscheidungsdefinition, VE_Richtungspfeildefinition, VE_Routenentscheidungsdefinition, VE_Signalgeberdefinition, VE_Signalgruppendefinition, VE_Simdauer, VE_SimRate, VE_Startuhrzeit, VE_Startzufallszahl, VE_Stauparameterdefinition, VE_Stauzaehlerdefinition, VE_Stopschilddefinition, VE_Streckendefinition, VE_Streckentypdefinition, VE_TEAPACdefinition, VE_Verbindungsdefinition, VE_Verkehrszusammensetzungsdefinition, VE_Verlustzeitmessungsdefinition, VE_VWunschentscheidungsdefinition, VE_Wunschbeschleunigungskurvedefinition, VE_Wunschverzoegerungskurvedefinition, VE_Zeitenverteilungsdefinition, VE_Zeitschrittfaktor, and VE_Zuflussdefinition.

Referenced by NIImporter_Vissim().

00485                                        {
00486     myKnownElements["kennung"] = VE_Kennungszeile;
00487     myKnownElements["zufallszahl"] = VE_Startzufallszahl;
00488     myKnownElements["simulationsdauer"] = VE_Simdauer;
00489     myKnownElements["startuhrzeit"] = VE_Startuhrzeit;
00490     myKnownElements["simulationsrate"] = VE_SimRate;
00491     myKnownElements["zeitschritt"] = VE_Zeitschrittfaktor;
00492     myKnownElements["linksverkehr"] = VE_Linksverkehr;
00493     myKnownElements["dynuml"] = VE_DynUml;
00494     myKnownElements["stau"] = VE_Stauparameterdefinition;
00495     myKnownElements["gelbverhalten"] = VE_Gelbverhaltendefinition;
00496     myKnownElements["strecke"] = VE_Streckendefinition;
00497     myKnownElements["verbindung"] = VE_Verbindungsdefinition;
00498     myKnownElements["richtungsentscheidung"] = VE_Richtungsentscheidungsdefinition;
00499     myKnownElements["routenentscheidung"] = VE_Routenentscheidungsdefinition;
00500     myKnownElements["vwunschentscheidung"] = VE_VWunschentscheidungsdefinition;
00501     myKnownElements["langsamfahrbereich"] = VE_Langsamfahrbereichdefinition;
00502     myKnownElements["zufluss"] = VE_Zuflussdefinition;
00503     myKnownElements["fahrzeugtyp"] = VE_Fahrzeugtypdefinition;
00504     myKnownElements["fahrzeugklasse"] = VE_Fahrzeugklassendefinition;
00505     myKnownElements["zusammensetzung"] = VE_Verkehrszusammensetzungsdefinition;
00506     myKnownElements["vwunsch"] = VE_Geschwindigkeitsverteilungsdefinition;
00507     myKnownElements["laengen"] = VE_Laengenverteilungsdefinition;
00508     myKnownElements["zeiten"] = VE_Zeitenverteilungsdefinition;
00509     myKnownElements["baujahre"] = VE_Baujahrverteilungsdefinition;
00510     myKnownElements["leistungen"] = VE_Laufleistungsverteilungsdefinition;
00511     myKnownElements["massen"] = VE_Massenverteilungsdefinition;
00512     myKnownElements["leistungen"] = VE_Leistungsverteilungsdefinition;
00513     myKnownElements["maxbeschleunigung"] = VE_Maxbeschleunigungskurvedefinition;
00514     myKnownElements["wunschbeschleunigung"] = VE_Wunschbeschleunigungskurvedefinition;
00515     myKnownElements["maxverzoegerung"] = VE_Maxverzoegerungskurvedefinition;
00516     myKnownElements["wunschverzoegerung"] = VE_Wunschverzoegerungskurvedefinition;
00517     myKnownElements["querverkehrsstoerung"] = VE_Querverkehrsstoerungsdefinition;
00518     myKnownElements["lsa"] = VE_Lichtsignalanlagendefinition;
00519     myKnownElements["signalgruppe"] = VE_Signalgruppendefinition;
00520     myKnownElements["signalgeber"] = VE_Signalgeberdefinition;
00521     myKnownElements["lsakopplung"] = VE_LSAKopplungdefinition;
00522     myKnownElements["detektor"] = VE_Detektorendefinition;
00523     myKnownElements["haltestelle"] = VE_Haltestellendefinition;
00524     myKnownElements["linie"] = VE_Liniendefinition;
00525     myKnownElements["stopschild"] = VE_Stopschilddefinition;
00526     myKnownElements["messung"] = VE_Messungsdefinition;
00527     myKnownElements["reisezeit"] = VE_Reisezeitmessungsdefinition;
00528     myKnownElements["verlustzeit"] = VE_Verlustzeitmessungsdefinition;
00529     myKnownElements["querschnittsmessung"] = VE_Querschnittsmessungsdefinition;
00530     myKnownElements["stauzaehler"] = VE_Stauzaehlerdefinition;
00531     myKnownElements["auswertung"] = VE_Auswertungsdefinition;
00532     myKnownElements["fenster"] = VE_Fensterdefinition;
00533     myKnownElements["motiv"] = VE_Gefahrenwarnsystemdefinition;
00534     myKnownElements["parkplatz"] = VE_Parkplatzdefinition;
00535     myKnownElements["knoten"] = VE_Knotendefinition;
00536     myKnownElements["teapac"] = VE_TEAPACdefinition;
00537     myKnownElements["netzobjekt"] = VE_Netzobjektdefinition;
00538     myKnownElements["richtungspfeil"] = VE_Richtungspfeildefinition;
00539     myKnownElements["raute"] = VE_Rautedefinition;
00540     myKnownElements["fahrverhalten"] = VE_Fahrverhaltendefinition;
00541     myKnownElements["fahrtverlaufdateien"] = VE_Fahrtverlaufdateien;
00542     myKnownElements["emission"] = VE_Emission;
00543     myKnownElements["einheit"] = VE_Einheitendefinition;
00544     myKnownElements["streckentyp"] = VE_Streckentypdefinition;
00545     myKnownElements["kantensperrung"] = VE_Kantensperrung;
00546     myKnownElements["kante"] = VE_Kantensperrung;
00547 
00548 
00549     myKnownElements["advance"] = VE_DUMMY;
00550     myKnownElements["temperatur"] = VE_DUMMY;
00551 
00552 }

void NIImporter_Vissim::load ( const OptionsCont options  )  [protected]

loads the vissim file

Definition at line 357 of file NIImporter_Vissim.cpp.

References MsgHandler::getErrorInstance(), OptionsCont::getFloat(), OptionsCont::getString(), MsgHandler::inform(), postLoadBuild(), and readContents().

00357                                                   {
00358     // load file contents
00359     // try to open the file
00360     std::ifstream strm(options.getString("vissim").c_str());
00361     if (!strm.good()) {
00362         MsgHandler::getErrorInstance()->inform("The vissim-file '" + options.getString("vissim") + "' was not found.");
00363         return;
00364     }
00365     if (!readContents(strm)) {
00366         return;
00367     }
00368     postLoadBuild(options.getFloat("vissim.offset"));
00369 }

void NIImporter_Vissim::loadNetwork ( const OptionsCont oc,
NBNetBuilder nb 
) [static]

Loads network definition from the assigned option and stores it in the given network builder.

If the option "vissim" is set, the file stored therein is read and the network definition stored therein is stored within the given network builder.

If the option "vissim" is not set, this method simply returns.

Parameters:
[in] oc The options to use
[in] nb The network builder to fill

Definition at line 123 of file NIImporter_Vissim.cpp.

References OptionsCont::getString(), and OptionsCont::isSet().

Referenced by NILoader::load().

00123                                                                       {
00124     if (!oc.isSet("vissim")) {
00125         return;
00126     }
00127     // load the visum network
00128     NIImporter_Vissim loader(nb, oc.getString("vissim"));
00129     loader.load(oc);
00130 }

NIImporter_Vissim& NIImporter_Vissim::operator= ( const NIImporter_Vissim  )  [private]

Invalidated assignment operator.

void NIImporter_Vissim::postLoadBuild ( SUMOReal  offset  )  [private]

Definition at line 426 of file NIImporter_Vissim.cpp.

References NIVissimEdge::buildConnectionClusters(), NIVissimNodeCluster::buildNBNodes(), NIVissimConnectionCluster::buildNodeClusters(), NIVissimBoundedClusterObject::closeLoading(), NIVissimNodeCluster::dict_addDisturbances(), NIVissimConnection::dict_assignToEdges(), NIVissimDistrictConnection::dict_BuildDistrictConnections(), NIVissimDistrictConnection::dict_BuildDistrictNodes(), NIVissimDistrictConnection::dict_BuildDistricts(), NIVissimConnection::dict_buildNBEdgeConnections(), NIVissimEdge::dict_buildNBEdges(), NIVissimDistrictConnection::dict_CheckEdgeEnds(), NIVissimEdge::dict_checkEdges2Join(), NIVissimEdge::dict_propagateSpeeds(), NIVissimDisturbance::dict_SetDisturbances(), NIVissimTL::dict_SetSignals(), OptionsCont::getBool(), NBNetBuilder::getDistrictCont(), NBNetBuilder::getEdgeCont(), NIVissimNodeDef::getMaxID(), NBNetBuilder::getNodeCont(), OptionsCont::getOptions(), NBNetBuilder::getTLLogicCont(), NIVissimConnectionCluster::joinBySameEdges(), myNetBuilder, NIVissimEdge::reportUnsetSpeeds(), and NIVissimNodeCluster::setCurrentVirtID().

Referenced by load().

00426                                                 {
00427     // close the loading process
00428     NIVissimBoundedClusterObject::closeLoading();
00429     NIVissimConnection::dict_assignToEdges();
00430     NIVissimDisturbance::dict_SetDisturbances();
00431     // build district->connections map
00432     NIVissimDistrictConnection::dict_BuildDistrictConnections();
00433     // build clusters around nodes
00434 //    NIVissimNodeDef::buildNodeClusters();
00435     // build node clusters around traffic lights
00436 //    NIVissimTL::buildNodeClusters();
00437 
00438     // when connections or disturbances are left, build nodes around them
00439 
00440     // try to assign connection clusters to nodes
00441     //  only left connections will be processed in
00442     //   buildConnectionClusters & join
00443 //30.4. brauchen wir noch!    NIVissimNodeDef::dict_assignConnectionsToNodes();
00444 
00445     // build clusters of connections with the same direction and a similar position along the streets
00446     NIVissimEdge::buildConnectionClusters();
00447     // check whether further nodes (connection clusters by now) must be added
00448     NIVissimDistrictConnection::dict_CheckEdgeEnds();
00449 
00450     // join clusters when overlapping (different streets are possible)
00451     NIVissimEdge::dict_checkEdges2Join();
00452     NIVissimConnectionCluster::joinBySameEdges(offset);
00453 //    NIVissimConnectionCluster::joinByDisturbances(offset);
00454 
00455 //    NIVissimConnectionCluster::addTLs(offset);
00456 
00457     // build nodes from clusters
00458     NIVissimNodeCluster::setCurrentVirtID(NIVissimNodeDef::getMaxID());
00459     NIVissimConnectionCluster::buildNodeClusters();
00460 
00461 //    NIVissimNodeCluster::dict_recheckEdgeChanges();
00462 
00463     NIVissimNodeCluster::buildNBNodes(myNetBuilder.getNodeCont());
00464     NIVissimDistrictConnection::dict_BuildDistrictNodes(
00465         myNetBuilder.getDistrictCont(), myNetBuilder.getNodeCont());
00466     NIVissimEdge::dict_propagateSpeeds();
00467     NIVissimEdge::dict_buildNBEdges(myNetBuilder.getDistrictCont(),
00468                                     myNetBuilder.getNodeCont(), myNetBuilder.getEdgeCont(),
00469                                     offset);
00470     if (OptionsCont::getOptions().getBool("vissim.report-unset-speeds")) {
00471         NIVissimEdge::reportUnsetSpeeds();
00472     }
00473     NIVissimDistrictConnection::dict_BuildDistricts(myNetBuilder.getDistrictCont(),
00474             myNetBuilder.getEdgeCont(), myNetBuilder.getNodeCont());
00475     NIVissimConnection::dict_buildNBEdgeConnections(myNetBuilder.getEdgeCont());
00476     NIVissimNodeCluster::dict_addDisturbances(myNetBuilder.getDistrictCont(),
00477             myNetBuilder.getNodeCont(), myNetBuilder.getEdgeCont());
00478     NIVissimTL::dict_SetSignals(myNetBuilder.getTLLogicCont(),
00479                                 myNetBuilder.getEdgeCont());
00480 
00481 }

bool NIImporter_Vissim::readContents ( std::istream &  strm  )  [private]

Definition at line 384 of file NIImporter_Vissim.cpp.

References myKnownElements, myLastSecure, myParsers, NIImporter_Vissim::VissimSingleTypeParser::parse(), and StringUtils::to_lower_case().

Referenced by load().

00384                                                 {
00385     // read contents
00386     bool ok = true;
00387     while (strm.good()&&ok) {
00388         std::string tag;
00389         if (myLastSecure!="") {
00390             tag = myLastSecure;
00391         } else {
00392             strm >> tag;
00393         }
00394         myLastSecure = "";
00395         bool parsed = false;
00396         while (!parsed&&strm.good()&&ok) {
00397             ToElemIDMap::iterator i=myKnownElements.find(StringUtils::to_lower_case(tag));
00398             if (i!=myKnownElements.end()) {
00399                 ToParserMap::iterator j=myParsers.find((*i).second);
00400                 if (j!=myParsers.end()) {
00401                     VissimSingleTypeParser *parser = (*j).second;
00402                     ok = parser->parse(strm);
00403                     parsed = true;
00404                 }
00405             }
00406             if (!parsed) {
00407                 std::string line;
00408                 size_t pos;
00409                 do {
00410                     pos = strm.tellg();
00411                     getline(strm, line);
00412                 } while (strm.good()&&(line==""||line[0]==' '||line[0]=='-'));
00413                 if (!strm.good()) {
00414                     return true;
00415                 }
00416                 strm.seekg(pos);
00417                 strm >> tag;
00418             }
00419         }
00420     }
00421     return ok;
00422 }


Field Documentation

a map from color names to color definitions

Definition at line 167 of file NIImporter_Vissim.h.

Referenced by buildParsers(), and NIImporter_Vissim().

Map from element names to their numerical representation.

Definition at line 158 of file NIImporter_Vissim.h.

Referenced by admitContinue(), insertKnownElements(), and readContents().

std::string NIImporter_Vissim::myLastSecure [private]

Definition at line 169 of file NIImporter_Vissim.h.

Referenced by admitContinue(), and readContents().

Definition at line 171 of file NIImporter_Vissim.h.

Referenced by postLoadBuild().

Parsers by element id.

Definition at line 164 of file NIImporter_Vissim.h.

Referenced by buildParsers(), readContents(), and ~NIImporter_Vissim().


The documentation for this class was generated from the following files:

Generated on Wed May 5 00:06:53 2010 for Sumo - Simulation of Urban MObility by  doxygen 1.5.6