SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SUMOVehicleClass.h File Reference
#include <config.h>
#include <string>
#include <set>
#include <limits>
#include <utils/common/UtilExceptions.h>
#include <utils/common/StringBijection.h>
#include <utils/xml/SUMOXMLDefinitions.h>

Go to the source code of this file.

Typedefs

typedef int SVCPermissions

Enumerations

enum  SUMOEmissionClass {
  SVE_UNKNOWN = -1, SVE_HDV_3_1 = 0, SVE_HDV_3_2, SVE_HDV_3_3,
  SVE_HDV_6_1, SVE_HDV_6_2, SVE_HDV_6_3, SVE_HDV_6_4,
  SVE_HDV_6_5, SVE_HDV_6_6, SVE_HDV_12_1, SVE_HDV_12_2,
  SVE_HDV_12_3, SVE_HDV_12_4, SVE_HDV_12_5, SVE_HDV_12_6,
  SVE_HDV_12_7, SVE_HDV_12_8, SVE_HDV_12_9, SVE_HDV_12_10,
  SVE_HDV_12_11, SVE_HDV_12_12, SVE_P_LDV_7_1, SVE_P_LDV_7_2,
  SVE_P_LDV_7_3, SVE_P_LDV_7_4, SVE_P_LDV_7_5, SVE_P_LDV_7_6,
  SVE_P_LDV_7_7, SVE_P_LDV_14_1, SVE_P_LDV_14_2, SVE_P_LDV_14_3,
  SVE_P_LDV_14_4, SVE_P_LDV_14_5, SVE_P_LDV_14_6, SVE_P_LDV_14_7,
  SVE_P_LDV_14_8, SVE_P_LDV_14_9, SVE_P_LDV_14_10, SVE_P_LDV_14_11,
  SVE_P_LDV_14_12, SVE_P_LDV_14_13, SVE_P_LDV_14_14, SVE_ZERO_EMISSIONS,
  SVE_HDV_A0_3_1, SVE_HDV_A0_3_2, SVE_HDV_A0_3_3, SVE_HDV_A0_6_1,
  SVE_HDV_A0_6_2, SVE_HDV_A0_6_3, SVE_HDV_A0_6_4, SVE_HDV_A0_6_5,
  SVE_HDV_A0_6_6, SVE_HDV_A0_12_1, SVE_HDV_A0_12_2, SVE_HDV_A0_12_3,
  SVE_HDV_A0_12_4, SVE_HDV_A0_12_5, SVE_HDV_A0_12_6, SVE_HDV_A0_12_7,
  SVE_HDV_A0_12_8, SVE_HDV_A0_12_9, SVE_HDV_A0_12_10, SVE_HDV_A0_12_11,
  SVE_HDV_A0_12_12, SVE_P_LDV_A0_7_1, SVE_P_LDV_A0_7_2, SVE_P_LDV_A0_7_3,
  SVE_P_LDV_A0_7_4, SVE_P_LDV_A0_7_5, SVE_P_LDV_A0_7_6, SVE_P_LDV_A0_7_7,
  SVE_P_LDV_A0_14_1, SVE_P_LDV_A0_14_2, SVE_P_LDV_A0_14_3, SVE_P_LDV_A0_14_4,
  SVE_P_LDV_A0_14_5, SVE_P_LDV_A0_14_6, SVE_P_LDV_A0_14_7, SVE_P_LDV_A0_14_8,
  SVE_P_LDV_A0_14_9, SVE_P_LDV_A0_14_10, SVE_P_LDV_A0_14_11, SVE_P_LDV_A0_14_12,
  SVE_P_LDV_A0_14_13, SVE_P_LDV_A0_14_14
}
 Definition of vehicle emission classes. More...
enum  SUMOVehicleClass {
  SVC_UNKNOWN = 0, SVC_PRIVATE = 1, SVC_PUBLIC_TRANSPORT = 2, SVC_PUBLIC_EMERGENCY = 4,
  SVC_PUBLIC_AUTHORITY = 8, SVC_PUBLIC_ARMY = 16, SVC_VIP = 32, SVC_IGNORING = 64,
  SVC_PASSENGER = 256, SVC_HOV = 512, SVC_TAXI = 1024, SVC_BUS = 2048,
  SVC_DELIVERY = 4096, SVC_TRANSPORT = 8192, SVC_LIGHTRAIL = 16384, SVC_CITYRAIL = 32768,
  SVC_RAIL_SLOW = 65536, SVC_RAIL_FAST = 131072, SVC_MOTORCYCLE = 262144, SVC_BICYCLE = 524288,
  SVC_PEDESTRIAN = 1048576
}
 Definition of vehicle classes to differ between different lane usage and authority types. More...
