SUMOVehicleClass.h File Reference


Detailed Description

Author:
Daniel Krajzewicz
Date:
2006-01-24
Version:
Id
SUMOVehicleClass.h 8581 2010-04-10 13:52:27Z dkrajzew

Definition in file SUMOVehicleClass.h.

#include <config.h>
#include <string>
#include <vector>
#include <utils/common/UtilExceptions.h>

Go to the source code of this file.

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
}
 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_RAIL, SVS_RAIL_LIGHT, SVS_RAIL_CITY,
  SVS_RAIL_SLOW, SVS_RAIL_FAST, SVS_RAIL_CARGO, SVS_E_VEHICLE
}
 Definition of vehicle classes to differ between different appearences. More...

Functions

SUMOVehicleClass getVehicleClassID (const std::string &name) throw ()
 Returns the class id of the abstract class given by its name.
std::string getVehicleClassName (SUMOVehicleClass id) throw ()
 Returns the class name of the abstract class given by its id.
SUMOEmissionClass getVehicleEmissionTypeID (const std::string &name) throw (ProcessError)
 Returns the class id of the emission class given by its name.
std::string getVehicleEmissionTypeName (SUMOEmissionClass id) throw ()
 Returns the class name of the emission class given by its id.
SUMOVehicleShape getVehicleShapeID (const std::string &name) throw ()
 Returns the class id of the shape class given by its name.
std::string getVehicleShapeName (SUMOVehicleShape id) throw ()
 Returns the class name of the shape class given by its id.
void initGuiShapeNames () throw ()
void parseVehicleClasses (const std::vector< std::string > &classesS, std::vector< SUMOVehicleClass > &classes) throw ()
 Parses the given vector of class names into their enum-representation.
void parseVehicleClasses (const std::string &classesS, const std::string &allowedS, const std::string &disallowedS, std::vector< SUMOVehicleClass > &allowed, std::vector< SUMOVehicleClass > &disallowed, bool &warnedAboutDeprecatedVClass) throw ()
 Parses the given definition of allowed/disallowed vehicle classes into the given containers.

Variables

const std::string CF_MODEL_BKERNER = CF_MODEL_PREFIX + "BKerner"
const char *const CF_MODEL_BKERNER_STR = CF_MODEL_BKERNER.c_str()
const std::string CF_MODEL_IDM = CF_MODEL_PREFIX + "IDM"
const char *const CF_MODEL_IDM_STR = CF_MODEL_IDM.c_str()
const std::string CF_MODEL_KRAUSS = CF_MODEL_PREFIX + "Krauss"
const std::string CF_MODEL_KRAUSS_ORIG1 = CF_MODEL_PREFIX + "KraussOrig1"
const char *const CF_MODEL_KRAUSS_ORIG1_STR = CF_MODEL_KRAUSS_ORIG1.c_str()
const char *const CF_MODEL_KRAUSS_STR = CF_MODEL_KRAUSS.c_str()
const std::string CF_MODEL_PREFIX = "carFollowing-"
const std::string CF_MODEL_PWAGNER2009 = CF_MODEL_PREFIX + "PWagner2009"
const char *const CF_MODEL_PWAGNER2009_STR = CF_MODEL_PWAGNER2009.c_str()
const SUMOReal DEFAULT_VEH_ACCEL = (SUMOReal) 2.6
const SUMOVehicleClass DEFAULT_VEH_CLASS = SVC_UNKNOWN
const SUMOReal DEFAULT_VEH_DECEL = (SUMOReal) 4.5
const std::string DEFAULT_VEH_FOLLOW_MODEL = "Krauss"
const SUMOReal DEFAULT_VEH_GUIOFFSET = (SUMOReal) 2.5
const SUMOReal DEFAULT_VEH_GUIWIDTH = (SUMOReal) 2.
const std::string DEFAULT_VEH_LANE_CHANGE_MODEL = "dkrajzew2008"
const SUMOReal DEFAULT_VEH_LENGTH = (SUMOReal) 7.5
const SUMOReal DEFAULT_VEH_MAXSPEED = (SUMOReal) 70.
const SUMOReal DEFAULT_VEH_PROB = (SUMOReal) 1.
const SUMOVehicleShape DEFAULT_VEH_SHAPE = SVS_UNKNOWN
const SUMOReal DEFAULT_VEH_SIGMA = (SUMOReal) 0.5
const SUMOReal DEFAULT_VEH_SPEEDDEV = (SUMOReal) 0.
const SUMOReal DEFAULT_VEH_SPEEDFACTOR = (SUMOReal) 1.
const SUMOReal DEFAULT_VEH_TAU = (SUMOReal) 1.
const std::string DEFAULT_VTYPE_ID = "DEFAULT_VEHTYPE"


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 

