void NWWriter_SUMO::writeTrafficLights(OutputDevice& into, const NBTrafficLightLogicCont& tllCont) { std::vector<NBTrafficLightLogic*> logics = tllCont.getComputed(); for (std::vector<NBTrafficLightLogic*>::iterator it = logics.begin(); it != logics.end(); it++) { into.openTag(SUMO_TAG_TLLOGIC); into.writeAttr(SUMO_ATTR_ID, (*it)->getID()); into.writeAttr(SUMO_ATTR_TYPE, (*it)->getType()); into.writeAttr(SUMO_ATTR_PROGRAMID, (*it)->getProgramID()); into.writeAttr(SUMO_ATTR_OFFSET, writeSUMOTime((*it)->getOffset())); // write params const std::map<std::string, std::string>& params = (*it)->getMap(); for (std::map<std::string, std::string>::const_iterator i = params.begin(); i != params.end(); ++i) { into.openTag(SUMO_TAG_PARAM); into.writeAttr(SUMO_ATTR_KEY, (*i).first); into.writeAttr(SUMO_ATTR_VALUE, (*i).second); into.closeTag(); } // write the phases const std::vector<NBTrafficLightLogic::PhaseDefinition>& phases = (*it)->getPhases(); for (std::vector<NBTrafficLightLogic::PhaseDefinition>::const_iterator j = phases.begin(); j != phases.end(); ++j) { into.openTag(SUMO_TAG_PHASE); into.writeAttr(SUMO_ATTR_DURATION, writeSUMOTime(j->duration)); into.writeAttr(SUMO_ATTR_STATE, j->state); into.closeTag(); } into.closeTag(); } if (logics.size() > 0) { into.lf(); } }
void MSContainer::routeOutput(OutputDevice& os) const { os.openTag(SUMO_TAG_CONTAINER).writeAttr(SUMO_ATTR_ID, getID()).writeAttr(SUMO_ATTR_DEPART, time2string(getDesiredDepart())); if (myStep == myPlan->end()) { os.writeAttr("arrival", time2string(MSNet::getInstance()->getCurrentTimeStep())); } for (MSTransportablePlan::const_iterator i = myPlan->begin(); i != myPlan->end(); ++i) { (*i)->routeOutput(os); } os.closeTag(); os.lf(); }
void GeoConvHelper::writeLocation(OutputDevice& into) { into.openTag(SUMO_TAG_LOCATION); into.writeAttr(SUMO_ATTR_NET_OFFSET, myFinal.getOffsetBase()); into.writeAttr(SUMO_ATTR_CONV_BOUNDARY, myFinal.getConvBoundary()); if (myFinal.usingGeoProjection()) { into.setPrecision(gPrecisionGeo); } into.writeAttr(SUMO_ATTR_ORIG_BOUNDARY, myFinal.getOrigBoundary()); if (myFinal.usingGeoProjection()) { into.setPrecision(); } into.writeAttr(SUMO_ATTR_ORIG_PROJ, myFinal.getProjString()); into.closeTag(); into.lf(); }
void NWWriter_SUMO::writeLocation(OutputDevice& into) { const GeoConvHelper& geoConvHelper = GeoConvHelper::getFinal(); into.openTag(SUMO_TAG_LOCATION); into.writeAttr(SUMO_ATTR_NET_OFFSET, geoConvHelper.getOffsetBase()); into.writeAttr(SUMO_ATTR_CONV_BOUNDARY, geoConvHelper.getConvBoundary()); if (geoConvHelper.usingGeoProjection()) { into.setPrecision(GEO_OUTPUT_ACCURACY); } into.writeAttr(SUMO_ATTR_ORIG_BOUNDARY, geoConvHelper.getOrigBoundary()); if (geoConvHelper.usingGeoProjection()) { into.setPrecision(); } into.writeAttr(SUMO_ATTR_ORIG_PROJ, geoConvHelper.getProjString()); into.closeTag(); into.lf(); }
void NBTypeCont::writeTypes(OutputDevice& into) const { for (TypesCont::const_iterator i = myTypes.begin(); i != myTypes.end(); ++i) { into.openTag(SUMO_TAG_TYPE); into.writeAttr(SUMO_ATTR_ID, i->first); const NBTypeCont::TypeDefinition& type = i->second; if (type.attrs.count(SUMO_ATTR_PRIORITY) > 0) { into.writeAttr(SUMO_ATTR_PRIORITY, type.priority); } if (type.attrs.count(SUMO_ATTR_NUMLANES) > 0) { into.writeAttr(SUMO_ATTR_NUMLANES, type.numLanes); } if (type.attrs.count(SUMO_ATTR_SPEED) > 0) { into.writeAttr(SUMO_ATTR_SPEED, type.speed); } if (type.attrs.count(SUMO_ATTR_DISALLOW) > 0 || type.attrs.count(SUMO_ATTR_ALLOW) > 0) { writePermissions(into, type.permissions); } if (type.attrs.count(SUMO_ATTR_ONEWAY) > 0) { into.writeAttr(SUMO_ATTR_ONEWAY, type.oneWay); } if (type.attrs.count(SUMO_ATTR_DISCARD) > 0) { into.writeAttr(SUMO_ATTR_DISCARD, type.discard); } if (type.attrs.count(SUMO_ATTR_WIDTH) > 0) { into.writeAttr(SUMO_ATTR_WIDTH, type.width); } if (type.attrs.count(SUMO_ATTR_SIDEWALKWIDTH) > 0) { into.writeAttr(SUMO_ATTR_SIDEWALKWIDTH, type.sidewalkWidth); } if (type.attrs.count(SUMO_ATTR_BIKELANEWIDTH) > 0) { into.writeAttr(SUMO_ATTR_BIKELANEWIDTH, type.bikeLaneWidth); } for (std::map<SUMOVehicleClass, SUMOReal>::const_iterator j = type.restrictions.begin(); j != type.restrictions.end(); ++j) { into.openTag(SUMO_TAG_RESTRICTION); into.writeAttr(SUMO_ATTR_VCLASS, getVehicleClassNames(j->first)); into.writeAttr(SUMO_ATTR_SPEED, j->second); into.closeTag(); } into.closeTag(); } if (!myTypes.empty()) { into.lf(); } }
void NWWriter_SUMO::writeRoundabouts(OutputDevice& into, const std::set<EdgeSet>& roundabouts, const NBEdgeCont& ec) { // make output deterministic std::vector<std::vector<std::string> > edgeIDs; for (std::set<EdgeSet>::const_iterator i = roundabouts.begin(); i != roundabouts.end(); ++i) { std::vector<std::string> tEdgeIDs; for (EdgeSet::const_iterator j = (*i).begin(); j != (*i).end(); ++j) { // the edges may have been erased from NBEdgeCont but their pointers are still valid // we verify their existance in writeRoundabout() tEdgeIDs.push_back((*j)->getID()); } std::sort(tEdgeIDs.begin(), tEdgeIDs.end()); edgeIDs.push_back(tEdgeIDs); } std::sort(edgeIDs.begin(), edgeIDs.end()); // write for (std::vector<std::vector<std::string> >::const_iterator i = edgeIDs.begin(); i != edgeIDs.end(); ++i) { writeRoundabout(into, *i, ec); } if (roundabouts.size() != 0) { into.lf(); } }
void GUIVisualizationSettings::save(OutputDevice& dev) const { dev.openTag(SUMO_TAG_VIEWSETTINGS_SCHEME); dev.writeAttr(SUMO_ATTR_NAME, name); dev.openTag(SUMO_TAG_VIEWSETTINGS_OPENGL); dev.writeAttr("antialiase", antialiase); dev.writeAttr("dither", dither); dev.closeTag(); dev.openTag(SUMO_TAG_VIEWSETTINGS_BACKGROUND); dev.writeAttr("backgroundColor", backgroundColor); dev.writeAttr("showGrid", showGrid); dev.writeAttr("gridXSize", gridXSize); dev.writeAttr("gridYSize", gridYSize); dev.closeTag(); // edges dev.openTag(SUMO_TAG_VIEWSETTINGS_EDGES); dev.writeAttr("laneEdgeMode", getLaneEdgeMode()); dev.writeAttr("scaleMode", getLaneEdgeScaleMode()); dev.writeAttr("laneShowBorders", laneShowBorders); dev.writeAttr("showLinkDecals", showLinkDecals); dev.writeAttr("showRails", showRails); dev.writeAttr("hideConnectors", hideConnectors); dev.writeAttr("widthExaggeration", laneWidthExaggeration); dev.lf(); dev << " "; edgeName.print(dev, "edgeName"); dev.lf(); dev << " "; internalEdgeName.print(dev, "internalEdgeName"); dev.lf(); dev << " "; cwaEdgeName.print(dev, "cwaEdgeName"); dev.lf(); dev << " "; streetName.print(dev, "streetName"); laneColorer.save(dev); laneScaler.save(dev); #ifdef HAVE_INTERNAL edgeColorer.save(dev); edgeScaler.save(dev); #endif dev.closeTag(); // vehicles dev.openTag(SUMO_TAG_VIEWSETTINGS_VEHICLES); dev.writeAttr("vehicleMode", vehicleColorer.getActive()); dev.writeAttr("vehicleQuality", vehicleQuality); vehicleSize.print(dev, "vehicle"); dev.writeAttr("showBlinker", showBlinker); dev.lf(); dev << " "; vehicleName.print(dev, "vehicleName"); vehicleColorer.save(dev); dev.closeTag(); // persons dev.openTag(SUMO_TAG_VIEWSETTINGS_PERSONS); dev.writeAttr("personMode", personColorer.getActive()); dev.writeAttr("personQuality", personQuality); personSize.print(dev, "person"); dev.lf(); dev << " "; personName.print(dev, "personName"); personColorer.save(dev); dev.closeTag(); // persons dev.openTag(SUMO_TAG_VIEWSETTINGS_CONTAINERS); dev.writeAttr("containerMode", containerColorer.getActive()); dev.writeAttr("containerQuality", containerQuality); personSize.print(dev, "container"); dev.lf(); dev << " "; personName.print(dev, "containerName"); personColorer.save(dev); dev.closeTag(); // junctions dev.openTag(SUMO_TAG_VIEWSETTINGS_JUNCTIONS); dev.writeAttr("junctionMode", junctionColorer.getActive()); dev.lf(); dev << " "; drawLinkTLIndex.print(dev, "drawLinkTLIndex"); dev.lf(); dev << " "; drawLinkTLIndex.print(dev, "drawLinkJunctionIndex"); dev.lf(); dev << " "; junctionName.print(dev, "junctionName"); dev.lf(); dev << " "; internalJunctionName.print(dev, "internalJunctionName"); dev.lf(); dev << " "; dev.writeAttr("showLane2Lane", showLane2Lane); dev.writeAttr("drawShape", drawJunctionShape); dev.writeAttr("drawCrossingsAndWalkingareas", drawCrossingsAndWalkingareas); junctionColorer.save(dev); dev.closeTag(); // additionals dev.openTag(SUMO_TAG_VIEWSETTINGS_ADDITIONALS); dev.writeAttr("addMode", addMode); addSize.print(dev, "add"); addName.print(dev, "addName"); dev.closeTag(); // pois dev.openTag(SUMO_TAG_VIEWSETTINGS_POIS); poiSize.print(dev, "poi"); poiName.print(dev, "poiName"); poiType.print(dev, "poiType"); dev.closeTag(); // polys dev.openTag(SUMO_TAG_VIEWSETTINGS_POLYS); polySize.print(dev, "poly"); polyName.print(dev, "polyName"); polyType.print(dev, "polyType"); dev.closeTag(); // legend dev.openTag(SUMO_TAG_VIEWSETTINGS_LEGEND); dev.writeAttr("showSizeLegend", showSizeLegend); dev.closeTag(); dev.closeTag(); }