![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00009 #pragma once 00010 00011 #include "vrfmodel/vrfmodelDefines.h" 00012 #include <list> 00013 #include <vlutil/vlSmartPointers.h> 00014 #include <set> 00015 #include "vrfobjcore/entityCollision.h" 00016 00020 class DT_DLL_vrfmodel DtRailObstructionInfo 00021 { 00022 public: 00023 DtRailObstructionInfo(); 00024 virtual ~DtRailObstructionInfo(); 00025 00027 00028 virtual std::set<int>& lanes(); 00029 virtual const std::set<int>& lanes() const; 00031 00034 00035 virtual double startBlockDistance() const; 00036 virtual void setStartBlockDistance(double v); 00038 00040 00041 virtual double endBlockDistance() const; 00042 virtual void setEndBlockDistance(double v); 00044 00048 00049 virtual double velocityAlongSegment() const; 00050 virtual void setVelocityAlongSegment(double v); 00052 00055 virtual void adjustDistances(double adjustmentValue); 00056 00061 virtual void merge(const DtRailObstructionInfo& source); 00062 00063 protected: 00064 std::set<int> myLanes; 00065 double myStartBlockDistance; 00066 double myEndBlockDistance; 00067 double myVelocityAlongSegment; 00068 }; 00069 00070 typedef DtBoost::shared_ptr<DtRailObstructionInfo> DtRailObstructionInfoPtr; 00071 00072 struct DT_DLL_vrfmodel DtRailObstruction 00073 { 00074 DtRailObstructionInfoPtr myRailObstructionInfo; 00075 DtEntityCollisionSharedPtr myCollision; 00076 }; 00077 00078 typedef DtBoost::shared_ptr<DtRailObstruction> DtRailObstructionPtr; 00079 00081 DT_DLL_vrfmodel DtRailObstructionPtr firstObstuctionInLane(const std::list<DtRailObstructionPtr>& obstructionList, 00082 int laneNumber);