Definition at line 182 of file SUMOVehicleClass.h.

00182                        {
00183     SVE_UNKNOWN = -1,
00184     // heavy duty vehicles; 3 clusters
00185     SVE_HDV_3_1 = 0,
00186     SVE_HDV_3_2,
00187     SVE_HDV_3_3,
00188     // heavy duty vehicles; 6 clusters
00189     SVE_HDV_6_1,
00190     SVE_HDV_6_2,
00191     SVE_HDV_6_3,
00192     SVE_HDV_6_4,
00193     SVE_HDV_6_5,
00194     SVE_HDV_6_6,
00195     // heavy duty vehicles; 12 clusters
00196     SVE_HDV_12_1,
00197     SVE_HDV_12_2,
00198     SVE_HDV_12_3,
00199     SVE_HDV_12_4,
00200     SVE_HDV_12_5,
00201     SVE_HDV_12_6,
00202     SVE_HDV_12_7,
00203     SVE_HDV_12_8,
00204     SVE_HDV_12_9,
00205     SVE_HDV_12_10,
00206     SVE_HDV_12_11,
00207     SVE_HDV_12_12,
00208     // passenger & light duty vehicles; 7 clusters
00209     SVE_P_LDV_7_1,
00210     SVE_P_LDV_7_2,
00211     SVE_P_LDV_7_3,
00212     SVE_P_LDV_7_4,
00213     SVE_P_LDV_7_5,
00214     SVE_P_LDV_7_6,
00215     SVE_P_LDV_7_7,
00216     // passenger & light duty vehicles; 14 clusters
00217     SVE_P_LDV_14_1,
00218     SVE_P_LDV_14_2,
00219     SVE_P_LDV_14_3,
00220     SVE_P_LDV_14_4,
00221     SVE_P_LDV_14_5,
00222     SVE_P_LDV_14_6,
00223     SVE_P_LDV_14_7,
00224     SVE_P_LDV_14_8,
00225     SVE_P_LDV_14_9,
00226     SVE_P_LDV_14_10,
00227     SVE_P_LDV_14_11,
00228     SVE_P_LDV_14_12,
00229     SVE_P_LDV_14_13,
00230     SVE_P_LDV_14_14,
00231     // no emissions
00232     SVE_ZERO_EMISSIONS
00233 };

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
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 117 of file SUMOVehicleClass.h.

00117                       {
00118     SVC_UNKNOWN = 0,
00119 
00121 
00122 
00124     SVC_PRIVATE = 1,
00126     SVC_PUBLIC_TRANSPORT = 2,
00128     SVC_PUBLIC_EMERGENCY = 4,
00130     SVC_PUBLIC_AUTHORITY = 8,
00132     SVC_PUBLIC_ARMY = 16,
00134     SVC_VIP = 32,
00136     SVC_IGNORING = 64,
00138 
00139 
00141 
00142 
00144     SVC_PASSENGER = 256,
00146     SVC_HOV = 512,
00148     SVC_TAXI = 1024,
00150     SVC_BUS = 2048,
00152     SVC_DELIVERY = 4096,
00154     SVC_TRANSPORT = 8192,
00156     SVC_LIGHTRAIL = 16384,
00158     SVC_CITYRAIL = 32768,
00160     SVC_RAIL_SLOW = 65536,
00162     SVC_RAIL_FAST = 131072,
00163 
00165     SVC_MOTORCYCLE = 262144,
00167     SVC_BICYCLE = 524288,
00169     SVC_PEDESTRIAN = 1048576
00171 
00172 };

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

Definition at line 44 of file SUMOVehicleClass.h.


Function Documentation

SUMOVehicleClass getVehicleClassID ( const std::string &  name  )  throw ()

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

Parameters:
[in] name The name of the abstract vehicle class
Returns:
The internal representation of this class

