GUIParameterTableWindow* GUIVehicle::getTypeParameterWindow(GUIMainWindow& app, GUISUMOAbstractView&) { GUIParameterTableWindow* ret = new GUIParameterTableWindow(app, *this, 26 + (int)myType->getParameter().getParametersMap().size() + (int)myType->getParameter().lcParameter.size() + (int)myType->getParameter().jmParameter.size()); // add items ret->mkItem("Type Information:", false, ""); ret->mkItem("type [id]", false, myType->getID()); ret->mkItem("length", false, myType->getLength()); ret->mkItem("width", false, myType->getWidth()); ret->mkItem("height", false, myType->getHeight()); ret->mkItem("minGap", false, myType->getMinGap()); ret->mkItem("vehicle class", false, SumoVehicleClassStrings.getString(myType->getVehicleClass())); ret->mkItem("emission class", false, PollutantsInterface::getName(myType->getEmissionClass())); ret->mkItem("carFollowModel", false, SUMOXMLDefinitions::CarFollowModels.getString((SumoXMLTag)getCarFollowModel().getModelID())); ret->mkItem("LaneChangeModel", false, SUMOXMLDefinitions::LaneChangeModels.getString(getLaneChangeModel().getModelID())); ret->mkItem("guiShape", false, getVehicleShapeName(myType->getGuiShape())); ret->mkItem("maximum speed [m/s]", false, getMaxSpeed()); ret->mkItem("maximum acceleration [m/s^2]", false, getCarFollowModel().getMaxAccel()); ret->mkItem("maximum deceleration [m/s^2]", false, getCarFollowModel().getMaxDecel()); ret->mkItem("emergency deceleration [m/s^2]", false, getCarFollowModel().getEmergencyDecel()); ret->mkItem("apparent deceleration [m/s^2]", false, getCarFollowModel().getApparentDecel()); ret->mkItem("imperfection (sigma)", false, getCarFollowModel().getImperfection()); ret->mkItem("desired headway (tau)", false, getCarFollowModel().getHeadwayTime()); ret->mkItem("person capacity", false, myType->getPersonCapacity()); ret->mkItem("boarding time", false, STEPS2TIME(myType->getBoardingDuration())); ret->mkItem("container capacity", false, myType->getContainerCapacity()); ret->mkItem("loading time", false, STEPS2TIME(myType->getLoadingDuration())); if (MSGlobals::gLateralResolution > 0) { ret->mkItem("minGapLat", false, myType->getMinGapLat()); ret->mkItem("maxSpeedLat", false, myType->getMaxSpeedLat()); ret->mkItem("latAlignment", false, toString(myType->getPreferredLateralAlignment())); } else if (MSGlobals::gLaneChangeDuration > 0) { ret->mkItem("maxSpeedLat", false, myType->getMaxSpeedLat()); } for (auto item : myType->getParameter().lcParameter) { ret->mkItem(toString(item.first).c_str(), false, toString(item.second)); } for (auto item : myType->getParameter().jmParameter) { ret->mkItem(toString(item.first).c_str(), false, toString(item.second)); } // close building ret->closeBuilding(&(myType->getParameter())); return ret; }
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(); } }
std::string Person::getShapeClass(const std::string& personID) { return getVehicleShapeName(getPerson(personID)->getVehicleType().getGuiShape()); }
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, PollutantsInterface::getName(emissionClass)); } if (wasSet(VTYPEPARS_IMPATIENCE_SET)) { if (impatience == -std::numeric_limits<SUMOReal>::max()) { dev.writeAttr(SUMO_ATTR_IMPATIENCE, "off"); } else { dev.writeAttr(SUMO_ATTR_IMPATIENCE, impatience); } } 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 (wasSet(VTYPEPARS_LANE_CHANGE_MODEL_SET)) { dev.writeAttr(SUMO_ATTR_LANE_CHANGE_MODEL, lcModel); } if (wasSet(VTYPEPARS_PERSON_CAPACITY)) { dev.writeAttr(SUMO_ATTR_PERSON_CAPACITY, personCapacity); } if (wasSet(VTYPEPARS_CONTAINER_CAPACITY)) { dev.writeAttr(SUMO_ATTR_CONTAINER_CAPACITY, containerCapacity); } if (wasSet(VTYPEPARS_BOARDING_DURATION)) { dev.writeAttr(SUMO_ATTR_BOARDING_DURATION, boardingDuration); } if (wasSet(VTYPEPARS_LOADING_DURATION)) { dev.writeAttr(SUMO_ATTR_LOADING_DURATION, loadingDuration); } 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(); } for (std::map<std::string, std::string>::const_iterator j = getMap().begin(); j != getMap().end(); ++j) { dev.openTag(SUMO_TAG_PARAM); dev.writeAttr(SUMO_ATTR_KEY, (*j).first); dev.writeAttr(SUMO_ATTR_VALUE, (*j).second); dev.closeTag(); } 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"; } }