00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifdef _MSC_VER
00025 #include <windows_config.h>
00026 #else
00027 #include <config.h>
00028 #endif
00029
00030
00031 #include <string>
00032 #include <fstream>
00033 #include <utils/common/StringUtils.h>
00034 #include <utils/common/TplConvert.h>
00035 #include <utils/common/MsgHandler.h>
00036 #include <utils/options/OptionsCont.h>
00037 #include <netbuild/NBNetBuilder.h>
00038 #include "NIImporter_Vissim.h"
00039 #include "typeloader/NIVissimSingleTypeParser_Simdauer.h"
00040 #include "typeloader/NIVissimSingleTypeParser_Startuhrzeit.h"
00041 #include "typeloader/NIVissimSingleTypeParser_DynUml.h"
00042 #include "typeloader/NIVissimSingleTypeParser_Streckendefinition.h"
00043 #include "typeloader/NIVissimSingleTypeParser_Verbindungsdefinition.h"
00044 #include "typeloader/NIVissimSingleTypeParser_Richtungsentscheidungsdefinition.h"
00045 #include "typeloader/NIVissimSingleTypeParser_Routenentscheidungsdefinition.h"
00046 #include "typeloader/NIVissimSingleTypeParser_VWunschentscheidungsdefinition.h"
00047 #include "typeloader/NIVissimSingleTypeParser_Langsamfahrbereichdefinition.h"
00048 #include "typeloader/NIVissimSingleTypeParser_Zuflussdefinition.h"
00049 #include "typeloader/NIVissimSingleTypeParser_Fahrzeugtypdefinition.h"
00050 #include "typeloader/NIVissimSingleTypeParser_Fahrzeugklassendefinition.h"
00051 #include "typeloader/NIVissimSingleTypeParser_Verkehrszusammensetzungsdefinition.h"
00052 #include "typeloader/NIVissimSingleTypeParser_Geschwindigkeitsverteilungsdefinition.h"
00053 #include "typeloader/NIVissimSingleTypeParser_Laengenverteilungsdefinition.h"
00054 #include "typeloader/NIVissimSingleTypeParser_Zeitenverteilungsdefinition.h"
00055 #include "typeloader/NIVissimSingleTypeParser_Querverkehrsstoerungsdefinition.h"
00056 #include "typeloader/NIVissimSingleTypeParser_Lichtsignalanlagendefinition.h"
00057 #include "typeloader/NIVissimSingleTypeParser_Signalgruppendefinition.h"
00058 #include "typeloader/NIVissimSingleTypeParser_Stopschilddefinition.h"
00059 #include "typeloader/NIVissimSingleTypeParser_Knotendefinition.h"
00060 #include "typeloader/NIVissimSingleTypeParser_Signalgeberdefinition.h"
00061 #include "typeloader/NIVissimSingleTypeParser_Detektordefinition.h"
00062 #include "typeloader/NIVissimSingleTypeParser_Liniendefinition.h"
00063 #include "typeloader/NIVissimSingleTypeParser_Haltestellendefinition.h"
00064 #include "typeloader/NIVissimSingleTypeParser_Reisezeitmessungsdefinition.h"
00065 #include "typeloader/NIVissimSingleTypeParser_Querschnittsmessungsdefinition.h"
00066 #include "typeloader/NIVissimSingleTypeParser_Messungsdefinition.h"
00067 #include "typeloader/NIVissimSingleTypeParser_Verlustzeitmessungsdefinition.h"
00068 #include "typeloader/NIVissimSingleTypeParser_Stauzaehlerdefinition.h"
00069 #include "typeloader/NIVissimSingleTypeParser_Richtungspfeildefinition.h"
00070 #include "typeloader/NIVissimSingleTypeParser_Parkplatzdefinition.h"
00071 #include "typeloader/NIVissimSingleTypeParser_Fahrverhaltendefinition.h"
00072 #include "typeloader/NIVissimSingleTypeParser_Streckentypdefinition.h"
00073 #include "typeloader/NIVissimSingleTypeParser_Kennungszeile.h"
00074 #include "typeloader/NIVissimSingleTypeParser_Fensterdefinition.h"
00075 #include "typeloader/NIVissimSingleTypeParser_Auswertungsdefinition.h"
00076 #include "typeloader/NIVissimSingleTypeParser_Zusammensetzungsdefinition.h"
00077 #include "typeloader/NIVissimSingleTypeParser_Startzufallszahl.h"
00078 #include "typeloader/NIVissimSingleTypeParser_SimRate.h"
00079 #include "typeloader/NIVissimSingleTypeParser_Zeitschrittfaktor.h"
00080 #include "typeloader/NIVissimSingleTypeParser_Linksverkehr.h"
00081 #include "typeloader/NIVissimSingleTypeParser_Stauparameterdefinition.h"
00082 #include "typeloader/NIVissimSingleTypeParser_Gelbverhaltendefinition.h"
00083 #include "typeloader/NIVissimSingleTypeParser_LSAKopplungsdefinition.h"
00084 #include "typeloader/NIVissimSingleTypeParser_Gefahrwarnungsdefinition.h"
00085 #include "typeloader/NIVissimSingleTypeParser_TEAPACDefinition.h"
00086 #include "typeloader/NIVissimSingleTypeParser_Netzobjektdefinition.h"
00087 #include "typeloader/NIVissimSingleTypeParser_Fahrtverlaufdateien.h"
00088 #include "typeloader/NIVissimSingleTypeParser_Emission.h"
00089 #include "typeloader/NIVissimSingleTypeParser_Einheitendefinition.h"
00090 #include "typeloader/NIVissimSingleTypeParser__XVerteilungsdefinition.h"
00091 #include "typeloader/NIVissimSingleTypeParser__XKurvedefinition.h"
00092 #include "typeloader/NIVissimSingleTypeParser_Kantensperrung.h"
00093 #include "typeloader/NIVissimSingleTypeParser_Rautedefinition.h"
00094
00095
00096 #include "tempstructs/NIVissimTL.h"
00097 #include "tempstructs/NIVissimClosures.h"
00098 #include "tempstructs/NIVissimSource.h"
00099 #include "tempstructs/NIVissimTrafficDescription.h"
00100 #include "tempstructs/NIVissimVehTypeClass.h"
00101 #include "tempstructs/NIVissimConnection.h"
00102 #include "tempstructs/NIVissimDisturbance.h"
00103 #include "tempstructs/NIVissimConnectionCluster.h"
00104 #include "tempstructs/NIVissimNodeDef.h"
00105 #include "tempstructs/NIVissimEdge.h"
00106 #include "tempstructs/NIVissimDistrictConnection.h"
00107 #include "tempstructs/NIVissimVehicleType.h"
00108
00109 #include <netbuild/NBEdgeCont.h>
00110
00111 #ifdef CHECK_MEMORY_LEAKS
00112 #include <foreign/nvwa/debug_new.h>
00113 #endif // CHECK_MEMORY_LEAKS
00114
00115
00116
00117
00118
00119
00120
00121
00122 void
00123 NIImporter_Vissim::loadNetwork(const OptionsCont &oc, NBNetBuilder &nb) {
00124 if (!oc.isSet("vissim")) {
00125 return;
00126 }
00127
00128 NIImporter_Vissim loader(nb, oc.getString("vissim"));
00129 loader.load(oc);
00130 }
00131
00132
00133
00134
00135
00136 NIImporter_Vissim::VissimSingleTypeParser::VissimSingleTypeParser(NIImporter_Vissim &parent)
00137 : myVissimParent(parent) {}
00138
00139
00140 NIImporter_Vissim::VissimSingleTypeParser::~VissimSingleTypeParser() {}
00141
00142
00143 std::string
00144 NIImporter_Vissim::VissimSingleTypeParser::myRead(std::istream &from) {
00145 std::string tmp;
00146 from >> tmp;
00147 return StringUtils::to_lower_case(tmp);
00148 }
00149
00150
00151
00152 std::string
00153 NIImporter_Vissim::VissimSingleTypeParser::readEndSecure(std::istream &from,
00154 const std::string &excl) {
00155 std::string myExcl = StringUtils::to_lower_case(excl);
00156 std::string tmp = myRead(from);
00157 if (tmp=="") {
00158 return "DATAEND";
00159 }
00160 if (tmp!=myExcl
00161 &&
00162 (tmp.substr(0, 2)=="--"||!myVissimParent.admitContinue(tmp))
00163 ) {
00164 return "DATAEND";
00165 }
00166 return StringUtils::to_lower_case(tmp);
00167 }
00168
00169
00170 std::string
00171 NIImporter_Vissim::VissimSingleTypeParser::readEndSecure(std::istream &from,
00172 const std::vector<std::string> &excl) {
00173 std::vector<std::string> myExcl;
00174 std::vector<std::string>::const_iterator i;
00175 for (i=excl.begin(); i!=excl.end(); i++) {
00176 std::string mes = StringUtils::to_lower_case(*i);
00177 myExcl.push_back(mes);
00178 }
00179 std::string tmp = myRead(from);
00180 if (tmp=="") {
00181 return "DATAEND";
00182 }
00183
00184 bool equals = false;
00185 for (i=myExcl.begin(); i!=myExcl.end()&&!equals; i++) {
00186 if ((*i)==tmp) {
00187 equals = true;
00188 }
00189 }
00190 if (!equals
00191 &&
00192 (tmp.substr(0, 2)=="--"||!myVissimParent.admitContinue(tmp))
00193 ) {
00194 return "DATAEND";
00195 }
00196 return StringUtils::to_lower_case(tmp);
00197 }
00198
00199
00200 std::string
00201 NIImporter_Vissim::VissimSingleTypeParser::overrideOptionalLabel(std::istream &from,
00202 const std::string &tag) {
00203 std::string tmp;
00204 if (tag=="") {
00205 tmp = myRead(from);
00206 } else {
00207 tmp = tag;
00208 }
00209 if (tmp=="beschriftung") {
00210 tmp = myRead(from);
00211 if (tmp=="keine") {
00212 from >> tmp;
00213 }
00214 tmp = myRead(from);
00215 tmp = myRead(from);
00216 }
00217 return tmp;
00218 }
00219
00220
00221 Position2D
00222 NIImporter_Vissim::VissimSingleTypeParser::getPosition2D(std::istream &from) {
00223 SUMOReal x, y;
00224 from >> x;
00225 from >> y;
00226 return Position2D(x, y);
00227 }
00228
00229
00230 IntVector
00231 NIImporter_Vissim::VissimSingleTypeParser::parseAssignedVehicleTypes(
00232 std::istream &from, const std::string &next) {
00233 std::string tmp = readEndSecure(from);
00234 IntVector ret;
00235 if (tmp=="alle") {
00236 ret.push_back(-1);
00237 return ret;
00238 }
00239 while (tmp!="DATAEND"&&tmp!=next) {
00240 ret.push_back(TplConvert<char>::_2int(tmp.c_str()));
00241 tmp = readEndSecure(from);
00242 }
00243 return ret;
00244 }
00245
00246
00247 NIVissimExtendedEdgePoint
00248 NIImporter_Vissim::VissimSingleTypeParser::readExtEdgePointDef(
00249 std::istream &from) {
00250 std::string tag;
00251 from >> tag;
00252 int edgeid;
00253 from >> edgeid;
00254 from >> tag;
00255 IntVector lanes;
00256 while (tag!="bei") {
00257 tag = readEndSecure(from);
00258 if (tag!="bei") {
00259 int lane = TplConvert<char>::_2int(tag.c_str());
00260 lanes.push_back(lane-1);
00261 }
00262 }
00263 SUMOReal position;
00264 from >> position;
00265 IntVector dummy;
00266 return NIVissimExtendedEdgePoint(edgeid, lanes, position, dummy);
00267 }
00268
00269
00270 std::string
00271 NIImporter_Vissim::VissimSingleTypeParser::readName(std::istream &from) {
00272 std::string name;
00273 from >> name;
00274 if (name[0]=='"') {
00275 while (name[name.length()-1]!='"') {
00276 std::string tmp;
00277 from >> tmp;
00278 name = name + " " + tmp;
00279 }
00280 name = name.substr(1, name.length()-2);
00281 }
00282 return StringUtils::convertUmlaute(name);
00283 }
00284
00285
00286 void
00287 NIImporter_Vissim::VissimSingleTypeParser::readUntil(std::istream &from,
00288 const std::string &name) {
00289 std::string tag;
00290 while (tag!=name) {
00291 tag = myRead(from);
00292 }
00293 }
00294
00295 bool
00296 NIImporter_Vissim::VissimSingleTypeParser::skipOverreading(std::istream &from,
00297 const std::string &name) {
00298 std::string tag;
00299 while (tag!=name) {
00300 tag = myRead(from);
00301 }
00302 while (tag!="DATAEND") {
00303 tag = readEndSecure(from);
00304 }
00305 return true;
00306 }
00307
00308
00309
00310
00311
00312
00313 NIImporter_Vissim::NIImporter_Vissim(NBNetBuilder &nb, const std::string &file)
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 }
00328
00329
00330
00331
00332 NIImporter_Vissim::~NIImporter_Vissim() {
00333 NIVissimAbstractEdge::clearDict();
00334 NIVissimClosures::clearDict();
00335 NIVissimDistrictConnection::clearDict();
00336 NIVissimDisturbance::clearDict();
00337 NIVissimNodeCluster::clearDict();
00338 NIVissimNodeDef::clearDict();
00339 NIVissimSource::clearDict();
00340 NIVissimTL::clearDict();
00341 NIVissimTL::NIVissimTLSignal::clearDict();
00342 NIVissimTL::NIVissimTLSignalGroup::clearDict();
00343 NIVissimTrafficDescription::clearDict();
00344 NIVissimVehTypeClass::clearDict();
00345 NIVissimVehicleType::clearDict();
00346 NIVissimConnectionCluster::clearDict();
00347 NIVissimEdge::clearDict();
00348 NIVissimAbstractEdge::clearDict();
00349 NIVissimConnection::clearDict();
00350 for (ToParserMap::iterator i=myParsers.begin(); i!=myParsers.end(); i++) {
00351 delete(*i).second;
00352 }
00353 }
00354
00355
00356 void
00357 NIImporter_Vissim::load(const OptionsCont &options) {
00358
00359
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 }
00370
00371
00372 bool
00373 NIImporter_Vissim::admitContinue(const std::string &tag) {
00374 ToElemIDMap::const_iterator i=myKnownElements.find(tag);
00375 if (i==myKnownElements.end()) {
00376 return true;
00377 }
00378 myLastSecure = tag;
00379 return false;
00380 }
00381
00382
00383 bool
00384 NIImporter_Vissim::readContents(std::istream &strm) {
00385
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 }
00423
00424
00425 void
00426 NIImporter_Vissim::postLoadBuild(SUMOReal offset) {
00427
00428 NIVissimBoundedClusterObject::closeLoading();
00429 NIVissimConnection::dict_assignToEdges();
00430 NIVissimDisturbance::dict_SetDisturbances();
00431
00432 NIVissimDistrictConnection::dict_BuildDistrictConnections();
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443
00444
00445
00446 NIVissimEdge::buildConnectionClusters();
00447
00448 NIVissimDistrictConnection::dict_CheckEdgeEnds();
00449
00450
00451 NIVissimEdge::dict_checkEdges2Join();
00452 NIVissimConnectionCluster::joinBySameEdges(offset);
00453
00454
00455
00456
00457
00458 NIVissimNodeCluster::setCurrentVirtID(NIVissimNodeDef::getMaxID());
00459 NIVissimConnectionCluster::buildNodeClusters();
00460
00461
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 }
00482
00483
00484 void
00485 NIImporter_Vissim::insertKnownElements() {
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 }
00553
00554
00555
00556 void
00557 NIImporter_Vissim::buildParsers() {
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 }
00681
00682
00683
00684
00685