Definition at line 158 of file SUMOVehicleClass.cpp.

References sSVC_BICYCLE(), sSVC_BUS(), sSVC_CITYRAIL(), sSVC_DELIVERY(), sSVC_HOV(), sSVC_IGNORING(), sSVC_LIGHTRAIL(), sSVC_MOTORCYCLE(), sSVC_PASSENGER(), sSVC_PEDESTRIAN(), sSVC_PRIVATE(), sSVC_PUBLIC_ARMY(), sSVC_PUBLIC_AUTHORITY(), sSVC_PUBLIC_EMERGENCY(), sSVC_PUBLIC_TRANSPORT(), sSVC_RAIL_FAST(), sSVC_RAIL_SLOW(), sSVC_TAXI(), sSVC_TRANSPORT(), sSVC_VIP(), SVC_BICYCLE, SVC_BUS, SVC_CITYRAIL, SVC_DELIVERY, SVC_HOV, SVC_IGNORING, SVC_LIGHTRAIL, SVC_MOTORCYCLE, SVC_PASSENGER, SVC_PEDESTRIAN, SVC_PRIVATE, SVC_PUBLIC_ARMY, SVC_PUBLIC_AUTHORITY, SVC_PUBLIC_EMERGENCY, SVC_PUBLIC_TRANSPORT, SVC_RAIL_FAST, SVC_RAIL_SLOW, SVC_TAXI, SVC_TRANSPORT, SVC_UNKNOWN, and SVC_VIP.

Referenced by NBEdgeCont::applyOptions(), NIXMLEdgesHandler::myStartElement(), SUMOVehicleParserHelper::parseVehicleClass(), and parseVehicleClasses().

00158                                                  {
00159     SUMOVehicleClass ret = SVC_UNKNOWN;
00160     if (name.find(sSVC_PRIVATE)!=std::string::npos) {
00161         ret = (SUMOVehicleClass)((int) ret | (int) SVC_PRIVATE);
00162     }
00163     if (name.find(sSVC_PUBLIC_TRANSPORT)!=std::string::npos) {
00164         ret = (SUMOVehicleClass)((int) ret | (int) SVC_PUBLIC_TRANSPORT);
00165     }
00166     if (name.find(sSVC_PUBLIC_EMERGENCY)!=std::string::npos) {
00167         ret = (SUMOVehicleClass)((int) ret | (int) SVC_PUBLIC_EMERGENCY);
00168     }
00169     if (name.find(sSVC_PUBLIC_AUTHORITY)!=std::string::npos) {
00170         ret = (SUMOVehicleClass)((int) ret | (int) SVC_PUBLIC_AUTHORITY);
00171     }
00172     if (name.find(sSVC_PUBLIC_ARMY)!=std::string::npos) {
00173         ret = (SUMOVehicleClass)((int) ret | (int) SVC_PUBLIC_ARMY);
00174     }
00175     if (name.find(sSVC_VIP)!=std::string::npos) {
00176         ret = (SUMOVehicleClass)((int) ret | (int) SVC_VIP);
00177     }
00178     if (name.find(sSVC_IGNORING)!=std::string::npos) {
00179         ret = (SUMOVehicleClass)((int) ret | (int) SVC_IGNORING);
00180     }
00181 
00182 
00183     if (name.find(sSVC_PASSENGER)!=std::string::npos) {
00184         ret = (SUMOVehicleClass)((int) ret | (int) SVC_PASSENGER);
00185     }
00186     if (name.find(sSVC_HOV)!=std::string::npos) {
00187         ret = (SUMOVehicleClass)((int) ret | (int) SVC_HOV);
00188     }
00189     if (name.find(sSVC_TAXI)!=std::string::npos) {
00190         ret = (SUMOVehicleClass)((int) ret | (int) SVC_TAXI);
00191     }
00192     if (name.find(sSVC_BUS)!=std::string::npos) {
00193         ret = (SUMOVehicleClass)((int) ret | (int) SVC_BUS);
00194     }
00195     if (name.find(sSVC_DELIVERY)!=std::string::npos) {
00196         ret = (SUMOVehicleClass)((int) ret | (int) SVC_DELIVERY);
00197     }
00198     if (name.find(sSVC_TRANSPORT)!=std::string::npos) {
00199         ret = (SUMOVehicleClass)((int) ret | (int) SVC_TRANSPORT);
00200     }
00201     if (name.find(sSVC_LIGHTRAIL)!=std::string::npos) {
00202         ret = (SUMOVehicleClass)((int) ret | (int) SVC_LIGHTRAIL);
00203     }
00204     if (name.find(sSVC_CITYRAIL)!=std::string::npos) {
00205         ret = (SUMOVehicleClass)((int) ret | (int) SVC_CITYRAIL);
00206     }
00207     if (name.find(sSVC_RAIL_SLOW)!=std::string::npos) {
00208         ret = (SUMOVehicleClass)((int) ret | (int) SVC_RAIL_SLOW);
00209     }
00210     if (name.find(sSVC_RAIL_FAST)!=std::string::npos) {
00211         ret = (SUMOVehicleClass)((int) ret | (int) SVC_RAIL_FAST);
00212     }
00213     if (name.find(sSVC_MOTORCYCLE)!=std::string::npos) {
00214         ret = (SUMOVehicleClass)((int) ret | (int) SVC_MOTORCYCLE);
00215     }
00216     if (name.find(sSVC_BICYCLE)!=std::string::npos) {
00217         ret = (SUMOVehicleClass)((int) ret | (int) SVC_BICYCLE);
00218     }
00219     if (name.find(sSVC_PEDESTRIAN)!=std::string::npos) {
00220         ret = (SUMOVehicleClass)((int) ret | (int) SVC_PEDESTRIAN);
00221     }
00222 
00223     return ret;
00224 }

