VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/rotWingSR.h
Go to the documentation of this file.
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 

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)