116 return server.
writeErrorStatusCmd(cmd,
"Setting length requires a double.", outputStorage);
118 if (value <= 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
121 libsumo::VehicleType::setLength(
id, value);
127 return server.
writeErrorStatusCmd(cmd,
"Setting height requires a double.", outputStorage);
129 if (value <= 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
132 libsumo::VehicleType::setHeight(
id, value);
138 return server.
writeErrorStatusCmd(cmd,
"Setting maximum speed requires a double.", outputStorage);
140 if (value <= 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
143 libsumo::VehicleType::setMaxSpeed(
id, value);
149 return server.
writeErrorStatusCmd(cmd,
"Setting vehicle class requires a string.", outputStorage);
152 libsumo::VehicleType::setVehicleClass(
id, vclass);
154 return server.
writeErrorStatusCmd(cmd,
"Unknown vehicle class '" + vclass +
"'.", outputStorage);
161 return server.
writeErrorStatusCmd(cmd,
"Setting speed factor requires a double.", outputStorage);
163 if (value <= 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
166 libsumo::VehicleType::setSpeedFactor(
id, value);
172 return server.
writeErrorStatusCmd(cmd,
"Setting speed deviation requires a double.", outputStorage);
174 if (value < 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
177 libsumo::VehicleType::setSpeedDeviation(
id, value);
183 return server.
writeErrorStatusCmd(cmd,
"Setting emission class requires a string.", outputStorage);
186 libsumo::VehicleType::setEmissionClass(
id, eclass);
197 if (value <= 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
200 libsumo::VehicleType::setWidth(
id, value);
206 return server.
writeErrorStatusCmd(cmd,
"Setting minimum gap requires a double.", outputStorage);
208 if (value < 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
211 libsumo::VehicleType::setMinGap(
id, value);
217 return server.
writeErrorStatusCmd(cmd,
"Setting minimum lateral gap requires a double.", outputStorage);
219 if (value < 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
222 libsumo::VehicleType::setMinGapLat(
id, value);
228 return server.
writeErrorStatusCmd(cmd,
"Setting maximum lateral speed requires a double.", outputStorage);
230 if (value < 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
233 libsumo::VehicleType::setMaxSpeedLat(
id, value);
237 std::string latAlign;
239 return server.
writeErrorStatusCmd(cmd,
"Setting preferred lateral alignment requires a string.",
243 libsumo::VehicleType::setLateralAlignment(
id, latAlign);
252 return server.
writeErrorStatusCmd(cmd,
"Setting vehicle shape requires a string.", outputStorage);
255 libsumo::VehicleType::setShapeClass(
id, sclass);
264 return server.
writeErrorStatusCmd(cmd,
"Setting acceleration requires a double.", outputStorage);
266 if (value < 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
269 libsumo::VehicleType::setAccel(
id, value);
275 return server.
writeErrorStatusCmd(cmd,
"Setting deceleration requires a double.", outputStorage);
277 if (value < 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
280 libsumo::VehicleType::setDecel(
id, value);
286 return server.
writeErrorStatusCmd(cmd,
"Setting deceleration requires a double.", outputStorage);
288 if (value < 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
291 libsumo::VehicleType::setEmergencyDecel(
id, value);
297 return server.
writeErrorStatusCmd(cmd,
"Setting deceleration requires a double.", outputStorage);
299 if (value < 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
302 libsumo::VehicleType::setApparentDecel(
id, value);
308 return server.
writeErrorStatusCmd(cmd,
"Setting traffic scale requires a double.", outputStorage);
311 return server.
writeErrorStatusCmd(cmd,
"Traffic scale may not be negative.", outputStorage);
313 libsumo::VehicleType::setScale(
id, value);
321 if (fabs(value) == std::numeric_limits<double>::infinity()) {
324 bool resetActionOffset = value >= 0.0;
325 libsumo::VehicleType::setActionStepLength(
id, fabs(value), resetActionOffset);
331 return server.
writeErrorStatusCmd(cmd,
"Setting driver imperfection requires a double.", outputStorage);
333 if (value < 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
336 libsumo::VehicleType::setImperfection(
id, value);
342 return server.
writeErrorStatusCmd(cmd,
"Setting headway time requires a double.", outputStorage);
344 if (value < 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
347 libsumo::VehicleType::setTau(
id, value);
353 return server.
writeErrorStatusCmd(cmd,
"Setting impatience requires a double.", outputStorage);
355 libsumo::VehicleType::setImpatience(
id, value);
361 return server.
writeErrorStatusCmd(cmd,
"Setting boardingDuration requires a double.", outputStorage);
363 libsumo::VehicleType::setBoardingDuration(
id, value);
369 return server.
writeErrorStatusCmd(cmd,
"The color must be given using the according type.", outputStorage);
371 libsumo::VehicleType::setColor(
id, col);
375 std::string newTypeID;
380 libsumo::VehicleType::copy(
id, newTypeID);
385 return server.
writeErrorStatusCmd(cmd,
"A compound object is needed for setting a parameter.",
392 return server.
writeErrorStatusCmd(cmd,
"The name of the parameter must be given as a string.",
397 return server.
writeErrorStatusCmd(cmd,
"The value of the parameter must be given as a string.",
400 libsumo::VehicleType::setParameter(
id, name, value);