std::string getVehicleClassName ( SUMOVehicleClass  id  )  throw ()

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

Parameters:
[in] id The id of the abstract vehicle class
Returns:
The string representation of this class

Definition at line 85 of file SUMOVehicleClass.cpp.

References sSVC_BICYCLE(), sSVC_BUS(), sSVC_CITYRAIL(), sSVC_DELIVERY(), sSVC_HOV(), sSVC_IGNORING(), sSVC_LIGHTRAIL(), sSVC_MOTORCYCLE(), sSVC_PASSENGER(), sSVC_PEDESTRIAN(), sSVC_PRIVATE(), sSVC_PUBLIC_ARMY(), sSVC_PUBLIC_AUTHORITY(), sSVC_PUBLIC_EMERGENCY(), sSVC_PUBLIC_TRANSPORT(), sSVC_RAIL_FAST(), sSVC_RAIL_SLOW(), sSVC_TAXI(), sSVC_TRANSPORT(), sSVC_VIP(), SVC_BICYCLE, SVC_BUS, SVC_CITYRAIL, SVC_DELIVERY, SVC_HOV, SVC_IGNORING, SVC_LIGHTRAIL, SVC_MOTORCYCLE, SVC_PASSENGER, SVC_PEDESTRIAN, SVC_PRIVATE, SVC_PUBLIC_ARMY, SVC_PUBLIC_AUTHORITY, SVC_PUBLIC_EMERGENCY, SVC_PUBLIC_TRANSPORT, SVC_RAIL_FAST, SVC_RAIL_SLOW, SVC_TAXI, SVC_TRANSPORT, and SVC_VIP.

Referenced by TraCIServerAPI_VehicleType::processGet(), TraCIServerAPI_Lane::processGet(), SUMOVTypeParameter::write(), NBEdge::writeLane(), and NBEdge::writeLanesPlain().

