bool NIVissimSingleTypeParser_Geschwindigkeitsverteilungsdefinition::parse(std::istream& from) { // id std::string id; from >> id; // list of points PositionVector points; std::string tag; do { tag = readEndSecure(from); if (tag == "name") { readName(from); tag = readEndSecure(from); } if (tag != "DATAEND") { SUMOReal p1 = TplConvert::_2SUMOReal(tag.c_str()); from >> tag; SUMOReal p2 = TplConvert::_2SUMOReal(tag.c_str()); points.push_back(Position(p1, p2)); } } while (tag != "DATAEND"); NBDistribution::dictionary("speed", id, new Distribution_Points(id, points)); return true; }
bool NIVissimSingleTypeParser_Querverkehrsstoerungsdefinition::parsePositionDescribed(std::istream& from) { std::string tag = myRead(from); NIVissimExtendedEdgePoint edge = parsePos(from); // from >> tag; // "Durch" bool ok = true; do { from >> tag; // "Strecke" NIVissimExtendedEdgePoint by = parsePos(from); // SUMOReal timegap; from >> timegap; from >> tag; SUMOReal waygap; from >> waygap; SUMOReal vmax = -1; tag = readEndSecure(from); if (tag == "vmax") { from >> vmax; } ok = NIVissimDisturbance::dictionary(-1, "", edge, by, timegap, waygap, vmax); if (tag != "DATAEND") { tag = readEndSecure(from); } } while (tag != "DATAEND" && ok);
bool NIVissimSingleTypeParser_Knotendefinition::parse(std::istream &from) { // int id; from >> id; // std::string tag; from >> tag; std::string name = readName(from); // tag = overrideOptionalLabel(from); // while (tag!="netzausschnitt") { tag = myRead(from); } // tag = myRead(from); if (tag=="strecke") { NIVissimNodeParticipatingEdgeVector edges; while (tag=="strecke") { int edgeid; SUMOReal from_pos, to_pos; from_pos = to_pos = -1.0; from >> edgeid; tag = readEndSecure(from, "strecke"); if (tag=="von") { from >> from_pos; // type-checking is missing! from >> tag; from >> to_pos; // type-checking is missing! tag = readEndSecure(from, "strecke"); } edges.push_back(new NIVissimNodeParticipatingEdge(edgeid, from_pos, to_pos)); }
bool NIVissimSingleTypeParser_DynUml::parse(std::istream& from) { std::vector<std::string> tmp; tmp.push_back("reisezeit"); tmp.push_back("kante"); readUntil(from, "kirchhoffexponent"); std::string tag = readEndSecure(from, tmp); while (tag != "DATAEND") { tag = readEndSecure(from, tmp); } return true; }
bool NIVissimSingleTypeParser_Auswertungsdefinition::parse(std::istream& from) { std::string id; from >> id; // "typ" if (id == "DATENBANK") { // !!! unverified return true; } std::string type = myRead(from); if (type == "abfluss") { while (type != "signalgruppe") { type = myRead(from); } while (type != "DATAEND") { type = readEndSecure(from, "messung"); } } else if (type == "vbv") {} else if (type == "dichte") {} else if (type == "emissionen") {} else if (type == "fzprot") {} else if (type == "spwprot") {} else if (type == "segment") { while (type != "konfdatei") { type = myRead(from); } } else if (type == "wegeausw") {} else if (type == "knoten") {} else if (type == "konvergenz") { while (type != "zeit") { type = myRead(from); } } return true; }
bool NIVissimSingleTypeParser_Kantensperrung::parse(std::istream& from) { std::string tag; from >> tag; // std::string id; from >> id; // from >> tag; from >> tag; int from_node; from >> from_node; // from >> tag; from >> tag; int to_node; from >> to_node; // from >> tag; from >> tag; std::vector<int> edges; while (tag != "DATAEND") { tag = readEndSecure(from); if (tag != "DATAEND") { edges.push_back(TplConvert::_2int(tag.c_str())); } } NIVissimClosures::dictionary(id, from_node, to_node, edges); return true; }
bool NIVissimSingleTypeParser_Zusammensetzungsdefinition::parse(std::istream& from) { std::string tag = myRead(from); while (tag != "fahrzeugtyp") { tag = readEndSecure(from, "fahrzeugtyp"); } do { tag = myRead(from); // id tag = myRead(from); // "anteil" tag = myRead(from); // value tag = myRead(from); // "VWunsch" tag = myRead(from); // value tag = readEndSecure(from, "fahrzeugtyp"); // "fahrzeugtyp"? } while (tag == "fahrzeugtyp"); return true; }
bool NIVissimSingleTypeParser_Verlustzeitmessungsdefinition::parse(std::istream& from) { std::string tag = myRead(from); if (tag == "von") { while (tag != "DATAEND") { tag = readEndSecure(from); } return true; } while (tag != "fahrzeugklassen") { tag = myRead(from); } while (tag != "DATAEND") { tag = readEndSecure(from); } return true; }
bool NIVissimSingleTypeParser_Querschnittsmessungsdefinition::parse(std::istream& from) { std::string tag = myRead(from); if (tag == "von") { while (tag != "fahrzeugklassen" && tag != "konfdatei") { tag = myRead(from); } tag = myRead(from); while (tag != "DATAEND") { tag = readEndSecure(from); } return true; } tag = myRead(from); tag = myRead(from); while (tag != "DATAEND") { tag = readEndSecure(from); } return true; }
bool NIVissimSingleTypeParser_Detektordefinition::parse(std::istream& from) { std::string tag; while (tag != "strecke") { tag = myRead(from); } while (tag != "DATAEND") { tag = readEndSecure(from); } return true; }
bool NIVissimSingleTypeParser_Haltestellendefinition::parse(std::istream &from) { std::string tag; while (tag!="strecke") { tag = myRead(from); } while (tag!="laenge") { tag = myRead(from); } from >> tag; tag = readEndSecure(from); while (tag=="einsteiger"&&tag!="DATAEND") { while (tag!="linie") { tag = myRead(from); } while (tag!="einsteiger"&&tag!="DATAEND") { tag = readEndSecure(from); } } return true; }
bool NIVissimSingleTypeParser_Reisezeitmessungsdefinition::parse(std::istream& from) { std::string tag = myRead(from); if (tag == "aggregationsintervall") { while (tag != "DATAEND") { tag = readEndSecure(from); } return true; } while (tag != "strecke") { tag = myRead(from); } tag = myRead(from); while (tag != "strecke") { tag = myRead(from); } while (tag != "DATAEND") { tag = readEndSecure(from); } return true; }
bool NIVissimSingleTypeParser_Routenentscheidungsdefinition::parse(std::istream& from) { std::string tag; while (tag != "fahrzeugklassen") { tag = myRead(from); } do { while (tag != "DATAEND" || tag == "route") { if (tag == "route") { while (tag != "strecke") { tag = myRead(from); } tag = readEndSecure(from); } else { tag = readEndSecure(from); } } if (tag != "DATAEND") { tag = readEndSecure(from); } } while (tag != "DATAEND"); return true; }
bool NIVissimSingleTypeParser_Lichtsignalanlagendefinition::parseFixedTime( int id, std::string name, std::istream& from) { std::string type = "festzeit"; std::string tag; from >> tag; // SUMOReal absdur; from >> absdur; // type-checking is missing! // tag = readEndSecure(from); SUMOReal offset = 0; if (tag == "versatz") { from >> offset; // type-checking is missing! }
bool NIVissimSingleTypeParser_Laengenverteilungsdefinition::parse(std::istream &from) { // id std::string id; from >> id; // list of points Position2DVector points; std::string tag; do { tag = readEndSecure(from); if (tag!="DATAEND") { SUMOReal p1 = TplConvert<char>::_2SUMOReal(tag.c_str()); from >> tag; SUMOReal p2 = TplConvert<char>::_2SUMOReal(tag.c_str()); points.push_back(Position2D(p1, p2)); } } while (tag!="DATAEND"); NBDistribution::dictionary("length", id, new Distribution_Points(id, points)); return true; }
bool NIVissimSingleTypeParser_VWunschentscheidungsdefinition::parse(std::istream& from) { std::string tag; from >> tag; // id from >> tag; // name tag = readName(from); tag = overrideOptionalLabel(from); from >> tag; // strecke std::string edgeid; from >> edgeid; from >> tag; // spur std::string lane; from >> lane; from >> tag; // bei std::string pos; from >> pos; from >> tag; // fahrzeugklasse from >> tag; // <fahrzeugklasse> from >> tag; // vwunsch std::string vwunsch; from >> vwunsch; // vwunsch std::vector<std::string> tmp; tmp.push_back("zeit"); tmp.push_back("fahrzeugklasse"); tag = readEndSecure(from, tmp); while (tag != "DATAEND" && tag != "zeit") { from >> tag; from >> tag; from >> tag; tag = myRead(from); } if (tag == "zeit") { from >> tag; from >> tag; from >> tag; from >> tag; }
bool NIVissimSingleTypeParser_Zeitenverteilungsdefinition::parse(std::istream& from) { // id std::string id; from >> id; // list of points PositionVector points; std::string tag; do { tag = readEndSecure(from); if (tag == "mittelwert") { SUMOReal mean, deviation; from >> mean; from >> tag; from >> deviation; return NBDistribution::dictionary("times", id, new Distribution_MeanDev(id, mean, deviation)); } if (tag != "DATAEND") { SUMOReal p1 = TplConvert::_2SUMOReal(tag.c_str()); from >> tag; SUMOReal p2 = TplConvert::_2SUMOReal(tag.c_str()); points.push_back(Position(p1, p2)); }