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().