SUMO - Simulation of Urban MObility
MSVehicleType Class Reference

The car-following model and parameter. More...

#include <MSVehicleType.h>

Public Member Functions

bool amVehicleSpecific () const
 Returns whether this type belongs to a single vehicle only (was modified)
 MSVehicleType (const std::string &id, const SUMOReal lengthWithGap, const SUMOReal minGap, const SUMOReal maxSpeed, const SUMOReal prob, const SUMOReal speedFactor, const SUMOReal speedDev, const SUMOVehicleClass vclass, const SUMOEmissionClass emissionClass, const SUMOReal width, const SUMOReal height, const SUMOVehicleShape shape, const std::string osgFile, const std::string &lcModel, const RGBColor &c)
 Constructor.
void saveState (std::ostream &os)
 Saves the states of a vehicle.
virtual ~MSVehicleType ()
 Destructor.
Atomar getter for simulation
const std::string & getID () const
 Returns the name of the vehicle type.
SUMOReal getLength () const
 Get vehicle's length [m].
SUMOReal getLengthWithGap () const
 Get vehicle's length including the minimum gap [m].
SUMOReal getMinGap () const
 Get the free space in front of vehicles of this class.
const MSCFModelgetCarFollowModel () const
 Returns the vehicle type's car following model definition (const version)
MSCFModelgetCarFollowModel ()
 Returns the vehicle type's car following model definition (non-const version)
SUMOReal getMaxSpeed () const
 Get vehicle's maximum speed [m/s].
SUMOReal hasSpeedDeviation () const
 Get vehicle's maximum speed [m/s].
SUMOReal getMaxSpeedWithDeviation (SUMOReal referenceSpeed) const
 Get vehicle's maximum speed [m/s] drawn from a normal distribution.
SUMOReal getDefaultProbability () const
 Get the default probability of this vehicle type.
SUMOVehicleClass getVehicleClass () const
 Get this vehicle type's vehicle class.
SUMOEmissionClass getEmissionClass () const
 Get this vehicle type's emission class.
const RGBColorgetColor () const
 Returns this type's color.
SUMOReal getSpeedFactor () const
 Returns this type's speed factor.
SUMOReal getSpeedDeviation () const
 Returns this type's speed deviation.
Atomar getter for visualization
SUMOReal getWidth () const
 Get the width which vehicles of this class shall have when being drawn.
SUMOReal getHeight () const
 Get the height which vehicles of this class shall have when being drawn.
SUMOVehicleShape getGuiShape () const
 Get this vehicle type's shape.
std::string getOSGFile () const
 Get this vehicle type's 3D model file name.
Setter methods
void setLength (const SUMOReal &length)
 Set a new value for this type's length.
void setMinGap (const SUMOReal &minGap)
 Set a new value for this type's minimum gap.
void setMaxSpeed (const SUMOReal &maxSpeed)
 Set a new value for this type's maximum speed.
void setVClass (SUMOVehicleClass vclass)
 Set a new value for this type's vehicle class.
void setDefaultProbability (const SUMOReal &prob)
 Set a new value for this type's default probability.
void setSpeedFactor (const SUMOReal &factor)
 Set a new value for this type's speed factor.
void setSpeedDeviation (const SUMOReal &dev)
 Set a new value for this type's speed deviation.
void setEmissionClass (SUMOEmissionClass eclass)
 Set a new value for this type's emission class.
void setColor (const RGBColor &color)
 Set a new value for this type's color.
void setWidth (const SUMOReal &width)
 Set a new value for this type's width.
void setShape (SUMOVehicleShape shape)
 Set a new value for this type's shape.

Static Public Member Functions

Static methods for building vehicle types
static MSVehicleTypebuild (SUMOVTypeParameter &from)
 Builds the microsim vehicle type described by the given parameter.
static MSVehicleTypebuild (const std::string &id, const MSVehicleType *from)
 Duplicates the microsim vehicle type giving it a the given id.

Private Member Functions

 MSVehicleType (const MSVehicleType &)
 Invalidated copy constructor.
MSVehicleTypeoperator= (const MSVehicleType &)
 Invalidated assignment operator.

Private Attributes

MSCFModelmyCarFollowModel
 ID of the car following model.
RGBColor myColor
 The color.
