Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
MSTrainHelper Class Reference

A class that helps computing positions of a train's carriages and additional structures. More...

#include <MSTrainHelper.h>

Collaboration diagram for MSTrainHelper:
[legend]

Data Structures

struct  Carriage
 

Public Member Functions

void computeDoorPositions ()
 compute door positions on demand and fills the carriage structures
 
void computeUnboardingPositions (double passengerRadius, std::vector< Position > &unboardingPositions)
 compute unboarding positions on demand and fills the carriage structures
 
int getCarriageDoors () const
 
double getCarriageLength () const
 
const std::vector< Carriage * > & getCarriages () const
 
double getFirstCarriageLength () const
 
int getFirstCarriageNo () const
 
int getFirstPassengerCarriage () const
 
double getHalfWidth () const
 
int getNumCarriages () const
 
double getUpscaleLength () const
 
bool isReversed () const
 
 MSTrainHelper (const MSVehicle *vehicle, double scaledLength=-1, bool reversed=false, bool secondaryShape=false, double exaggeration=1.0, int vehicleQuality=3)
 
 ~MSTrainHelper ()
 

Static Public Member Functions

static double getUpscaleLength (double upscale, double length, double width, int vehicleQuality)
 return length exaggeration factor (special for long vehicles)
 

Static Public Attributes

static const double PEDESTRIAN_RADIUS_EXTRA_TOLERANCE = 0.01
 small extra tolerance used to avoid constraint violations
 

Private Member Functions

void computeCarriages (bool reversed, bool secondaryShape)
 
void computeTrainDimensions (double exaggeration, bool secondaryShape, double scaledLength, int vehicleQuality)
 

Private Attributes

int myCarriageDoors
 
double myCarriageGap
 
double myCarriageLength
 
double myCarriageLengthWithGap
 
std::vector< Carriage * > myCarriages
 
double myDefaultLength
 
double myFirstCarriageLength
 
int myFirstCarriageNo
 
int myFirstPassengerCarriage
 
double myHalfWidth
 
bool myIsReversed
 
double myLength
 
double myLocomotiveLength
 
int myNumCarriages
 
const MSVehiclemyTrain
 
bool myUnscale
 
double myUpscaleLength
 

Detailed Description

A class that helps computing positions of a train's carriages and additional structures.

Definition at line 42 of file MSTrainHelper.h.

Constructor & Destructor Documentation

◆ MSTrainHelper()

MSTrainHelper::MSTrainHelper ( const MSVehicle vehicle,
double  scaledLength = -1,
bool  reversed = false,
bool  secondaryShape = false,
double  exaggeration = 1.0,
int  vehicleQuality = 3 
)
inline

Definition at line 51 of file MSTrainHelper.h.

References computeCarriages(), and computeTrainDimensions().

◆ ~MSTrainHelper()

MSTrainHelper::~MSTrainHelper ( )
inline

Definition at line 58 of file MSTrainHelper.h.

References myCarriages.

Member Function Documentation

◆ computeCarriages()

◆ computeDoorPositions()

void MSTrainHelper::computeDoorPositions ( )

compute door positions on demand and fills the carriage structures

Remarks
need to be called before retrieving carriages if door positions needed

Definition at line 160 of file MSTrainHelper.cpp.

References Position::length2D(), myCarriageDoors, myCarriages, and Position::norm2D().

Referenced by MSPModel_JuPedSim::execute(), and MSStageDriving::setArrived().

Here is the caller graph for this function:

◆ computeTrainDimensions()

void MSTrainHelper::computeTrainDimensions ( double  exaggeration,
bool  secondaryShape,
double  scaledLength,
int  vehicleQuality 
)
private

◆ computeUnboardingPositions()

void MSTrainHelper::computeUnboardingPositions ( double  passengerRadius,
std::vector< Position > &  unboardingPositions 
)

compute unboarding positions on demand and fills the carriage structures

Remarks
need to be called before retrieving carriages if unboarding positions needed

Definition at line 176 of file MSTrainHelper.cpp.

References Position::length2D(), myCarriages, myHalfWidth, Position::norm2D(), PEDESTRIAN_RADIUS_EXTRA_TOLERANCE, RandHelper::shuffle(), Position::x(), and Position::y().

Referenced by MSStageDriving::setArrived().

Here is the caller graph for this function:

◆ getCarriageDoors()

int MSTrainHelper::getCarriageDoors ( ) const
inline

Definition at line 84 of file MSTrainHelper.h.

References myCarriageDoors.

Referenced by MSStageDriving::setArrived().

Here is the caller graph for this function:

◆ getCarriageLength()

double MSTrainHelper::getCarriageLength ( ) const
inline

Definition at line 76 of file MSTrainHelper.h.

References myCarriageLength.

Referenced by GUIVehicle::drawAction_drawCarriageClass().

Here is the caller graph for this function:

◆ getCarriages()

const std::vector< Carriage * > & MSTrainHelper::getCarriages ( ) const
inline

Definition at line 100 of file MSTrainHelper.h.

References myCarriages.

Referenced by GUIVehicle::drawAction_drawCarriageClass(), MSPModel_JuPedSim::execute(), and MSStageDriving::setArrived().

Here is the caller graph for this function:

◆ getFirstCarriageLength()

double MSTrainHelper::getFirstCarriageLength ( ) const
inline

Definition at line 80 of file MSTrainHelper.h.

References myFirstCarriageLength.

Referenced by GUIVehicle::drawAction_drawCarriageClass().

Here is the caller graph for this function:

◆ getFirstCarriageNo()

int MSTrainHelper::getFirstCarriageNo ( ) const
inline

