SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SUMOVehicleClass.cpp File Reference
#include <config.h>
#include <string>
#include <map>
#include "SUMOVehicleClass.h"
#include <utils/common/TplConvert.h>
#include <utils/common/ToString.h>
#include <utils/common/MsgHandler.h>
#include <utils/common/StringTokenizer.h>

Go to the source code of this file.

Functions

bool canParseVehicleClasses (const std::string &classes)
 Checks whether the given string contains only known vehicle classes. More...
 
const SUMOReal DEFAULT_PERSON_SPEED (5./3.6)
 
const SUMOReal DEFAULT_VEH_ACCEL (2.6)
 
const SUMOVehicleClass DEFAULT_VEH_CLASS (SVC_UNKNOWN)
 
const SUMOReal DEFAULT_VEH_DECEL (4.5)
 
const SumoXMLTag DEFAULT_VEH_FOLLOW_MODEL (SUMO_TAG_CF_KRAUSS)
 
const SUMOReal DEFAULT_VEH_HEIGHT (1.5)
 
const std::string DEFAULT_VEH_LANE_CHANGE_MODEL ("dkrajzew2008")
 
const SUMOReal DEFAULT_VEH_LENGTH (5.)
 
const SUMOReal DEFAULT_VEH_MAXSPEED (70.0)
 
const SUMOReal DEFAULT_VEH_MINGAP (2.5)
 
const SUMOReal DEFAULT_VEH_PROB (1.)
 
const SUMOVehicleShape DEFAULT_VEH_SHAPE (SVS_UNKNOWN)
 
const SUMOReal DEFAULT_VEH_SIGMA (0.5)
 
const SUMOReal DEFAULT_VEH_SPEEDDEV (0.)
 
const SUMOReal DEFAULT_VEH_SPEEDFACTOR (1.)
 
const SUMOReal DEFAULT_VEH_TAU (1.)
 
const SUMOReal DEFAULT_VEH_TMP1 (1.)
 
const SUMOReal DEFAULT_VEH_TMP2 (1.)
 
const SUMOReal DEFAULT_VEH_TMP3 (1.)
 
const SUMOReal DEFAULT_VEH_TMP4 (1.)
 
const SUMOReal DEFAULT_VEH_TMP5 (1.)
 
const SUMOReal DEFAULT_VEH_WIDTH (2.)
 
const std::string DEFAULT_VTYPE_ID ("DEFAULT_VEHTYPE")
 
std::string getAllowedVehicleClassNames (SVCPermissions permissions)
 Returns the ids of the given classes, divided using a ' '. More...
 
std::vector< std::string > getAllowedVehicleClassNamesList (SVCPermissions permissions)
 Returns the ids of the given classes, divided using a ' '. More...
 
std::pair< std::string, boolgetPermissionEncoding (SVCPermissions permissions)
 returns the shorter encoding of the given permissions (selects automatically wether to use allow or disallow attribute) More...
 
int getVehicleClassCompoundID (const std::string &name)
 Returns the OR'ed id of the compound class given by its name. More...
 
std::string getVehicleClassCompoundName (int id)
 
SUMOVehicleClass getVehicleClassID (const std::string &name)
 Returns the class id of the abstract class given by its name. More...
 
SUMOEmissionClass getVehicleEmissionTypeID (const std::string &name)
 Returns the class id of the emission class given by its name. More...
 
std::string getVehicleEmissionTypeName (SUMOEmissionClass id)
 Returns the class name of the emission class given by its id. More...
 
SUMOVehicleShape getVehicleShapeID (const std::string &name)
 Returns the class id of the shape class given by its name. More...
 
std::string getVehicleShapeName (SUMOVehicleShape id)
 Returns the class name of the shape class given by its id. More...
 
bool isRailway (SVCPermissions permissions)
 Returns whether an edge with the given permission is a railway edge. More...
 
SVCPermissions parseVehicleClasses (const std::string &allowedS)
 Parses the given definition of allowed vehicle classes into the given containers. More...
 
SVCPermissions parseVehicleClasses (const std::string &allowedS, const std::string &disallowedS)
 Parses the given definition of allowed/disallowed vehicle classes into the given containers. More...
 
SVCPermissions parseVehicleClasses (const std::vector< std::string > &allowedS)
 Encodes the given vector of allowed classs into a bitset. More...
 

Variables

StringBijection
< SUMOEmissionClass >::Entry 
SumoEmissionClassStringInitializer []
 
StringBijection
< SUMOEmissionClass
SumoEmissionClassStrings (SumoEmissionClassStringInitializer, SVE_P_LDV_A0_14_14)
 
const int SUMOVehicleClass_MAX = SVC_PEDESTRIAN
 
StringBijection
< SUMOVehicleClass >::Entry 
sumoVehicleClassStringInitializer []
 