SUMOReal myDefaultProbability
 The probability when being added to a distribution without an explicit probability.
SUMOEmissionClass myEmissionClass
 The emission class of such vehicles.
std::string myID
 Unique ID.
std::string myLaneChangeModel
 ID of the lane change model.
SUMOReal myLength
 Vehicles' length [m].
SUMOReal myMaxSpeed
 Vehicles' maximum speed [m/s].
SUMOReal myMinGap
 This class' free space in front of the vehicle itself.
const MSVehicleTypemyOriginalType
 The original type.
SUMOReal mySpeedDev
 The standard deviation for speed variations.
SUMOReal mySpeedFactor
 The factor by which the maximum speed may deviate from the allowed max speed on the street.
SUMOVehicleClass myVehicleClass
 The vehicles' class.
Values for drawing this class' vehicles
SUMOReal myWidth
 This class' width.
SUMOReal myHeight
 This class' height.
SUMOVehicleShape myShape
 This class' shape.
std::string myOSGFile
 This class' model file.

Detailed Description

The car-following model and parameter.

MSVehicleType stores the parameter of a single vehicle type and methods that use these for computing the vehicle's car-following behavior

It is assumed that within the simulation many vehicles are using the same vehicle type, quite common is using only one vehicle type for all vehicles.

You can think of it like of having a vehicle type for each VW Golf or Ford Mustang in your simulation while the car instances just refer to it.

Definition at line 73 of file MSVehicleType.h.


Constructor & Destructor Documentation

MSVehicleType::MSVehicleType ( const std::string &  id,
const SUMOReal  lengthWithGap,
const SUMOReal  minGap,
const SUMOReal  maxSpeed,
const SUMOReal  prob,
const SUMOReal  speedFactor,
const SUMOReal  speedDev,
const SUMOVehicleClass  vclass,
const SUMOEmissionClass  emissionClass,
const SUMOReal  width,
const SUMOReal  height,
const SUMOVehicleShape  shape,
const std::string  osgFile,
const std::string &  lcModel,
const RGBColor c 
)

Constructor.

Parameters:
[in]idThe vehicle type's id
[in]lengthThe length of vehicles that of this type
[in]minGapThe free space in front of the vehicles of this class
[in]maxSpeedThe maximum velocity vehicles of this type may drive with
[in]probThe probability of this vehicle type
[in]speedFactorThe speed factor to scale maximum speed with
[in]speedDevThe speed deviation
[in]vclassThe class vehicles of this type belong to
[in]emissionClassThe emission class vehicles of this type belong to
[in]widthThe width of the vehicles when being drawn
[in]heightThe height of the vehicles when being drawn
[in]shapeHow vehicles of this class shall be drawn
[in]osgFileModel file of this class
[in]lcModelName of the lane-change model to use
[in]cColor of this vehicle type

Definition at line 57 of file MSVehicleType.cpp.

References getMaxSpeed(), and myLength.

Referenced by build().

Destructor.

Definition at line 79 of file MSVehicleType.cpp.

References myCarFollowModel.

Invalidated copy constructor.


Member Function Documentation

Returns whether this type belongs to a single vehicle only (was modified)

Returns:
Whether this vehicle type is based on a differen one, and belongs to one vehicle only

Definition at line 406 of file MSVehicleType.h.

References myOriginalType.

Referenced by MSVehicle::replaceVehicleType(), and MSVehicle::~MSVehicle().

Builds the microsim vehicle type described by the given parameter.

Parameters:
[in]fromThe vehicle type description
Returns:
The built vehicle type
Exceptions:
ProcessErroron false values (not et used)

Definition at line 211 of file MSVehicleType.cpp.

