SUMOVehicleClass getVehicleClassID(const std::string& name) { if (SumoVehicleClassStrings.hasString(name)) { return SumoVehicleClassStrings.get(name); } throw InvalidArgument("Unknown vehicle class '" + name + "'."); }
SUMOVehicleShape getVehicleShapeID(const std::string& name) { if (SumoVehicleShapeStrings.hasString(name)) { return SumoVehicleShapeStrings.get(name); } else { throw InvalidArgument("Unknown vehicle shape '" + name + "'."); } }
int NWWriter_OpenDrive::getID(const std::string& origID, StringBijection<int>& map, int& lastID) { if (map.hasString(origID)) { return map.get(origID); } map.insert(origID, lastID++); return lastID - 1; }
int getVehicleClassCompoundID(const std::string& name) { int ret = SVC_IGNORING; const std::vector<std::string> names = SumoVehicleClassStrings.getStrings(); for (std::vector<std::string>::const_iterator it = names.begin(); it != names.end(); it++) { if (name.find(*it) != std::string::npos) { ret = ret | (int) SumoVehicleClassStrings.get(*it); } } return ret; }
std::vector<std::string> getVehicleClassNamesList(SVCPermissions permissions) { /// @todo cache values? const std::vector<std::string> classNames = SumoVehicleClassStrings.getStrings(); std::vector<std::string> result; for (std::vector<std::string>::const_iterator it = classNames.begin(); it != classNames.end(); it++) { const int svc = (int)SumoVehicleClassStrings.get(*it); if ((svc & permissions) == svc && svc != SVC_IGNORING) { result.push_back(*it); } } return result; }
const std::vector<std::string>& getVehicleClassNamesList(SVCPermissions permissions) { // first check if it's cached if (vehicleClassNamesListCached.count(permissions) == 0) { const std::vector<std::string> classNames = SumoVehicleClassStrings.getStrings(); std::vector<std::string> result; for (std::vector<std::string>::const_iterator it = classNames.begin(); it != classNames.end(); it++) { const int svc = (int)SumoVehicleClassStrings.get(*it); if ((svc & permissions) == svc && svc != SVC_IGNORING) { result.push_back(*it); } } // add it into vehicleClassNamesListCached vehicleClassNamesListCached[permissions] = result; } return vehicleClassNamesListCached.at(permissions); }