Definition at line 88 of file MSTrainHelper.h.

References myFirstCarriageNo.

Referenced by GUIVehicle::drawAction_drawCarriageClass().

Here is the caller graph for this function:

◆ getFirstPassengerCarriage()

int MSTrainHelper::getFirstPassengerCarriage ( ) const
inline

Definition at line 92 of file MSTrainHelper.h.

References myFirstPassengerCarriage.

Referenced by GUIVehicle::drawAction_drawCarriageClass(), and MSStageDriving::setArrived().

Here is the caller graph for this function:

◆ getHalfWidth()

double MSTrainHelper::getHalfWidth ( ) const
inline

Definition at line 68 of file MSTrainHelper.h.

References myHalfWidth.

Referenced by GUIVehicle::drawAction_drawCarriageClass(), and MSPModel_JuPedSim::execute().

Here is the caller graph for this function:

◆ getNumCarriages()

int MSTrainHelper::getNumCarriages ( ) const
inline

Definition at line 72 of file MSTrainHelper.h.

References myNumCarriages.

Referenced by GUIVehicle::drawAction_drawCarriageClass(), and MSStageDriving::setArrived().

Here is the caller graph for this function:

◆ getUpscaleLength() [1/2]

double MSTrainHelper::getUpscaleLength ( ) const
inline

Definition at line 64 of file MSTrainHelper.h.

References myUpscaleLength.

Referenced by computeTrainDimensions(), GUIVehicle::drawAction_drawCarriageClass(), and GUIBaseVehicle::drawOnPos().

Here is the caller graph for this function:

◆ getUpscaleLength() [2/2]

double MSTrainHelper::getUpscaleLength ( double  upscale,
double  length,
double  width,
int  vehicleQuality 
)
static

return length exaggeration factor (special for long vehicles)

Definition at line 203 of file MSTrainHelper.cpp.

References MAX2().

◆ isReversed()

bool MSTrainHelper::isReversed ( ) const
inline

Definition at line 96 of file MSTrainHelper.h.

References myIsReversed.

Referenced by GUIVehicle::drawAction_drawCarriageClass().

Here is the caller graph for this function:

Field Documentation

◆ myCarriageDoors

int MSTrainHelper::myCarriageDoors
private

Definition at line 134 of file MSTrainHelper.h.

Referenced by computeDoorPositions(), computeTrainDimensions(), and getCarriageDoors().

◆ myCarriageGap

double MSTrainHelper::myCarriageGap
private

Definition at line 126 of file MSTrainHelper.h.

Referenced by computeCarriages(), and computeTrainDimensions().

◆ myCarriageLength

double MSTrainHelper::myCarriageLength
private

Definition at line 132 of file MSTrainHelper.h.

Referenced by computeCarriages(), computeTrainDimensions(), and getCarriageLength().

◆ myCarriageLengthWithGap

double MSTrainHelper::myCarriageLengthWithGap
private

Definition at line 131 of file MSTrainHelper.h.

Referenced by computeCarriages(), and computeTrainDimensions().

◆ myCarriages

std::vector<Carriage*> MSTrainHelper::myCarriages
private

◆ myDefaultLength

double MSTrainHelper::myDefaultLength
private

Definition at line 125 of file MSTrainHelper.h.

Referenced by computeCarriages(), and computeTrainDimensions().

◆ myFirstCarriageLength

double MSTrainHelper::myFirstCarriageLength
private

◆ myFirstCarriageNo

int MSTrainHelper::myFirstCarriageNo
private

Definition at line 135 of file MSTrainHelper.h.

Referenced by computeCarriages(), and getFirstCarriageNo().

◆ myFirstPassengerCarriage

int MSTrainHelper::myFirstPassengerCarriage
private

Definition at line 136 of file MSTrainHelper.h.

Referenced by computeCarriages(), and getFirstPassengerCarriage().

◆ myHalfWidth

double MSTrainHelper::myHalfWidth
private

◆ myIsReversed

bool MSTrainHelper::myIsReversed
private

Definition at line 137 of file MSTrainHelper.h.

Referenced by computeCarriages(), and isReversed().

◆ myLength

double MSTrainHelper::myLength
private

Definition at line 127 of file MSTrainHelper.h.

Referenced by computeTrainDimensions().

◆ myLocomotiveLength

double MSTrainHelper::myLocomotiveLength
private

Definition at line 124 of file MSTrainHelper.h.

Referenced by computeCarriages(), and computeTrainDimensions().

◆ myNumCarriages

int MSTrainHelper::myNumCarriages
private

Definition at line 130 of file MSTrainHelper.h.

Referenced by computeCarriages(), computeTrainDimensions(), and getNumCarriages().

◆ myTrain

const MSVehicle* MSTrainHelper::myTrain
private

Definition at line 122 of file MSTrainHelper.h.

Referenced by computeCarriages(), and computeTrainDimensions().

◆ myUnscale

bool MSTrainHelper::myUnscale
private

Definition at line 128 of file MSTrainHelper.h.

Referenced by computeCarriages(), and computeTrainDimensions().

◆ myUpscaleLength

double MSTrainHelper::myUpscaleLength
private

Definition at line 123 of file MSTrainHelper.h.

Referenced by computeTrainDimensions(), and getUpscaleLength().

◆ PEDESTRIAN_RADIUS_EXTRA_TOLERANCE

const double MSTrainHelper::PEDESTRIAN_RADIUS_EXTRA_TOLERANCE = 0.01
static

small extra tolerance used to avoid constraint violations

Definition at line 116 of file MSTrainHelper.h.

Referenced by computeUnboardingPositions().


The documentation for this class was generated from the following files: