![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2005 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: embarkationPSR.h,v $ $Revision: 1.14 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef DtVrfEmbarkationPSR_H_ 00013 #define DtVrfEmbarkationPSR_H_ 00014 00015 #include "vrfobjcore/processSR.h" 00016 #include "vrfutil/rwInt.h" 00017 #include "vrfutil/rwBoolean.h" 00018 #include "vrfutil/rwString.h" 00019 #include "vrfutil/rwVector.h" 00020 #include "vrfutil/rwTaitBryan.h" 00021 #include "vrfutil/rwTemplatedList.h" 00022 00027 00028 #include "vrfobjcore/vrfobjcoreDefines.h" 00029 class DT_DLL_vrfobjcore DtVrfEmbarkationPSR : public DtVrfProcessStateRepository 00030 { 00031 public: 00032 enum DtEmbarkationControllerState 00033 { 00034 DtIdle = 0, 00035 DtMoveToEgress = 5, 00036 DtMovingToEgress, 00037 DtDisembark, 00038 DtMoveToIngress, 00039 DtMovingToIngress, 00040 DtMoveToEmbarkationPoint, 00041 DtMovingToEmbarkationPoint, 00042 DtAtEmbarkationPoint, 00043 DtWaitingToStop, 00044 DtStoppedAtEmbarkedPoint, 00045 DtWaitingForEmbarkationInformation, 00046 DtWaitingForDisembarkationInformation, 00047 DtMoveToFinalDestination, 00048 DtMovingToFinalDestination, 00049 DtCompletingTask 00050 }; 00051 00052 public: 00053 00055 DtVrfEmbarkationPSR(DtVrfObject* vrfObject, 00056 const DtString& rwName = DtString::nullString(), 00057 DtReaderWriterRegistry* parentRegistry = 0); 00058 00060 DtVrfEmbarkationPSR(const DtVrfEmbarkationPSR& orig, 00061 const DtString& rwName = DtString::nullString(), 00062 DtReaderWriterRegistry* parentRegistry = 0); 00063 00065 virtual ~DtVrfEmbarkationPSR(); 00066 00068 DtVrfEmbarkationPSR& operator=(const DtVrfEmbarkationPSR& orig); 00069 00071 virtual DtVrfProcessStateRepository* clone( 00072 const DtString& rwName = DtString::nullString(), 00073 DtReaderWriterRegistry* parentRegistry = 0) const; 00074 00077 virtual DtString type() const; 00078 00081 virtual void setEmbarkationState(DtEmbarkationControllerState state); 00082 virtual DtEmbarkationControllerState embarkationState() const; 00084 00087 virtual void setEmbarkationInformation(const DtString& parent, 00088 bool useEmbarkationOverride = false, const DtVector& embarkationOverridePosition = DtVector::zero()); 00089 00090 virtual void getEmbarkationInformation(DtString& parent, bool& useEmbarkationOverride, 00091 DtVector& embarkationOverridePosition); 00092 virtual const DtString& embarkationParent() const; 00093 virtual bool embarkationLocationOverride() const; 00094 virtual const DtVector& embarkationLocationOverridePosition() const; 00095 00096 virtual void setControlPointName(const DtString&); 00097 virtual const DtString& controlPointName() const; 00098 00099 virtual void setEmbarkedAppearance(int); 00100 virtual int embarkedAppearance() const; 00101 00102 virtual void setPublishLoadPoints(bool); 00103 virtual bool publishLoadPoints() const; 00104 00105 virtual void setOnGroundBeforeDisembark(bool); 00106 virtual bool onGroundBeforeDisembark() const; 00107 00108 virtual void setEmbarkedOrientation(const DtTaitBryan&); 00109 virtual const DtTaitBryan& embarkedOrientation() const; 00110 00111 virtual void clearEmbarkationInformation(); 00112 00113 virtual void setJumpToLocation(bool b); 00114 virtual bool jumpToLocation() const; 00115 00116 virtual void setTurnToHeading(bool b); 00117 virtual bool turnToHeading() const; 00118 00119 virtual void setExitPosition(const DtVector&); 00120 virtual const DtVector& exitPosition() const; 00121 00123 virtual void setCurrentSubordinateTask(int); 00124 virtual int currentSubordinateTask() const; 00125 00126 virtual void addTaskedSubordinate(const DtString& name); 00127 virtual bool removeTaskedSubordinate(const DtString& name); 00128 virtual const DtRwTemplatedListPtr<DtRwString>& taskedSubordinates() const; 00129 virtual void clearTaskedSubordinates(); 00130 00132 00133 public: 00134 00136 static DtVrfProcessStateRepository* creator (const DtString& rwName, 00137 DtVrfObject* vrfObject, DtReaderWriterRegistry* parentRegistry); 00138 00139 protected: 00140 00141 DtRwInt myEmbarkationState; 00142 DtRwString myControlPointName; 00143 DtRwString myEmbarkationParent; 00144 DtRwBoolean myEmbarkationLocationOverride; 00145 DtRwVector myEmbarkationLocationOverridePosition; 00146 DtRwVector myExitPosition; 00147 DtRwInt myEmbarkedAppearance; 00148 DtRwTaitBryan myEmbarkedOrientation; 00149 DtRwBoolean myPublishLoadPoints; 00150 DtRwBoolean myOnGroundBeforeDisembark; 00151 DtRwBoolean myJumpToLocation; 00152 DtRwBoolean myTurnToHeading; 00153 00155 DtRwTemplatedListPtr<DtRwString> myTaskedSubordinates; 00156 DtRwInt myCurrentSubordinateTask; 00157 }; 00158 00159 #endif