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}
}

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},
}

Definition at line 81 of file SUMOVehicleClass.cpp.