void SUMOVTypeParameter::write(OutputDevice& dev) const { if (onlyReferenced) { return; } dev.openTag(SUMO_TAG_VTYPE); dev.writeAttr(SUMO_ATTR_ID, id); if (wasSet(VTYPEPARS_LENGTH_SET)) { dev.writeAttr(SUMO_ATTR_LENGTH, length); } if (wasSet(VTYPEPARS_MINGAP_SET)) { dev.writeAttr(SUMO_ATTR_MINGAP, minGap); } if (wasSet(VTYPEPARS_MAXSPEED_SET)) { dev.writeAttr(SUMO_ATTR_MAXSPEED, maxSpeed); } if (wasSet(VTYPEPARS_PROBABILITY_SET)) { dev.writeAttr(SUMO_ATTR_PROB, defaultProbability); } if (wasSet(VTYPEPARS_SPEEDFACTOR_SET)) { dev.writeAttr(SUMO_ATTR_SPEEDFACTOR, speedFactor); } if (wasSet(VTYPEPARS_SPEEDDEVIATION_SET)) { dev.writeAttr(SUMO_ATTR_SPEEDDEV, speedDev); } if (wasSet(VTYPEPARS_VEHICLECLASS_SET)) { dev.writeAttr(SUMO_ATTR_VCLASS, toString(vehicleClass)); } if (wasSet(VTYPEPARS_EMISSIONCLASS_SET)) { dev.writeAttr(SUMO_ATTR_EMISSIONCLASS, getVehicleEmissionTypeName(emissionClass)); } if (wasSet(VTYPEPARS_SHAPE_SET)) { dev.writeAttr(SUMO_ATTR_GUISHAPE, getVehicleShapeName(shape)); } if (wasSet(VTYPEPARS_WIDTH_SET)) { dev.writeAttr(SUMO_ATTR_WIDTH, width); } if (wasSet(VTYPEPARS_HEIGHT_SET)) { dev.writeAttr(SUMO_ATTR_HEIGHT, height); } if (wasSet(VTYPEPARS_COLOR_SET)) { dev.writeAttr(SUMO_ATTR_COLOR, color); } if (wasSet(VTYPEPARS_OSGFILE_SET)) { dev.writeAttr(SUMO_ATTR_OSGFILE, osgFile); } if (wasSet(VTYPEPARS_IMGFILE_SET)) { dev.writeAttr(SUMO_ATTR_IMGFILE, imgFile); } if (cfParameter.size() != 0) { dev.openTag(cfModel); std::vector<SumoXMLAttr> attrs; for (CFParams::const_iterator i = cfParameter.begin(); i != cfParameter.end(); ++i) { attrs.push_back(i->first); } std::sort(attrs.begin(), attrs.end()); for (std::vector<SumoXMLAttr>::const_iterator i = attrs.begin(); i != attrs.end(); ++i) { dev.writeAttr(*i, cfParameter.find(*i)->second); } dev.closeTag(); dev.closeTag(); } else { dev.closeTag(); } }
void SUMOVTypeParameter::write(OutputDevice &dev) const throw(IOError) { if (onlyReferenced) { return; } dev << " <vtype id=\"" << id << '"'; if (wasSet(VTYPEPARS_LENGTH_SET)) { dev << " length=\"" << length << '"'; } if (wasSet(VTYPEPARS_MAXSPEED_SET)) { dev << " maxspeed=\"" << maxSpeed << '"'; } if (wasSet(VTYPEPARS_PROBABILITY_SET)) { dev << " probability=\"" << defaultProbability << '"'; } if (wasSet(VTYPEPARS_SPEEDFACTOR_SET)) { dev << " speedFactor=\"" << speedFactor << '"'; } if (wasSet(VTYPEPARS_SPEEDDEVIATION_SET)) { dev << " speedDev=\"" << speedDev << '"'; } if (wasSet(VTYPEPARS_VEHICLECLASS_SET)) { dev << " vclass=\"" << getVehicleClassName(vehicleClass) << '"'; } if (wasSet(VTYPEPARS_EMISSIONCLASS_SET)) { dev << " emissionClass=\"" << getVehicleEmissionTypeName(emissionClass) << '"'; } if (wasSet(VTYPEPARS_SHAPE_SET)) { dev << " guiShape=\"" << getVehicleShapeName(shape) << '"'; } if (wasSet(VTYPEPARS_OFFSET_SET)) { dev << " guiOffset=\"" << offset << '"'; } if (wasSet(VTYPEPARS_WIDTH_SET)) { dev << " guiWidth=\"" << width << '"'; } if (wasSet(VTYPEPARS_COLOR_SET)) { dev << " color=\"" << color << '"'; } if (cfParameter.size()!=0) { dev << ">\n"; dev << " <"; switch (cfModel) { case SUMO_TAG_CF_IDM: dev << CF_MODEL_IDM; break; case SUMO_TAG_CF_KRAUSS_ORIG1: dev << CF_MODEL_KRAUSS_ORIG1; break; case SUMO_TAG_CF_PWAGNER2009: dev << CF_MODEL_PWAGNER2009; break; case SUMO_TAG_CF_BKERNER: dev << CF_MODEL_BKERNER; break; case SUMO_TAG_CF_IITBNN: dev << CF_MODEL_IITBNN; break; case SUMO_TAG_CF_KRAUSS: default: dev << CF_MODEL_KRAUSS; break; } std::vector<std::string> names; for (std::map<std::string, SUMOReal>::const_iterator i=cfParameter.begin(); i!=cfParameter.end(); ++i) { names.push_back((*i).first); } std::sort(names.begin(), names.end()); for (std::vector<std::string>::const_iterator i=names.begin(); i!=names.end(); ++i) { dev << ' ' << (*i) << "=\"" << cfParameter.find(*i)->second << '"'; } dev << "/>\n"; dev << " </vtype>\n"; } else { dev << "/>\n"; } }