StringBijection< SUMOVehicleClassSumoVehicleClassStrings (sumoVehicleClassStringInitializer, SVC_CUSTOM2)
 
StringBijection
< SUMOVehicleShape >::Entry 
sumoVehicleShapeStringInitializer []
 
StringBijection< SUMOVehicleShapeSumoVehicleShapeStrings (sumoVehicleShapeStringInitializer, SVS_UNKNOWN)
 
const SVCPermissions SVCFreeForAll = std::numeric_limits<SVCPermissions>::max()
 

Detailed Description

Author
Daniel Krajzewicz
Jakob Erdmann
Michael Behrisch
Walter Bamberger
Date
2006-01-24
Version
Id:
SUMOVehicleClass.cpp 14425 2013-08-16 20:11:47Z behrisch

Definition in file SUMOVehicleClass.cpp.

Function Documentation

bool canParseVehicleClasses ( const std::string &  classes)

Checks whether the given string contains only known vehicle classes.

Definition at line 325 of file SUMOVehicleClass.cpp.

References StringTokenizer::hasNext(), StringTokenizer::next(), and SumoVehicleClassStrings.

const SUMOReal DEFAULT_PERSON_SPEED ( 5./3.  6)
const SUMOReal DEFAULT_VEH_ACCEL ( 2.  6)
const SUMOVehicleClass DEFAULT_VEH_CLASS ( SVC_UNKNOWN  )
const SUMOReal DEFAULT_VEH_DECEL ( 4.  5)
const SumoXMLTag DEFAULT_VEH_FOLLOW_MODEL ( SUMO_TAG_CF_KRAUSS  )
const SUMOReal DEFAULT_VEH_HEIGHT ( 1.  5)
const std::string DEFAULT_VEH_LANE_CHANGE_MODEL ( "dkrajzew2008"  )
const SUMOReal DEFAULT_VEH_LENGTH ( 5.  )
const SUMOReal DEFAULT_VEH_MAXSPEED ( 70.  0)
const SUMOReal DEFAULT_VEH_MINGAP ( 2.  5)
const SUMOReal DEFAULT_VEH_PROB ( 1.  )
const SUMOVehicleShape DEFAULT_VEH_SHAPE ( SVS_UNKNOWN  )
const SUMOReal DEFAULT_VEH_SIGMA ( 0.  5)
const SUMOReal DEFAULT_VEH_SPEEDDEV ( 0.  )
const SUMOReal DEFAULT_VEH_SPEEDFACTOR ( 1.  )
const SUMOReal DEFAULT_VEH_TAU ( 1.  )
const SUMOReal DEFAULT_VEH_TMP1 ( 1.  )
const SUMOReal DEFAULT_VEH_TMP2 ( 1.  )
const SUMOReal DEFAULT_VEH_TMP3 ( 1.  )
const SUMOReal DEFAULT_VEH_TMP4 ( 1.  )
const SUMOReal DEFAULT_VEH_TMP5 ( 1.  )
const SUMOReal DEFAULT_VEH_WIDTH ( 2.  )
const std::string DEFAULT_VTYPE_ID ( "DEFAULT_VEHTYPE"  )
std::string getAllowedVehicleClassNames ( SVCPermissions  permissions)

Returns the ids of the given classes, divided using a ' '.

Parameters
[in]thepermissions to encode
Returns
The string representation of these classes

Definition at line 249 of file SUMOVehicleClass.cpp.

References getAllowedVehicleClassNamesList(), and joinToString().

Referenced by GUILane::getParameterWindow(), getPermissionEncoding(), NWWriter_SUMO::writePermissions(), and NWWriter_SUMO::writePreferences().

std::vector<std::string> getAllowedVehicleClassNamesList ( SVCPermissions  permissions)

Returns the ids of the given classes, divided using a ' '.

Parameters
[in]thepermissions to encode
Returns
The string representation of these classes as a vector
Todo:
cache values?

Definition at line 255 of file SUMOVehicleClass.cpp.

References SumoVehicleClassStrings, and SVC_UNKNOWN.

Referenced by getAllowedVehicleClassNames(), and TraCIServerAPI_Lane::processGet().

std::pair<std::string, bool> getPermissionEncoding ( SVCPermissions  permissions)

returns the shorter encoding of the given permissions (selects automatically wether to use allow or disallow attribute)

Returns
the string and true for allow, false for disallow

Definition at line 270 of file SUMOVehicleClass.cpp.

References getAllowedVehicleClassNames(), SUMOVehicleClass_MAX, SumoVehicleClassStrings, and SVCFreeForAll.

Referenced by NWWriter_SUMO::writePermissions().

int getVehicleClassCompoundID ( const std::string &  name)

Returns the OR'ed id of the compound class given by its name.

