![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00010 00011 #pragma once 00012 00013 #include "vrfmodel/vrfmodelDefines.h" 00014 #include "vrfmodel/railObstructionInfo.h" 00015 00018 class DT_DLL_vrfmodel DtRailObstructionAnalyzer 00019 { 00020 public: 00021 DtRailObstructionAnalyzer(); 00022 virtual ~DtRailObstructionAnalyzer(); 00023 00024 virtual void setObstructionList(const std::list<DtRailObstructionPtr>& obstructionList); 00025 virtual const std::list<DtRailObstructionPtr>& obstructionList() const; 00026 00027 virtual void setRailStartOffset(double offset); 00028 virtual double railStartOffset() const; 00029 00030 virtual void setLastCalcHitTime(double hitTime); 00031 virtual double lastCalcHitTime() const; 00032 00033 virtual void setLastObstruction(DtRailObstructionPtr obs); 00034 virtual DtRailObstructionPtr lastObstruction() const; 00035 00036 virtual void setConvoyTarget(DtString convoyTarget); 00037 virtual DtString convoyTarget() const; 00038 00039 virtual void setVelocity(double velocity); 00040 virtual double velocity() const; 00041 00047 virtual bool closestObstructionInLane(int lane, 00048 const std::list<DtRailObstructionPtr>& obstructionList, 00049 DtRailObstructionPtr& obstruction) const; 00050 00060 virtual bool firstHitObstructionInLane(int lane, double railVelocity, 00061 double railStartOffset, 00062 const std::list<DtRailObstructionPtr>& obstructionList, 00063 DtRailObstructionPtr& obstruction, double& hitTime) const; 00064 00065 virtual bool timeToHit(double railVelocity, double railStartOffset, 00066 const DtRailObstructionPtr& obstruction, double& hitTime) const; 00067 00068 private: 00069 std::list<DtRailObstructionPtr> myObstructionList; 00070 double myRailStartOffset; 00071 double myLastCalculatedHitTime; 00072 double myVelocity; 00073 DtRailObstructionPtr myLastObstruction; 00074 DtString myConvoyTarget; 00075 };