References SUMOVTypeParameter::cfModel, SUMOVTypeParameter::color, DEFAULT_VEH_ACCEL, DEFAULT_VEH_DECEL, DEFAULT_VEH_SIGMA, DEFAULT_VEH_TAU, SUMOVTypeParameter::defaultProbability, SUMOVTypeParameter::emissionClass, SUMOVTypeParameter::get(), SUMOVTypeParameter::height, SUMOVTypeParameter::id, SUMOVTypeParameter::lcModel, SUMOVTypeParameter::length, SUMOVTypeParameter::maxSpeed, SUMOVTypeParameter::minGap, MSVehicleType(), myCarFollowModel, SUMOVTypeParameter::osgFile, SUMOVTypeParameter::shape, SUMOVTypeParameter::speedDev, SUMOVTypeParameter::speedFactor, SUMO_ATTR_ACCEL, SUMO_ATTR_CF_IDM_DELTA, SUMO_ATTR_CF_IDM_STEPPING, SUMO_ATTR_CF_IDMM_ADAPT_FACTOR, SUMO_ATTR_CF_IDMM_ADAPT_TIME, SUMO_ATTR_CF_KERNER_PHI, SUMO_ATTR_CF_PWAGNER2009_APPROB, SUMO_ATTR_CF_PWAGNER2009_TAULAST, SUMO_ATTR_CF_WIEDEMANN_ESTIMATION, SUMO_ATTR_CF_WIEDEMANN_SECURITY, SUMO_ATTR_DECEL, SUMO_ATTR_K, SUMO_ATTR_SIGMA, SUMO_ATTR_TAU, SUMO_TAG_CF_BKERNER, SUMO_TAG_CF_IDM, SUMO_TAG_CF_IDMM, SUMO_TAG_CF_KRAUSS, SUMO_TAG_CF_KRAUSS_ORIG1, SUMO_TAG_CF_PWAGNER2009, SUMO_TAG_CF_WIEDEMANN, SUMOVTypeParameter::vehicleClass, and SUMOVTypeParameter::width.

Referenced by TraCIServerAPI_Vehicle::getSingularType(), MSVehicleControl::MSVehicleControl(), and MSRouteHandler::myEndElement().

MSVehicleType * MSVehicleType::build ( const std::string &  id,
const MSVehicleType from 
) [static]

Duplicates the microsim vehicle type giving it a the given id.

Parameters:
[in]idThe new id of the type
[in]fromThe vehicle type
Returns:
The built vehicle type

Definition at line 281 of file MSVehicleType.cpp.

References MSCFModel::duplicate(), MSVehicleType(), myCarFollowModel, myColor, myDefaultProbability, myEmissionClass, myHeight, myLaneChangeModel, myLength, myMaxSpeed, myMinGap, myOriginalType, myOSGFile, myShape, mySpeedDev, mySpeedFactor, myVehicleClass, and myWidth.

const MSCFModel& MSVehicleType::getCarFollowModel ( ) const [inline]

Returns the vehicle type's car following model definition (const version)

Returns:
The vehicle type's car following model definition

Definition at line 147 of file MSVehicleType.h.

References myCarFollowModel.

Referenced by MSVehicle::getCarFollowModel(), TraCIServerAPI_VehicleType::getVariable(), MSVehicle::moveChecked(), MSVehicle::MSVehicle(), TraCIServerAPI_VehicleType::setVariable(), MSVehicle::vsafeCriticalCont(), and MSMeanData_HBEFA::MSLaneMeanDataValues::write().

Returns the vehicle type's car following model definition (non-const version)

Returns:
The vehicle type's car following model definition

Definition at line 155 of file MSVehicleType.h.

References myCarFollowModel.

const RGBColor& MSVehicleType::getColor ( ) const [inline]

Returns this type's color.

Returns:
The color of this type

Definition at line 218 of file MSVehicleType.h.

References myColor.

Referenced by TraCIServerAPI_VehicleType::getVariable().

Get the default probability of this vehicle type.

Returns:
The probability to use this type

Definition at line 192 of file MSVehicleType.h.

References myDefaultProbability.

Referenced by MSRouteHandler::myEndElement(), and MSRouteHandler::openVehicleTypeDistribution().

Get this vehicle type's shape.

Returns:
The shape of this vehicle type
See also:
SUMOVehicleShape

Definition at line 262 of file MSVehicleType.h.

References myShape.

Referenced by drawAction_drawVehicleAsPoly(), and TraCIServerAPI_VehicleType::getVariable().

SUMOReal MSVehicleType::getHeight ( ) const [inline]

Get the height which vehicles of this class shall have when being drawn.

Returns:
The height of this type's vehicles

Definition at line 254 of file MSVehicleType.h.

References myHeight.

SUMOReal MSVehicleType::getLength ( ) const [inline]
SUMOReal MSVehicleType::getMaxSpeedWithDeviation ( SUMOReal  referenceSpeed) const [inline]

Get vehicle's maximum speed [m/s] drawn from a normal distribution.

The speed is calculated relative to the reference speed (which is usually the maximum allowed speed on a lane or edge).

Returns:
The maximum speed (in m/s) of vehicles of this class

Definition at line 181 of file MSVehicleType.h.

References MAX3(), MIN3(), myMaxSpeed, mySpeedDev, mySpeedFactor, RandHelper::randNorm(), and SUMOReal.

Referenced by MSBaseVehicle::adaptMaxSpeed().

std::string MSVehicleType::getOSGFile ( ) const [inline]

Get this vehicle type's 3D model file name.

Returns:
The model file name of this vehicle type

Definition at line 269 of file MSVehicleType.h.

References myOSGFile.

Returns this type's speed deviation.

Returns:
The speed deviation of this type

Definition at line 234 of file MSVehicleType.h.

References mySpeedDev.

Referenced by TraCIServerAPI_VehicleType::getVariable().

Returns this type's speed factor.

Returns:
The speed factor of this type

Definition at line 226 of file MSVehicleType.h.

References mySpeedFactor.

Referenced by TraCIServerAPI_VehicleType::getVariable().

SUMOReal MSVehicleType::getWidth ( ) const [inline]

Get the width which vehicles of this class shall have when being drawn.

Returns:
The width of this type's vehicles

Definition at line 247 of file MSVehicleType.h.

References myWidth.

Referenced by drawAction_drawVehicleAsBoxPlus(), drawAction_drawVehicleAsPoly(), drawAction_drawVehicleAsTrianglePlus(), drawAction_drawVehicleBlinker(), drawAction_drawVehicleBrakeLight(), and TraCIServerAPI_VehicleType::getVariable().

Get vehicle's maximum speed [m/s].

Returns:
The maximum speed (in m/s) of vehicles of this class

Definition at line 170 of file MSVehicleType.h.

References mySpeedDev, and mySpeedFactor.

Referenced by MSBaseVehicle::adaptMaxSpeed().

MSVehicleType& MSVehicleType::operator= ( const MSVehicleType ) [private]

Invalidated assignment operator.

void MSVehicleType::setColor ( const RGBColor color)

Set a new value for this type's color.

Parameters:
[in]colorThe new color of this type

Definition at line 186 of file MSVehicleType.cpp.

References myColor.

Referenced by TraCIServerAPI_VehicleType::setVariable().

Set a new value for this type's default probability.

If the given value<0 then the one from the original type will be used.

Parameters:
[in]probThe new default probability of this type

Definition at line 147 of file MSVehicleType.cpp.

References myDefaultProbability, and myOriginalType.

Set a new value for this type's emission class.

Parameters:
[in]eclassThe new emission class of this type

Definition at line 180 of file MSVehicleType.cpp.

References myEmissionClass.

Referenced by TraCIServerAPI_VehicleType::setVariable().

void MSVehicleType::setLength ( const SUMOReal length)

Set a new value for this type's length.

If the given value<0 then the one from the original type will be used.

Parameters:
[in]lengthThe new length of this type

Definition at line 108 of file MSVehicleType.cpp.

References myLength, and myOriginalType.

Referenced by TraCIServerAPI_VehicleType::setVariable().

void MSVehicleType::setMaxSpeed ( const SUMOReal maxSpeed)

Set a new value for this type's maximum speed.

If the given value<0 then the one from the original type will be used.

Parameters:
[in]maxSpeedThe new maximum speed of this type

Definition at line 130 of file MSVehicleType.cpp.

References myMaxSpeed, and myOriginalType.

Referenced by TraCIServerAPI_VehicleType::setVariable().

void MSVehicleType::setMinGap ( const SUMOReal minGap)

Set a new value for this type's minimum gap.

If the given value<0 then the one from the original type will be used.

Parameters:
[in]offsetThe new minimum gap of this type

Definition at line 119 of file MSVehicleType.cpp.

References myMinGap, and myOriginalType.

Referenced by TraCIServerAPI_VehicleType::setVariable().

Set a new value for this type's shape.

Parameters:
[in]shapeThe new shape of this type

Definition at line 203 of file MSVehicleType.cpp.

