![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00009 #pragma once 00010 00011 #include <vlutil/vlMachineTypes.h> 00012 #include "vrfobjcore/groundInter.h" 00013 #include "vrfobjcore/vrfMvObjSR.h" 00014 00015 class DtRotaryWingEntityParameters; 00016 class DtVector; 00017 00024 #include "vrfobjcore/vrfobjcoreDefines.h" 00025 class DT_DLL_vrfobjcore DtRotaryWingEntityStateRepository : public DtVrfMovingObjectStateRepository 00026 { 00027 public: 00028 00030 DtRotaryWingEntityStateRepository (DtVrfObject* vrfObject, 00031 const DtObjectType& objectType, 00032 DtVrfObjectParameters* parameters, 00033 const DtString& rwName = DtString::nullString(), 00034 DtReaderWriterRegistry* parentRegistry = 0); 00035 00037 DtRotaryWingEntityStateRepository (const DtRotaryWingEntityStateRepository & orig, 00038 const DtString& rwName = DtString::nullString(), 00039 DtReaderWriterRegistry* parentRegistry = 0); 00040 00042 const DtRotaryWingEntityStateRepository & operator= (const DtRotaryWingEntityStateRepository & orig); 00043 00045 virtual ~DtRotaryWingEntityStateRepository(); 00046 00047 virtual DtSimObjectStateRepository* clone 00048 (const DtString& rwName = DtString::nullString(), 00049 DtReaderWriterRegistry* parentRegistry = 0) const; 00050 00051 virtual bool init(); 00052 00054 virtual DtString type() const; 00055 00057 virtual const int vrfMovingObjectStateRepositorySubType() const; 00058 00060 virtual const int rotaryWingEntityStateRepositorySubType() const; 00061 00062 static DtVrfObjectStateRepository* creator (const DtString& name, 00063 DtVrfObject* vrfObject, 00064 const DtObjectType& objectType, 00065 DtVrfObjectParameters* parameters, 00066 DtReaderWriterRegistry* parentRegistry); 00067 00070 static DtRotaryWingEntityStateRepository* isRotaryWingEntityStateRepository( 00071 DtSimObjectStateRepository* repository); 00072 00073 static const DtRotaryWingEntityStateRepository* isRotaryWingEntityStateRepository 00074 (const DtSimObjectStateRepository* repository); 00075 00076 virtual bool createParameters(); 00077 00078 virtual void initializeFromParameters(); 00079 00080 virtual const DtRotaryWingEntityParameters* rotaryWingEntityParameters() const; 00081 00084 virtual DtReal altitude() const; 00085 virtual void setAltitude (const DtReal val); 00087 00090 virtual bool isCheckingTerrainDistance() const; 00091 virtual void setIsCheckingTerrainDistance (const bool val); 00092 virtual DtReal maxAltitude() const; 00093 virtual void setMaxAltitude (const DtReal val); 00095 00098 virtual const DtVector & desiredInertialPos() const; 00099 virtual void setDesiredInertialPos(const DtVector & pos); 00100 00101 virtual const DtVector & desiredInertialVel() const; 00102 virtual void setDesiredInertialVel(const DtVector & vel); 00103 00104 virtual const DtVector & desiredInertialAcc() const; 00105 virtual void setDesiredInertialAcc(const DtVector & acc); 00106 00107 virtual DtReal desiredInertialHead() const; 00108 virtual void setDesiredInertialHead(DtReal head); 00109 00110 virtual DtReal positionSelector() const; 00111 virtual void setPositionSelector(DtReal val); 00112 00113 virtual DtReal velocitySelector() const; 00114 virtual void setVelocitySelector(DtReal val); 00115 00116 virtual DtReal accelerationSelector() const; 00117 virtual void setAccelerationSelector(DtReal val); 00118 00119 virtual DtReal headingSelector() const; 00120 virtual void setHeadingSelector(DtReal val); 00121 00122 virtual DtReal aggressiveness() const; 00123 virtual void setAggressiveness(DtReal val); 00125 00128 virtual bool landed() const; 00129 virtual void setLanded(bool value); 00131 00134 virtual void getSelf(DtlObjPtr args, const DtFilename& searchPath, 00135 const DtVariableBindingsList& variableBindings); 00136 00138 virtual void setJoystickControl (const bool val); 00139 virtual bool joystickControl() const; 00140 00148 virtual void land(const DtVector& location, const DtReal heading); 00149 00150 00179 virtual void place(const DtVector& location, const DtReal heading, 00180 bool clampToGroundFlag = true, bool* dataAvailable = 0, 00181 bool requireAllData = false); 00182 00196 virtual void placeAtAltitude(const DtVector& desiredLocalPosition, 00197 const DtReal newHeading, bool* dataAvailable = 0); 00198 00200 virtual const DtReal terrainHeightBuffer() const; 00201 virtual void setTerrainHeightBuffer(const DtReal buff); 00202 00203 00207 virtual const DtGroundInteractionPt* noseSupport() const; 00208 virtual DtGroundInteractionPt* noseSupport(); 00209 virtual void setNoseSupport(const DtVector& noseSupport); 00210 00221 virtual void clampToGround (const DtVector& location, const DtReal heading, 00222 bool* dataAvailable = 0, bool requireAllData = false); 00223 00225 virtual void restoreEntity(); 00226 00228 00229 virtual double maxClimbRate() const; 00230 virtual double maxYawRate() const; 00231 virtual double maxPitchRate() const; 00232 virtual double maxRollRate() const; 00233 virtual double maxYawAcceleration() const; 00234 virtual double maxPitchAcceleration() const; 00235 virtual double maxRollAcceleration() const; 00236 virtual double zeroCollectiveLiftAcceleration() const; 00237 virtual double fullCollectiveLiftAcceleration() const; 00239 00240 private: 00241 00243 DtRotaryWingEntityStateRepository(); 00244 00245 protected: 00246 00247 DtVector myDesiredInertialPos; 00248 DtVector myDesiredInertialVel; 00249 DtVector myDesiredInertialAcc; 00250 DtReal myDesiredInertialHead; 00251 DtReal myPositionSelector; 00252 DtReal myVelocitySelector; 00253 DtReal myAccelerationSelector; 00254 DtReal myHeadingSelector; 00255 DtReal myAggressiveness; 00256 00258 bool myJoystickControl; 00259 00260 DtReal myAltitude; 00261 bool myIsCheckingTerrainDistance; 00262 00264 DtReal myMaxAltitude; 00265 00267 DtRwBoolean myLanded; 00268 00271 DtReal myTerrainHeightBuffer; 00272 }; 00273