enum  SUMOVehicleShape {
  SVS_UNKNOWN, SVS_PEDESTRIAN, SVS_BICYCLE, SVS_MOTORCYCLE,
  SVS_PASSENGER, SVS_PASSENGER_SEDAN, SVS_PASSENGER_HATCHBACK, SVS_PASSENGER_WAGON,
  SVS_PASSENGER_VAN, SVS_DELIVERY, SVS_TRANSPORT, SVS_TRANSPORT_SEMITRAILER,
  SVS_TRANSPORT_1TRAILER, SVS_BUS, SVS_BUS_CITY, SVS_BUS_CITY_FLEXIBLE,
  SVS_BUS_OVERLAND, SVS_BUS_TROLLEY, SVS_RAIL, SVS_RAIL_LIGHT,
  SVS_RAIL_CITY, SVS_RAIL_SLOW, SVS_RAIL_FAST, SVS_RAIL_CARGO,
  SVS_E_VEHICLE, SVS_ANT
}
 Definition of vehicle classes to differ between different appearences. More...

Functions

bool canParseVehicleClasses (const std::string &classes)
 Checks whether the given string contains only known vehicle classes.
std::string getAllowedVehicleClassNames (SVCPermissions permissions)
 Returns the ids of the given classes, divided using a ' '.
std::vector< std::string > getAllowedVehicleClassNamesList (SVCPermissions permissions)
 Returns the ids of the given classes, divided using a ' '.
std::pair< std::string, boolgetPermissionEncoding (SVCPermissions permissions)
 returns the shorter encoding of the given permissions (selects automatically wether to use allow or disallow attribute)
int getVehicleClassCompoundID (const std::string &name)
 Returns the OR'ed id of the compound class given by its name.
std::string getVehicleClassCompoundName (int id)
SUMOVehicleClass getVehicleClassID (const std::string &name)
 Returns the class id of the abstract class given by its name.
SUMOEmissionClass getVehicleEmissionTypeID (const std::string &name)
 Returns the class id of the emission class given by its name.
std::string getVehicleEmissionTypeName (SUMOEmissionClass id)
 Returns the class name of the emission class given by its id.
SUMOVehicleShape getVehicleShapeID (const std::string &name)
 Returns the class id of the shape class given by its name.
std::string getVehicleShapeName (SUMOVehicleShape id)
 Returns the class name of the shape class given by its id.
SVCPermissions parseVehicleClasses (const std::string &allowedS)
 Parses the given definition of allowed vehicle classes into the given containers.
SVCPermissions parseVehicleClasses (const std::string &allowedS, const std::string &disallowedS)
 Parses the given definition of allowed/disallowed vehicle classes into the given containers.
SVCPermissions parseVehicleClasses (const std::vector< std::string > &allowedS)
 Encodes the given vector of allowed classs into a bitset.

Variables

const SUMOReal DEFAULT_VEH_ACCEL
const SUMOVehicleClass DEFAULT_VEH_CLASS
const SUMOReal DEFAULT_VEH_DECEL
const SumoXMLTag DEFAULT_VEH_FOLLOW_MODEL
const SUMOReal DEFAULT_VEH_HEIGHT
const std::string DEFAULT_VEH_LANE_CHANGE_MODEL
const SUMOReal DEFAULT_VEH_LENGTH
const SUMOReal DEFAULT_VEH_MAXSPEED
const SUMOReal DEFAULT_VEH_MINGAP
const SUMOReal DEFAULT_VEH_PROB
const SUMOVehicleShape DEFAULT_VEH_SHAPE
const SUMOReal DEFAULT_VEH_SIGMA
const SUMOReal DEFAULT_VEH_SPEEDDEV
const SUMOReal DEFAULT_VEH_SPEEDFACTOR
const SUMOReal DEFAULT_VEH_TAU
const SUMOReal DEFAULT_VEH_WIDTH
const std::string DEFAULT_VTYPE_ID
const int SUMOVehicleClass_MAX
StringBijection< SUMOVehicleClassSumoVehicleClassStrings
StringBijection< SUMOVehicleShapeSumoVehicleShapeStrings
const SVCPermissions SVCFreeForAll

Detailed Description

Author
Daniel Krajzewicz
Jakob Erdmann
Michael Behrisch
Walter Bamberger
Date
2006-01-24
Version
Id:
SUMOVehicleClass.h 12038 2012-03-07 14:50:31Z namdre

Definition in file SUMOVehicleClass.h.

Typedef Documentation

Definition at line 189 of file SUMOVehicleClass.h.

Enumeration Type Documentation

Definition of vehicle emission classes.

The order is important - HBEFA computation helper use it.