00085                                                  {
00086     std::string ret;
00087     if ((id&SVC_PRIVATE)!=0) {
00088         ret += ("|" + sSVC_PRIVATE);
00089     }
00090     if ((id&SVC_PUBLIC_TRANSPORT)!=0) {
00091         ret += ("|" + sSVC_PUBLIC_TRANSPORT);
00092     }
00093     if ((id&SVC_PUBLIC_EMERGENCY)!=0) {
00094         ret += ("|" + sSVC_PUBLIC_EMERGENCY);
00095     }
00096     if ((id&SVC_PUBLIC_AUTHORITY)!=0) {
00097         ret += ("|" + sSVC_PUBLIC_AUTHORITY);
00098     }
00099     if ((id&SVC_PUBLIC_ARMY)!=0) {
00100         ret += ("|" + sSVC_PUBLIC_ARMY);
00101     }
00102     if ((id&SVC_VIP)!=0) {
00103         ret += ("|" + sSVC_VIP);
00104     }
00105     if ((id&SVC_IGNORING)!=0) {
00106         ret += ("|" + sSVC_IGNORING);
00107     }
00108 
00109     if ((id&SVC_PASSENGER)!=0) {
00110         ret += ("|" + sSVC_PASSENGER);
00111     }
00112     if ((id&SVC_HOV)!=0) {
00113         ret += ("|" + sSVC_HOV);
00114     }
00115     if ((id&SVC_TAXI)!=0) {
00116         ret += ("|" + sSVC_TAXI);
00117     }
00118     if ((id&SVC_BUS)!=0) {
00119         ret += ("|" + sSVC_BUS);
00120     }
00121     if ((id&SVC_DELIVERY)!=0) {
00122         ret += ("|" + sSVC_DELIVERY);
00123     }
00124     if ((id&SVC_TRANSPORT)!=0) {
00125         ret += ("|" + sSVC_TRANSPORT);
00126     }
00127     if ((id&SVC_LIGHTRAIL)!=0) {
00128         ret += ("|" + sSVC_LIGHTRAIL);
00129     }
00130     if ((id&SVC_CITYRAIL)!=0) {
00131         ret += ("|" + sSVC_CITYRAIL);
00132     }
00133     if ((id&SVC_RAIL_SLOW)!=0) {
00134         ret += ("|" + sSVC_RAIL_SLOW);
00135     }
00136     if ((id&SVC_RAIL_FAST)!=0) {
00137         ret += ("|" + sSVC_RAIL_FAST);
00138     }
00139     if ((id&SVC_MOTORCYCLE)!=0) {
00140         ret += ("|" + sSVC_MOTORCYCLE);
00141     }
00142     if ((id&SVC_BICYCLE)!=0) {
00143         ret += ("|" + sSVC_BICYCLE);
00144     }
00145     if ((id&SVC_PEDESTRIAN)!=0) {
00146         ret += ("|" + sSVC_PEDESTRIAN);
00147     }
00148 
00149     if (ret.length()>0) {
00150         return ret.substr(1);
00151     } else {
00152         return ret;
00153     }
00154 }

SUMOEmissionClass getVehicleEmissionTypeID ( const std::string &  name  )  throw (ProcessError)

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

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

Definition at line 333 of file SUMOVehicleClass.cpp.

References TplConvert< E >::_2int(), SVE_HDV_12_1, SVE_HDV_3_1, SVE_HDV_6_1, SVE_P_LDV_14_1, SVE_P_LDV_7_1, SVE_UNKNOWN, and SVE_ZERO_EMISSIONS.

Referenced by SUMOVehicleParserHelper::parseEmissionClass().

00333                                                                     {
00334     try {
00335         if (name=="") {
00336             return SVE_UNKNOWN;
00337         } else if (name=="zero") {
00338             return SVE_ZERO_EMISSIONS;
00339         } else if (name.find("HDV_3_")==0) {
00340             return (SUMOEmissionClass)(SVE_HDV_3_1 - 1 + TplConvert<char>::_2int(name.substr(name.rfind("_")+1).c_str()));
00341         } else if (name.find("HDV_6_")==0) {
00342             return (SUMOEmissionClass)(SVE_HDV_6_1 - 1 + TplConvert<char>::_2int(name.substr(name.rfind("_")+1).c_str()));
00343         } else if (name.find("HDV_12_")==0) {
00344             return (SUMOEmissionClass)(SVE_HDV_12_1 - 1 + TplConvert<char>::_2int(name.substr(name.rfind("_")+1).c_str()));
00345         } else if (name.find("P_7_")==0) {
00346             return (SUMOEmissionClass)(SVE_P_LDV_7_1 - 1 + TplConvert<char>::_2int(name.substr(name.rfind("_")+1).c_str()));
00347         } else if (name.find("P_14_")==0) {
00348             return (SUMOEmissionClass)(SVE_P_LDV_14_1 - 1 + TplConvert<char>::_2int(name.substr(name.rfind("_")+1).c_str()));
00349         }
00350     } catch (NumberFormatException &) {
00351         throw ProcessError("Unknown emission type '" + name + "'.");
00352     }
00353     return SVE_UNKNOWN;
00354 }