References myShape.

Referenced by TraCIServerAPI_VehicleType::setVariable().

Set a new value for this type's speed deviation.

If the given value<0 then the one from the original type will be used.

Parameters:
[in]devThe new speed deviation of this type

Definition at line 169 of file MSVehicleType.cpp.

References myOriginalType, and mySpeedDev.

Referenced by TraCIServerAPI_VehicleType::setVariable().

void MSVehicleType::setSpeedFactor ( const SUMOReal factor)

Set a new value for this type's speed factor.

If the given value<0 then the one from the original type will be used.

Parameters:
[in]factorThe new speed factor of this type

Definition at line 158 of file MSVehicleType.cpp.

References myOriginalType, and mySpeedFactor.

Referenced by TraCIServerAPI_VehicleType::setVariable().

Set a new value for this type's vehicle class.

Parameters:
[in]vclassThe new vehicle class of this type

Definition at line 141 of file MSVehicleType.cpp.

References myVehicleClass.

Referenced by TraCIServerAPI_VehicleType::setVariable().

void MSVehicleType::setWidth ( const SUMOReal width)

Set a new value for this type's width.

If the given value<0 then the one from the original type will be used.

Parameters:
[in]widthThe new width of this type

Definition at line 192 of file MSVehicleType.cpp.

References myOriginalType, and myWidth.

Referenced by TraCIServerAPI_VehicleType::setVariable().


Field Documentation

ID of the car following model.

Definition at line 434 of file MSVehicleType.h.

Referenced by build(), getCarFollowModel(), saveState(), and ~MSVehicleType().

The color.

Definition at line 443 of file MSVehicleType.h.

Referenced by build(), getColor(), saveState(), and setColor().

The probability when being added to a distribution without an explicit probability.

Definition at line 425 of file MSVehicleType.h.

Referenced by build(), getDefaultProbability(), saveState(), and setDefaultProbability().

The emission class of such vehicles.

Definition at line 440 of file MSVehicleType.h.

Referenced by build(), getEmissionClass(), saveState(), and setEmissionClass().

This class' height.

Definition at line 456 of file MSVehicleType.h.

Referenced by build(), and getHeight().

std::string MSVehicleType::myID [private]

Unique ID.

Definition at line 413 of file MSVehicleType.h.

Referenced by getID(), and saveState().

std::string MSVehicleType::myLaneChangeModel [private]

ID of the lane change model.

Definition at line 437 of file MSVehicleType.h.

Referenced by build(), and saveState().

Vehicles' length [m].

Definition at line 416 of file MSVehicleType.h.

Referenced by build(), getLength(), getLengthWithGap(), MSVehicleType(), saveState(), and setLength().

Vehicles' maximum speed [m/s].

Definition at line 422 of file MSVehicleType.h.

Referenced by build(), getMaxSpeed(), getMaxSpeedWithDeviation(), and setMaxSpeed().

This class' free space in front of the vehicle itself.

Definition at line 419 of file MSVehicleType.h.

Referenced by build(), getLengthWithGap(), getMinGap(), saveState(), and setMinGap().

std::string MSVehicleType::myOSGFile [private]

This class' model file.

Definition at line 462 of file MSVehicleType.h.

Referenced by build(), and getOSGFile().

This class' shape.

Definition at line 459 of file MSVehicleType.h.

Referenced by build(), getGuiShape(), saveState(), and setShape().

The standard deviation for speed variations.

Definition at line 431 of file MSVehicleType.h.

Referenced by build(), getMaxSpeedWithDeviation(), getSpeedDeviation(), hasSpeedDeviation(), saveState(), and setSpeedDeviation().

The factor by which the maximum speed may deviate from the allowed max speed on the street.

Definition at line 428 of file MSVehicleType.h.

Referenced by build(), getMaxSpeedWithDeviation(), getSpeedFactor(), hasSpeedDeviation(), saveState(), and setSpeedFactor().

The vehicles' class.

Definition at line 446 of file MSVehicleType.h.

Referenced by build(), getVehicleClass(), saveState(), and setVClass().

This class' width.

Definition at line 453 of file MSVehicleType.h.

Referenced by build(), getWidth(), saveState(), and setWidth().


The documentation for this class was generated from the following files:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines