![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00006 #pragma once 00007 00011 00015 00016 #include <vlutil/vlMachineTypes.h> 00017 #include "vrfobjcore/groundInter.h" 00018 #include "vrfobjcore/vrfMvObjSR.h" 00019 #include "vrfutil/rwReal.h" 00020 00021 class DtFixedWingEntityParameters; 00022 class DtVector; 00023 00024 enum DtFixedWingCurrentState 00025 { 00026 DtFWOnGround = 0, 00027 DtFWInAir = 1 00028 }; 00029 00036 #include "vrfobjcore/vrfobjcoreDefines.h" 00037 class DT_DLL_vrfobjcore DtFixedWingEntityStateRepository : public DtVrfMovingObjectStateRepository 00038 { 00039 00040 protected: 00042 DtFixedWingEntityStateRepository(); 00043 00044 public: 00045 00047 DtFixedWingEntityStateRepository (DtVrfObject* vrfObject, 00048 const DtObjectType& objectType, 00049 DtVrfObjectParameters* parameters, 00050 const DtString& name, 00051 DtReaderWriterRegistry* parentRegistry = 0); 00052 00054 DtFixedWingEntityStateRepository (const DtFixedWingEntityStateRepository & orig, 00055 const DtString& rwName = DtString::nullString(), 00056 DtReaderWriterRegistry* parentRegistry = 0); 00057 00059 const DtFixedWingEntityStateRepository & operator= 00060 (const DtFixedWingEntityStateRepository & orig); 00061 00063 virtual ~DtFixedWingEntityStateRepository(); 00064 00065 virtual bool init(); 00066 00068 virtual DtString type() const; 00069 00071 virtual const int vrfMovingObjectStateRepositorySubType() const; 00072 00074 virtual const int fixedWingEntityStateRepositorySubType() const; 00075 00076 virtual bool createParameters(); 00077 virtual void initializeFromParameters(); 00078 virtual const DtFixedWingEntityParameters* fixedWingEntityParameters() const; 00079 00081 virtual DtReal AOA() const; 00082 virtual void setAOA (DtReal aoa); 00083 00086 virtual DtReal minLiftSpeed() const; 00087 virtual void setMinLiftSpeed (DtReal minLiftSpeed); 00088 00090 virtual DtReal maxAltitude() const; 00091 virtual void setMaxAltitude (DtReal maxAltitude); 00092 00095 virtual DtReal maxYawRate() const; 00096 virtual void setMaxYawRate (DtReal maxYawRate); 00097 00100 virtual DtReal maxPitchRate() const; 00101 virtual void setMaxPitchRate (DtReal maxPitchRate); 00102 00105 virtual DtReal maxRollRate() const; 00106 virtual void setMaxRollRate (DtReal maxRollRate); 00107 00109 virtual DtReal maxClimbRate() const; 00110 virtual void setMaxClimbRate (DtReal maxClimbRate); 00111 00114 virtual DtReal orderedAltitude() const; 00115 virtual void setOrderedAltitude(DtReal orderedAltitude); 00116 00117 virtual DtReal orderedGroundSpeed() const; 00118 virtual void setOrderedGroundSpeed (DtReal orderedGroundSpeed); 00119 00120 virtual DtReal maxGroundSpeed() const; 00121 virtual void setMaxGroundSpeed (DtReal maxGroundSpeed); 00122 00123 virtual DtReal maxGroundStoppingDeceleration() const; 00124 virtual void setMaxGroundStoppingDeceleration (DtReal maxGroundStoppingDeceleration); 00125 00126 virtual DtReal groundTurningRadius() const; 00127 virtual void setGroundTurningRadius (DtReal groundTurningRadius); 00128 00129 virtual DtReal maxGroundSlope() const; 00130 virtual void setMaxGroundSlope (DtReal maxGroundSlope); 00131 00135 virtual bool onGround() const; 00136 00140 virtual void setOnGround(bool onGround); 00141 00145 virtual void setCurrentOrderedSpeed(const double currentOrderedSpeed); 00146 virtual const double currentOrderedSpeed() const; 00147 00148 virtual void setCurrentMaxSpeed(const double currentMaxSpeed); 00149 virtual const double currentMaxSpeed() const; 00150 00151 virtual void setCurrentMaxStoppingDeceleration(const double currentMaxStoppingDeceleration); 00152 virtual const double currentMaxStoppingDeceleration() const; 00153 00154 virtual void setCurrentTurningRadius(const double currentTurningRadius); 00155 virtual const double currentTurningRadius() const; 00156 00157 virtual void setCurrentMaxSlope(const double currentMaxSlope); 00158 virtual const double currentMaxSlope() const; 00159 00160 virtual void setOnGroundTolerance(double); 00161 virtual double onGroundTolerance() const; 00162 00187 virtual void place (const DtVector& location, const DtReal heading, 00188 bool clampToGroundFlag = true, bool* dataAvailable = 0, 00189 bool requireAllData = false); 00190 00191 virtual void placeAtAltitude (const DtVector& location, const DtReal heading); 00192 00195 virtual void updateCurrentStateVars(); 00196 00200 virtual const DtGroundInteractionPt* noseSupport() const; 00201 virtual DtGroundInteractionPt* noseSupport(); 00202 virtual void setNoseSupport(const DtVector& noseSupport); 00203 00204 static DtVrfObjectStateRepository* creator (const DtString& name, 00205 DtVrfObject* vrfObject, const DtObjectType& objectType, 00206 DtVrfObjectParameters* parameters, 00207 DtReaderWriterRegistry* parentRegistry); 00208 00211 static DtFixedWingEntityStateRepository* isFixedWingEntityStateRepository( 00212 DtSimObjectStateRepository* repository); 00213 00214 static const DtFixedWingEntityStateRepository* isFixedWingEntityStateRepository( 00215 const DtSimObjectStateRepository* repository); 00216 00218 virtual void restoreEntity(); 00219 00222 virtual void updateAppearanceFromState(); 00223 00224 protected: 00225 DtRwReal myAOA; 00226 DtRwReal myMinLiftSpeed; 00227 DtRwReal myMaxAltitude; 00228 DtRwReal myOrderedAltitude; 00229 DtRwReal myMaxClimbRate; 00230 DtRwReal myMaxYawRate; 00231 DtRwReal myMaxPitchRate; 00232 DtRwReal myMaxRollRate; 00233 00234 DtRwReal myOrderedGroundSpeed; 00235 DtRwReal myMaxGroundSpeed; 00236 DtRwReal myMaxGroundStoppingDeceleration; 00237 DtRwReal myGroundTurningRadius; 00238 DtRwReal myMaxGroundSlope; 00239 00240 DtRwBoolean myOnGround; 00244 DtRwReal myCurrentOrderedSpeed; 00245 DtRwReal myCurrentMaxSpeed; 00246 DtRwReal myCurrentMaxStoppingDeceleration; 00247 DtRwReal myCurrentTurningRadius; 00248 DtRwReal myCurrentMaxSlope; 00249 00252 DtRwReal myOnGroundTolerance; 00253 };