std::string getVehicleEmissionTypeName ( SUMOEmissionClass  id  )  throw ()

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

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

Definition at line 358 of file SUMOVehicleClass.cpp.

References SVE_ZERO_EMISSIONS, and toString().

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

00358                                                          {
00359     if (id==SVE_ZERO_EMISSIONS) {
00360         return "zero";
00361     }
00362     if (id<0) {
00363         return "";
00364     } else if (id<3) {
00365         return "HDV_3_" + toString(int(id));
00366     } else if (id<3+6) {
00367         return "HDV_6_" + toString(int(id-3));
00368     } else if (id<3+6+12) {
00369         return "HDV_12_" + toString(int(id-3-6));
00370     } else if (id<3+6+12+7) {
00371         return "P_7_" + toString(int(id-3-6-12));
00372     } else if (id<3+6+12+7+14) {
00373         return "P_14_" + toString(int(id-3-6-12-7));
00374     }
00375     return "";
00376 }

SUMOVehicleShape getVehicleShapeID ( const std::string &  name  )  throw ()

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

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

!!throw InvalidArgument("Unknown vehicle shape '" + name + "' occured.");

Definition at line 318 of file SUMOVehicleClass.cpp.

References gVehicleShapeName2ID, and SVS_UNKNOWN.

Referenced by SUMOVehicleParserHelper::parseGuiShape().

00318                                                  {
00319     if (name=="") {
00320         return SVS_UNKNOWN;
00321     }
00322     if (gVehicleShapeName2ID.find(name)!=gVehicleShapeName2ID.end()) {
00323         return gVehicleShapeName2ID[name];
00324     }
00325     return SVS_UNKNOWN;
00327 }

std::string getVehicleShapeName ( SUMOVehicleShape  id  )  throw ()

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

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

Definition at line 309 of file SUMOVehicleClass.cpp.

References gVehicleShapeID2Name, and SVS_UNKNOWN.

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

00309                                                  {
00310     if (id==SVS_UNKNOWN) {
00311         return "";
00312     }
00313     return gVehicleShapeID2Name[id];
00314 }

void initGuiShapeNames (  )  throw ()

Definition at line 281 of file SUMOVehicleClass.cpp.

References addToShapeNames(), SVS_BICYCLE, SVS_BUS, SVS_BUS_CITY, SVS_BUS_CITY_FLEXIBLE, SVS_BUS_OVERLAND, SVS_DELIVERY, SVS_E_VEHICLE, SVS_MOTORCYCLE, SVS_PASSENGER, SVS_PASSENGER_HATCHBACK, SVS_PASSENGER_SEDAN, SVS_PASSENGER_VAN, SVS_PASSENGER_WAGON, SVS_PEDESTRIAN, SVS_RAIL, SVS_RAIL_CARGO, SVS_RAIL_CITY, SVS_RAIL_FAST, SVS_RAIL_LIGHT, SVS_RAIL_SLOW, SVS_TRANSPORT, SVS_TRANSPORT_1TRAILER, and SVS_TRANSPORT_SEMITRAILER.

Referenced by main().

00281                             {
00282     addToShapeNames(SVS_PEDESTRIAN, "pedestrian");
00283     addToShapeNames(SVS_BICYCLE, "bicycle");
00284     addToShapeNames(SVS_MOTORCYCLE, "motorcycle");
00285     addToShapeNames(SVS_PASSENGER, "passenger");
00286     addToShapeNames(SVS_PASSENGER_SEDAN, "passenger/sedan");
00287     addToShapeNames(SVS_PASSENGER_HATCHBACK, "passenger/hatchback");
00288     addToShapeNames(SVS_PASSENGER_WAGON, "passenger/wagon");
00289     addToShapeNames(SVS_PASSENGER_VAN, "passenger/van");
00290     addToShapeNames(SVS_DELIVERY, "delivery");
00291     addToShapeNames(SVS_TRANSPORT, "transport");
00292     addToShapeNames(SVS_TRANSPORT_SEMITRAILER, "transport/semitrailer");
00293     addToShapeNames(SVS_TRANSPORT_1TRAILER, "transport/trailer");
00294     addToShapeNames(SVS_BUS, "bus");
00295     addToShapeNames(SVS_BUS_CITY, "bus/city");
00296     addToShapeNames(SVS_BUS_CITY_FLEXIBLE, "bus/flexible");
00297     addToShapeNames(SVS_BUS_OVERLAND, "bus/overland");
00298     addToShapeNames(SVS_RAIL, "rail");
00299     addToShapeNames(SVS_RAIL_LIGHT, "rail/light");
00300     addToShapeNames(SVS_RAIL_CITY, "rail/city");
00301     addToShapeNames(SVS_RAIL_SLOW, "rail/slow");
00302     addToShapeNames(SVS_RAIL_FAST, "rail/fast");
00303     addToShapeNames(SVS_RAIL_CARGO, "rail/cargo");
00304     addToShapeNames(SVS_E_VEHICLE, "evehicle");
00305 }