See Also
HelpersHBEFA
Enumerator:
SVE_UNKNOWN 
SVE_HDV_3_1 
SVE_HDV_3_2 
SVE_HDV_3_3 
SVE_HDV_6_1 
SVE_HDV_6_2 
SVE_HDV_6_3 
SVE_HDV_6_4 
SVE_HDV_6_5 
SVE_HDV_6_6 
SVE_HDV_12_1 
SVE_HDV_12_2 
SVE_HDV_12_3 
SVE_HDV_12_4 
SVE_HDV_12_5 
SVE_HDV_12_6 
SVE_HDV_12_7 
SVE_HDV_12_8 
SVE_HDV_12_9 
SVE_HDV_12_10 
SVE_HDV_12_11 
SVE_HDV_12_12 
SVE_P_LDV_7_1 
SVE_P_LDV_7_2 
SVE_P_LDV_7_3 
SVE_P_LDV_7_4 
SVE_P_LDV_7_5 
SVE_P_LDV_7_6 
SVE_P_LDV_7_7 
SVE_P_LDV_14_1 
SVE_P_LDV_14_2 
SVE_P_LDV_14_3 
SVE_P_LDV_14_4 
SVE_P_LDV_14_5 
SVE_P_LDV_14_6 
SVE_P_LDV_14_7 
SVE_P_LDV_14_8 
SVE_P_LDV_14_9 
SVE_P_LDV_14_10 
SVE_P_LDV_14_11 
SVE_P_LDV_14_12 
SVE_P_LDV_14_13 
SVE_P_LDV_14_14 
SVE_ZERO_EMISSIONS 
SVE_HDV_A0_3_1 
SVE_HDV_A0_3_2 
SVE_HDV_A0_3_3 
SVE_HDV_A0_6_1 
SVE_HDV_A0_6_2 
SVE_HDV_A0_6_3 
SVE_HDV_A0_6_4 
SVE_HDV_A0_6_5 
SVE_HDV_A0_6_6 
SVE_HDV_A0_12_1 
SVE_HDV_A0_12_2 
SVE_HDV_A0_12_3 
SVE_HDV_A0_12_4 
SVE_HDV_A0_12_5 
SVE_HDV_A0_12_6 
SVE_HDV_A0_12_7 
SVE_HDV_A0_12_8 
SVE_HDV_A0_12_9 
SVE_HDV_A0_12_10 
SVE_HDV_A0_12_11 
SVE_HDV_A0_12_12 
SVE_P_LDV_A0_7_1 
SVE_P_LDV_A0_7_2 
SVE_P_LDV_A0_7_3 
SVE_P_LDV_A0_7_4 
SVE_P_LDV_A0_7_5 
SVE_P_LDV_A0_7_6 
SVE_P_LDV_A0_7_7 
SVE_P_LDV_A0_14_1 
SVE_P_LDV_A0_14_2 
SVE_P_LDV_A0_14_3 
SVE_P_LDV_A0_14_4 
SVE_P_LDV_A0_14_5 
SVE_P_LDV_A0_14_6 
SVE_P_LDV_A0_14_7 
SVE_P_LDV_A0_14_8 
SVE_P_LDV_A0_14_9 
SVE_P_LDV_A0_14_10 
SVE_P_LDV_A0_14_11 
SVE_P_LDV_A0_14_12 
SVE_P_LDV_A0_14_13 
SVE_P_LDV_A0_14_14 

Definition at line 200 of file SUMOVehicleClass.h.

Definition of vehicle classes to differ between different lane usage and authority types.

Bits:

  • 0-7: vehicle ownership
  • 8-23: vehicle size

From NavTeq:

  • [0] All
  • [1] Passenger cars
  • [2] High Occupancy Vehicle
  • [3] Emergency Vehicle
  • [4] Taxi
  • [5] Public Bus
  • [6] Delivery Truck
  • [7] Transport Truck
  • [8] Bicycle
  • [9] Pedestrian
Enumerator:
SVC_UNKNOWN 
SVC_PRIVATE 

private vehicles

SVC_PUBLIC_TRANSPORT 

public transport vehicles

SVC_PUBLIC_EMERGENCY 

public emergency vehicles

SVC_PUBLIC_AUTHORITY 

authorities vehicles

SVC_PUBLIC_ARMY 

army vehicles

SVC_VIP 

vip vehicles

SVC_IGNORING 

vehicles ignoring classes

SVC_PASSENGER 

vehicle is a passenger car (a "normal" car)

SVC_HOV 

vehicle is a HOV

SVC_TAXI 

vehicle is a taxi

SVC_BUS 

vehicle is a bus

SVC_DELIVERY 

vehicle is a small delivery vehicle

SVC_TRANSPORT 

vehicle is a large transport vehicle

SVC_LIGHTRAIL 

vehicle is a light rail

SVC_CITYRAIL 

vehicle is a city rail

SVC_RAIL_SLOW 

vehicle is a slow moving transport rail

SVC_RAIL_FAST 

vehicle is a fast moving rail

SVC_MOTORCYCLE 

vehicle is a motorcycle

SVC_BICYCLE 

vehicle is a bicycle

SVC_PEDESTRIAN 

is a pedestrian

Definition at line 127 of file SUMOVehicleClass.h.

Definition of vehicle classes to differ between different appearences.

Enumerator:
SVS_UNKNOWN 

not defined

SVS_PEDESTRIAN 

render as a pedestrian

SVS_BICYCLE 

render as a bicycle

SVS_MOTORCYCLE 

render as a motorcycle

SVS_PASSENGER 

render as a passenger vehicle

SVS_PASSENGER_SEDAN 

render as a sedan passenger vehicle ("Stufenheck")

SVS_PASSENGER_HATCHBACK 

render as a hatchback passenger vehicle ("Fliessheck")

SVS_PASSENGER_WAGON 

render as a wagon passenger vehicle ("Combi")

SVS_PASSENGER_VAN 

render as a van

SVS_DELIVERY 

render as a delivery vehicle

SVS_TRANSPORT 

render as a transport vehicle

SVS_TRANSPORT_SEMITRAILER 

render as a semi-trailer transport vehicle ("Sattelschlepper")

SVS_TRANSPORT_1TRAILER 

render as a transport vehicle with one trailer

SVS_BUS 

render as a bus

SVS_BUS_CITY 

render as a city bus

SVS_BUS_CITY_FLEXIBLE 

render as a flexible city bus

SVS_BUS_OVERLAND 

render as a overland bus

SVS_BUS_TROLLEY 

render as a trolley bus

SVS_RAIL 

render as a rail

SVS_RAIL_LIGHT 

render as a light rail

SVS_RAIL_CITY 

render as a city rail

SVS_RAIL_SLOW 

render as a slow (passenger) train

SVS_RAIL_FAST 

render as a fast (passenger) train

SVS_RAIL_CARGO 

render as a cargo train

SVS_E_VEHICLE 

render as a (futuristic) e-vehicle

SVS_ANT 

render as a giant ant

Definition at line 50 of file SUMOVehicleClass.h.

Function Documentation

bool canParseVehicleClasses ( const std::string &  classes)

Checks whether the given string contains only known vehicle classes.

Definition at line 223 of file SUMOVehicleClass.cpp.

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

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 138 of file SUMOVehicleClass.cpp.

References getAllowedVehicleClassNamesList().

Referenced by 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 154 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 169 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 199 of file SUMOVehicleClass.cpp.

References SumoVehicleClassStrings, and SVC_UNKNOWN.

std::string getVehicleClassCompoundName ( int  id)

Definition at line 121 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 190 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 276 of file SUMOVehicleClass.cpp.

References TplConvert< E >::_2int(), SVE_HDV_12_1, SVE_HDV_3_1, SVE_HDV_6_1, SVE_HDV_A0_12_1, SVE_HDV_A0_3_1, SVE_HDV_A0_6_1, SVE_P_LDV_14_1, SVE_P_LDV_7_1, SVE_P_LDV_A0_14_1, SVE_P_LDV_A0_7_1, SVE_UNKNOWN, and SVE_ZERO_EMISSIONS.

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 310 of file SUMOVehicleClass.cpp.

References SVE_ZERO_EMISSIONS, and toString().

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 259 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 269 of file SUMOVehicleClass.cpp.

References SumoVehicleShapeStrings.

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

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 212 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 allowed Encodes 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 234 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 249 of file SUMOVehicleClass.cpp.

References getVehicleClassID().

Variable Documentation

const SUMOVehicleClass DEFAULT_VEH_CLASS

Referenced by ROVehicle::getVClass().

const SUMOReal DEFAULT_VEH_DECEL

Referenced by MSVehicleType::build().

const SumoXMLTag DEFAULT_VEH_FOLLOW_MODEL
const SUMOReal DEFAULT_VEH_HEIGHT
const std::string DEFAULT_VEH_LANE_CHANGE_MODEL
const SUMOReal DEFAULT_VEH_LENGTH
const SUMOReal DEFAULT_VEH_MAXSPEED
const SUMOReal DEFAULT_VEH_MINGAP
const SUMOVehicleShape DEFAULT_VEH_SHAPE
const SUMOReal DEFAULT_VEH_SPEEDDEV
const SUMOReal DEFAULT_VEH_SPEEDFACTOR
const SUMOReal DEFAULT_VEH_TAU

Referenced by MSVehicleType::build().

const SUMOReal DEFAULT_VEH_WIDTH
const int SUMOVehicleClass_MAX

Definition at line 112 of file SUMOVehicleClass.cpp.

Referenced by getPermissionEncoding().