Parameters
[in]nameThe name of the abstract vehicle class
Returns
The OR'ed combination of base enum values

Definition at line 301 of file SUMOVehicleClass.cpp.

References SumoVehicleClassStrings, and SVC_UNKNOWN.

std::string getVehicleClassCompoundName ( int  id)

Definition at line 232 of file SUMOVehicleClass.cpp.

References SumoVehicleClassStrings.

SUMOVehicleClass getVehicleClassID ( const std::string &  name)

Returns the class id of the abstract class given by its name.

Parameters
[in]nameThe name of the abstract vehicle class
Returns
The internal representation of this class. Name must not be a compound name

Definition at line 292 of file SUMOVehicleClass.cpp.

References SumoVehicleClassStrings.

Referenced by NBEdgeCont::applyOptions(), SUMOVehicleParserHelper::parseVehicleClass(), parseVehicleClasses(), and TraCIServerAPI_VehicleType::setVariable().

SUMOEmissionClass getVehicleEmissionTypeID ( const std::string &  name)

Returns the class id of the emission class given by its name.

Parameters
[in]nameThe name of the emission class
Returns
The internal representation of this class

Definition at line 383 of file SUMOVehicleClass.cpp.

References SumoEmissionClassStrings.

Referenced by SUMOVehicleParserHelper::parseEmissionClass(), and TraCIServerAPI_VehicleType::setVariable().

std::string getVehicleEmissionTypeName ( SUMOEmissionClass  id)

Returns the class name of the emission class given by its id.

Parameters
[in]idThe id of the emission class
Returns
The string representation of this class

Definition at line 392 of file SUMOVehicleClass.cpp.

References SumoEmissionClassStrings.

Referenced by TraCIServerAPI_VehicleType::getVariable(), and SUMOVTypeParameter::write().

SUMOVehicleShape getVehicleShapeID ( const std::string &  name)

Returns the class id of the shape class given by its name.

Parameters
[in]nameThe name of the shape class
Returns
The internal representation of this class

Definition at line 361 of file SUMOVehicleClass.cpp.

References SumoVehicleShapeStrings.

Referenced by TraCIServerAPI_VehicleType::setVariable().

std::string getVehicleShapeName ( SUMOVehicleShape  id)

Returns the class name of the shape class given by its id.

Parameters
[in]idThe id of the shape class
Returns
The string representation of this class

Definition at line 371 of file SUMOVehicleClass.cpp.

References SumoVehicleShapeStrings.

Referenced by TraCIServerAPI_VehicleType::getVariable(), and SUMOVTypeParameter::write().

bool isRailway ( SVCPermissions  permissions)

Returns whether an edge with the given permission is a railway edge.

Parameters
[in]permissionsThe permissions of the edge
Returns
Whether the edge is a railway edge

Definition at line 376 of file SUMOVehicleClass.cpp.

References SVC_CITYRAIL, SVC_LIGHTRAIL, SVC_PASSENGER, SVC_RAIL_FAST, and SVC_RAIL_SLOW.

Referenced by GUILane::drawGL(), GUILane::drawLinkRules(), and NBRampsComputer::fulfillsRampConstraints().

SVCPermissions parseVehicleClasses ( const std::string &  allowedS)

Parses the given definition of allowed vehicle classes into the given containers.

Parameters
[in]classNamesSpace separated class names
[out]containerThe set of vehicle classes to fill throws ProcessErrorr if parsing fails

Definition at line 314 of file SUMOVehicleClass.cpp.

References getVehicleClassID(), StringTokenizer::hasNext(), and StringTokenizer::next().

Referenced by NIImporter_SUMO::_loadNetwork(), NIXMLEdgesHandler::addEdge(), NLHandler::addLane(), NIXMLEdgesHandler::addLane(), NIXMLTypesHandler::myStartElement(), RONetHandler::parseLane(), parseVehicleClasses(), TraCIServerAPI_Edge::processSet(), and TraCIServerAPI_Lane::processSet().

SVCPermissions parseVehicleClasses ( const std::string &  allowedS,
const std::string &  disallowedS 
)

Parses the given definition of allowed/disallowed vehicle classes into the given containers.

Parameters
[in]allowedSDefinition which classes are allowed
[in]disallowedSDefinition which classes are not allowedEncodes the given vector of allowed and disallowed classs into a bitset
[in]allowedSDefinition which classes are allowed
[in]disallowedSDefinition which classes are not allowed

Definition at line 336 of file SUMOVehicleClass.cpp.

References parseVehicleClasses(), SVCFreeForAll, and WRITE_WARNING.

SVCPermissions parseVehicleClasses ( const std::vector< std::string > &  allowedS)

Encodes the given vector of allowed classs into a bitset.

Parameters
[in]classesSThe names vector to parse

Definition at line 351 of file SUMOVehicleClass.cpp.