void parseVehicleClasses ( const std::vector< std::string > &  classesS,
std::vector< SUMOVehicleClass > &  classes 
) throw ()

Parses the given vector of class names into their enum-representation.

Parameters:
[in] classesS The names vector to parse
[out] classes The parsed classes

Definition at line 261 of file SUMOVehicleClass.cpp.

References getVehicleClassID().

00262                                                                   {
00263     for (std::vector<std::string>::const_iterator i=classesS.begin(); i!=classesS.end(); ++i) {
00264         classes.push_back(getVehicleClassID(*i));
00265     }
00266 }

void parseVehicleClasses ( const std::string &  classesS,
const std::string &  allowedS,
const std::string &  disallowedS,
std::vector< SUMOVehicleClass > &  allowed,
std::vector< SUMOVehicleClass > &  disallowed,
bool warnedAboutDeprecatedVClass 
) throw ()

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

Parameters:
[in] classesS Definition which classes are (dis-)allowed (old "vclasses" style)
[in] allowedS Definition which classes are allowed
[in] disallowedS Definition which classes are not allowed
[out] allowed The vector of allowed vehicle classes to fill
[out] disallowed The vector of disallowed vehicle classes to fill
[in,out] warnedAboutDeprecatedVClass Whether a warning about having used the deprecated definition was printed once

Definition at line 228 of file SUMOVehicleClass.cpp.

References getVehicleClassID(), MsgHandler::getWarningInstance(), StringTokenizer::hasNext(), MsgHandler::inform(), and StringTokenizer::next().

Referenced by NLHandler::addLane(), RONetHandler::parseLane(), TraCIServerAPI_Lane::processSet(), and TraCIServerAPI_Edge::processSet().

00233                                                                {
00234     if (classesS.length()!=0) {
00235         if (!warnedAboutDeprecatedVClass) {
00236             MsgHandler::getWarningInstance()->inform("The vclasses attribute is deprecated. Please rebuilt your network.");
00237             warnedAboutDeprecatedVClass = true;
00238         }
00239         StringTokenizer st(classesS, ";");
00240         while (st.hasNext()) {
00241             std::string next = st.next();
00242             if (next[0]=='-') {
00243                 disallowed.push_back(getVehicleClassID(next.substr(1)));
00244             } else {
00245                 allowed.push_back(getVehicleClassID(next));
00246             }
00247         }
00248     }
00249     StringTokenizer sta(allowedS, " ");
00250     while (sta.hasNext()) {
00251         allowed.push_back(getVehicleClassID(sta.next()));
00252     }
00253     StringTokenizer std(disallowedS, " ");
00254     while (std.hasNext()) {
00255         disallowed.push_back(getVehicleClassID(std.next()));
00256     }
00257 }


Variable Documentation

const std::string CF_MODEL_BKERNER = CF_MODEL_PREFIX + "BKerner"

Definition at line 331 of file SUMOVehicleClass.h.

Referenced by SUMOVTypeParameter::write().

const char* const CF_MODEL_BKERNER_STR = CF_MODEL_BKERNER.c_str()

Definition at line 332 of file SUMOVehicleClass.h.

const std::string CF_MODEL_IDM = CF_MODEL_PREFIX + "IDM"

Definition at line 323 of file SUMOVehicleClass.h.

Referenced by SUMOVTypeParameter::write().

