VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/railMovementControllerPSR.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: railMovementControllerPSR.h,v $ $Revision: 1.1 $ $State: Exp $
00007 ** Created: 4/28/10 MEM
00008 *******************************************************************************/
00009 
00012 
00014 
00015 #pragma once
00016 
00017 #include "vrfobjcore/vrfobjcoreDefines.h"
00018 #include "vrfobjcore/processSR.h"
00019 #include "vrfutil/rwReal.h"
00020 #include "vrfutil/rwInt.h"
00021 #include "vrfutil/rwBoolean.h"
00022 #include "vrfutil/rwString.h"
00023 #include "vrfutil/rwVector.h"
00024 
00025 
00026 enum DtRailMovementState
00027 {
00028    DtNoMovement = 0,
00029    DtMovementAlongSegment,
00030    DtMovementApproachingTurn,
00031    DtMovementTurning,
00032    DtMovementApproachingSwitchLanes,
00033    DtMovementSwitchLanes,
00034    DtMovementPassing,
00035    DtMovementRerouteToNextSegment,
00036    DtMovementApproachingDestination,
00037    DtMovementStop
00038 };
00041 class DT_DLL_vrfobjcore DtRailMovementControllerPSR : public DtVrfProcessStateRepository
00042 {
00043 public:
00044 
00046    DtRailMovementControllerPSR(DtVrfObject* vrfObject, 
00047       const DtString& rwName = DtString::nullString(), 
00048       DtReaderWriterRegistry*  parentRegistry = 0);
00049 
00051    DtRailMovementControllerPSR(const DtRailMovementControllerPSR& orig,
00052       const DtString& rwName = DtString::nullString(), 
00053       DtReaderWriterRegistry*  parentRegistry = 0);
00054 
00056    virtual ~DtRailMovementControllerPSR();
00057 
00059    DtRailMovementControllerPSR& operator=(const DtRailMovementControllerPSR& orig);
00060 
00062    virtual DtVrfProcessStateRepository* clone(
00063       const DtString& rwName = DtString::nullString(), 
00064       DtReaderWriterRegistry*  parentRegistry = 0) const;
00065 
00068    virtual DtString type() const;
00069 
00070    virtual void setCurrentMovementState(DtRailMovementState state);
00071    virtual DtRailMovementState currentMovementState();
00072 
00083    virtual void setUseHighFidelityGroundClamping(bool yesOrNo);
00084    virtual bool useHighFidelityGroundClamping() const;
00086 
00088    virtual void setSegmentIndex();
00089    virtual const int segmentIndex() const;
00091 
00094    virtual void setCurrentLanePosition(const int lane);
00095    virtual const int currentLanePosition() const;
00097 
00101    virtual void setPassingLanePosition(const int lane);
00102    virtual const int passingLanePosition() const;
00104 
00106    virtual void setTurning(bool turn);
00107    virtual bool turning() const;
00109 
00111    virtual void setAllowPassing(bool canPass);
00112    virtual bool allowPassing() const;
00114 
00116    virtual void setPassing(bool pass);
00117    virtual bool passing() const;
00119 
00121    virtual void setAvoidingCollision(bool avoid);
00122    virtual bool avoidingCollisiong() const;
00124 
00126    virtual void setNeedSwitchLanes(bool switchLane);
00127    virtual bool needSwitchLanes() const;
00129 
00131    virtual void setConvoyTargetSpecified(bool following);
00132    virtual bool convoyTargetSpecified() const;
00134 
00136    virtual void setConvoyFollowTargetName(const DtString & name);
00137    virtual const DtString & convoyFollowTargetName() const;
00139 
00141    virtual void setConvoyFollowDistance(const double dist);
00142    virtual const double convoyFollowDistance() const;
00144 
00145    void setConvoyUseCatchUpSpeed(const bool useCatchUpSpeed);
00146    const bool convoyUseCatchUpSpeed() const;
00147    
00148 
00150    virtual const double maxFollowThreshold() const;
00151    virtual void setMaxFollowThreshold(const double threshold);
00153 
00154 
00155 public:
00156 
00158    static DtVrfProcessStateRepository* creator (const DtString& rwName,
00159       DtVrfObject* vrfObject, DtReaderWriterRegistry* parentRegistry);
00160 
00161 protected:
00162 
00163    DtRwInt        myCurrentMovementState;
00164 
00167    DtRwBoolean myUseHighFidelityGroundClamping;
00168 
00171    DtRwInt  mySegmentIndex; 
00173    
00176    DtRwInt  myCurrentLanePosition; 
00178 
00181    DtRwInt  myPassingLanePosition;
00183 
00186    DtRwBoolean  myTurning; 
00188 
00191    DtRwBoolean  myAllowPassing; 
00193 
00196    DtRwBoolean  myPassing; 
00198 
00201    DtRwBoolean  myAvoidingCollision; 
00203 
00207    DtRwBoolean    myNeedToSwitchLanes;
00209 
00212    DtRwBoolean     myConvoyTargetSpecified;
00214 
00217    DtRwString     myConvoyFollowTargetName;
00219 
00222    DtRwReal     myConvoyFollowDistance;
00223 
00224    DtRwBoolean  myConvoyUseCatchUpSpeed;
00226 
00232    DtRwReal     myMaxFollowThreshold;
00234 };
00235 
00236 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)