References getVehicleClassID().

Variable Documentation

StringBijection<SUMOEmissionClass>::Entry SumoEmissionClassStringInitializer[]

Definition at line 115 of file SUMOVehicleClass.cpp.

const int SUMOVehicleClass_MAX = SVC_PEDESTRIAN

Definition at line 223 of file SUMOVehicleClass.cpp.

Referenced by getPermissionEncoding().

StringBijection<SUMOVehicleClass>::Entry sumoVehicleClassStringInitializer[]
Initial value:
= {
{"unknown", SVC_UNKNOWN},
{"private", SVC_PRIVATE},
{"public_transport", SVC_PUBLIC_TRANSPORT},
{"public_emergency", SVC_PUBLIC_EMERGENCY},
{"public_authority", SVC_PUBLIC_AUTHORITY},
{"public_army", SVC_PUBLIC_ARMY},
{"vip", SVC_VIP},
{"ignoring", SVC_IGNORING},
{"passenger", SVC_PASSENGER},
{"hov", SVC_HOV},
{"taxi", SVC_TAXI},
{"bus", SVC_BUS},
{"delivery", SVC_DELIVERY},
{"transport", SVC_TRANSPORT},
{"lightrail", SVC_LIGHTRAIL},
{"cityrail", SVC_CITYRAIL},
{"rail_slow", SVC_RAIL_SLOW},
{"rail_fast", SVC_RAIL_FAST},
{"motorcycle", SVC_MOTORCYCLE},
{"bicycle", SVC_BICYCLE},
{"pedestrian", SVC_PEDESTRIAN},
{"custom1", SVC_CUSTOM1},
{"custom2", SVC_CUSTOM2}
}
vehicle is a motorcycle
vehicle is a city rail
is a pedestrian
vehicle is a large transport vehicle
vehicle is a bicycle
vehicle is a small delivery vehicle
vehicle is a HOV
is a user-defined type
vehicle is a light rail
private vehicles
army vehicles
vehicle is a passenger car (a &quot;normal&quot; car)
authorities vehicles
vehicle is a taxi
vehicle is a bus
public emergency vehicles
vip vehicles
vehicle is a slow moving transport rail
public transport vehicles
vehicle is a fast moving rail
vehicles ignoring classes
is a user-defined type

Definition at line 51 of file SUMOVehicleClass.cpp.

StringBijection<SUMOVehicleShape>::Entry sumoVehicleShapeStringInitializer[]
Initial value:
= {
{"pedestrian", SVS_PEDESTRIAN},
{"bicycle", SVS_BICYCLE},
{"motorcycle", SVS_MOTORCYCLE},
{"passenger", SVS_PASSENGER},
{"passenger/sedan", SVS_PASSENGER_SEDAN},
{"passenger/hatchback", SVS_PASSENGER_HATCHBACK},
{"passenger/wagon", SVS_PASSENGER_WAGON},
{"passenger/van", SVS_PASSENGER_VAN},
{"delivery", SVS_DELIVERY},
{"transport", SVS_TRANSPORT},
{"transport/semitrailer", SVS_TRANSPORT_SEMITRAILER},
{"transport/trailer", SVS_TRANSPORT_1TRAILER},
{"bus", SVS_BUS},
{"bus/city", SVS_BUS_CITY},
{"bus/flexible", SVS_BUS_CITY_FLEXIBLE},
{"bus/overland", SVS_BUS_OVERLAND},
{"bus/trolley", SVS_BUS_TROLLEY},
{"rail", SVS_RAIL},
{"rail/light", SVS_RAIL_LIGHT},
{"rail/city", SVS_RAIL_CITY},
{"rail/slow", SVS_RAIL_SLOW},
{"rail/fast", SVS_RAIL_FAST},
{"rail/cargo", SVS_RAIL_CARGO},
{"evehicle", SVS_E_VEHICLE},
{"ant", SVS_ANT},
}
render as a light rail
render as a rail
render as a slow (passenger) train
render as a motorcycle
render as a city bus
render as a fast (passenger) train
render as a delivery vehicle
render as a sedan passenger vehicle (&quot;Stufenheck&quot;)
render as a semi-trailer transport vehicle (&quot;Sattelschlepper&quot;)
render as a hatchback passenger vehicle (&quot;Fliessheck&quot;)
render as a bus
not defined
render as a bicycle
render as a van
render as a passenger vehicle
render as a cargo train
render as a flexible city bus
render as a giant ant
render as a pedestrian
render as a transport vehicle with one trailer
render as a (futuristic) e-vehicle
render as a wagon passenger vehicle (&quot;Combi&quot;)
render as a overland bus
render as a city rail
render as a trolley bus
render as a transport vehicle

Definition at line 81 of file SUMOVehicleClass.cpp.