const char* const CF_MODEL_IDM_STR = CF_MODEL_IDM.c_str()

Definition at line 324 of file SUMOVehicleClass.h.

const std::string CF_MODEL_KRAUSS = CF_MODEL_PREFIX + "Krauss"

Definition at line 325 of file SUMOVehicleClass.h.

Referenced by SUMOVTypeParameter::write().

const std::string CF_MODEL_KRAUSS_ORIG1 = CF_MODEL_PREFIX + "KraussOrig1"

Definition at line 327 of file SUMOVehicleClass.h.

Referenced by SUMOVTypeParameter::write().

const char* const CF_MODEL_KRAUSS_ORIG1_STR = CF_MODEL_KRAUSS_ORIG1.c_str()

Definition at line 328 of file SUMOVehicleClass.h.

const char* const CF_MODEL_KRAUSS_STR = CF_MODEL_KRAUSS.c_str()

Definition at line 326 of file SUMOVehicleClass.h.

const std::string CF_MODEL_PREFIX = "carFollowing-"

Definition at line 322 of file SUMOVehicleClass.h.

const std::string CF_MODEL_PWAGNER2009 = CF_MODEL_PREFIX + "PWagner2009"

Definition at line 329 of file SUMOVehicleClass.h.

Referenced by SUMOVTypeParameter::write().

const char* const CF_MODEL_PWAGNER2009_STR = CF_MODEL_PWAGNER2009.c_str()

Definition at line 330 of file SUMOVehicleClass.h.

const SUMOReal DEFAULT_VEH_ACCEL = (SUMOReal) 2.6

Definition at line 339 of file SUMOVehicleClass.h.

Referenced by MSVehicleType::build().

const SUMOVehicleClass DEFAULT_VEH_CLASS = SVC_UNKNOWN

Definition at line 344 of file SUMOVehicleClass.h.

Referenced by ROEdge::prohibits().

const SUMOReal DEFAULT_VEH_DECEL = (SUMOReal) 4.5

Definition at line 340 of file SUMOVehicleClass.h.

Referenced by MSVehicleType::build().

const std::string DEFAULT_VEH_FOLLOW_MODEL = "Krauss"

Definition at line 350 of file SUMOVehicleClass.h.

const SUMOReal DEFAULT_VEH_GUIOFFSET = (SUMOReal) 2.5

Definition at line 349 of file SUMOVehicleClass.h.

const SUMOReal DEFAULT_VEH_GUIWIDTH = (SUMOReal) 2.

Definition at line 348 of file SUMOVehicleClass.h.

const std::string DEFAULT_VEH_LANE_CHANGE_MODEL = "dkrajzew2008"

Definition at line 351 of file SUMOVehicleClass.h.

const SUMOReal DEFAULT_VEH_LENGTH = (SUMOReal) 7.5

Definition at line 342 of file SUMOVehicleClass.h.

const SUMOReal DEFAULT_VEH_MAXSPEED = (SUMOReal) 70.

Definition at line 338 of file SUMOVehicleClass.h.

const SUMOReal DEFAULT_VEH_PROB = (SUMOReal) 1.

Definition at line 345 of file SUMOVehicleClass.h.

Referenced by MSRouteHandler::openRoute().

const SUMOVehicleShape DEFAULT_VEH_SHAPE = SVS_UNKNOWN

Definition at line 352 of file SUMOVehicleClass.h.

const SUMOReal DEFAULT_VEH_SIGMA = (SUMOReal) 0.5

Definition at line 341 of file SUMOVehicleClass.h.

Referenced by MSVehicleType::build().

const SUMOReal DEFAULT_VEH_SPEEDDEV = (SUMOReal) 0.

Definition at line 347 of file SUMOVehicleClass.h.

const SUMOReal DEFAULT_VEH_SPEEDFACTOR = (SUMOReal) 1.

Definition at line 346 of file SUMOVehicleClass.h.

const SUMOReal DEFAULT_VEH_TAU = (SUMOReal) 1.

Definition at line 343 of file SUMOVehicleClass.h.

Referenced by MSVehicleType::build().

const std::string DEFAULT_VTYPE_ID = "DEFAULT_VEHTYPE"


Generated on Wed May 5 00:06:39 2010 for Sumo - Simulation of Urban MObility by  doxygen 1.5.6