VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rotaryWingEntityStateRepository.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
12 #include <vlutil/vlMachineTypes.h>
13 #include <matrix/vlVector.h>
16 
17 #include "vrfutil/rwAirSpeedType.h"
18 
20 
28 {
29 private:
32 
35 public:
36 
38  DtRotaryWingEntityStateRepository (DtLocalObject* vrfObject, const DtString& rwName = DtString::nullString(),
39  DtReaderWriterRegistry* parentRegistry = 0);
40 
43 
44  virtual bool init() override;
45 
47  virtual DtString type() const override;
48 
50  virtual const int vrfMovingObjectStateRepositorySubType() const override;
51 
53  virtual const int rotaryWingEntityStateRepositorySubType() const;
54 
55  static DtVrfObjectStateRepository* creator (const DtString& name,
56  DtLocalObject* vrfObject, DtReaderWriterRegistry* parentRegistry);
57 
58  virtual void initializeFromParameters() override;
59 
60  const DtRotaryWingEntityParameters* rotaryWingEntityParameters() const;
61 
64  virtual DtReal altitude() const;
65  virtual void setAltitude (const DtReal val);
67 
70  virtual bool isCheckingTerrainDistance() const;
71  virtual void setIsCheckingTerrainDistance (const bool val);
72  virtual DtReal maxAltitude() const;
73  virtual void setMaxAltitude (const DtReal val);
75 
78  virtual const DtVector & desiredInertialPos() const;
79  virtual void setDesiredInertialPos(const DtVector & pos);
80 
81  virtual const DtVector & desiredInertialVel() const;
82  virtual void setDesiredInertialVel(const DtVector & vel);
83 
84  virtual const DtVector & desiredInertialAcc() const;
85  virtual void setDesiredInertialAcc(const DtVector & acc);
86 
87  virtual DtReal desiredInertialHead() const;
88  virtual void setDesiredInertialHead(DtReal head);
89 
90  virtual DtReal positionSelector() const;
91  virtual void setPositionSelector(DtReal val);
92 
93  virtual DtReal velocitySelector() const;
94  virtual void setVelocitySelector(DtReal val);
95 
96  virtual DtReal accelerationSelector() const;
97  virtual void setAccelerationSelector(DtReal val);
98 
99  virtual DtReal headingSelector() const;
100  virtual void setHeadingSelector(DtReal val);
101 
102  virtual DtReal aggressiveness() const;
103  virtual void setAggressiveness(DtReal val);
105 
108  virtual bool landed() const;
109  virtual void setLanded(bool value);
111 
114  virtual boost::tribool onTerrainSurface() const;
115 
118  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
119  const DtVariableBindingsList& variableBindings);
120 
122  virtual void setJoystickControl (const bool val);
123  virtual bool joystickControl() const;
124 
132  virtual void land(const DtVector& location, const DtReal heading);
133 
134 
163  virtual void place(const DtVector& location, const DtReal heading,
164  bool clampToGroundFlag = true, bool* dataAvailable = 0,
165  bool requireAllData = false) override;
166 
180  virtual void placeAtAltitude(const DtVector& desiredLocalPosition,
181  const DtReal newHeading, bool* dataAvailable = 0);
182 
186  virtual const DtGroundInteractionPt* noseSupport() const;
187  virtual DtGroundInteractionPt* noseSupport();
188  virtual void setNoseSupport(const DtVector& noseSupport);
189 
200  virtual void clampToGround (const DtVector& location, const DtReal heading,
201  bool* dataAvailable = 0, bool requireAllData = false) override;
202 
204  virtual void restoreEntity();
205 
207 
208  virtual double maxClimbRate() const;
209  virtual void setMaxClimbRate(double value);
210 
211  virtual double maxYawRate() const;
212  virtual void setMaxYawRate(double value);
213 
214  virtual double maxPitchRate() const;
215  virtual void setMaxPitchRate(double value);
216 
217  virtual double maxRollRate() const;
218  virtual void setMaxRollRate(double value);
219 
220  virtual double maxYawAcceleration() const;
221  virtual void setMaxYawAcceleration(double value);
222 
223  virtual double maxPitchAcceleration() const;
224  virtual void setMaxPitchAcceleration(double value);
225 
226  virtual double maxRollAcceleration() const;
227  virtual void setMaxRollAcceleration(double value);
228 
229  virtual double zeroCollectiveLiftAcceleration() const;
230  virtual void setZeroCollectiveLiftAcceleration(double value);
231 
232  virtual double fullCollectiveLiftAcceleration() const;
233  virtual void setFullCollectiveLiftAcceleration(double value);
234 
235  virtual DtReal orderedAirSpeed() const;
236  virtual void setOrderedAirSpeed(DtReal orderedAirSpeed);
237 
238  virtual void setOrderedAirSpeedType(const DtAirSpeedType &airSpeedType);
239  virtual DtAirSpeedType orderedAirSpeedType() const;
241 
245  virtual double heightAboveGroundSupport() const;
246 
248  bool hasLightingComponent() const;
249 
250 private:
251 
254 
255 protected:
256  virtual void createLegacyRWData() override;
257  virtual void setToLegacyRWData() override;
258  virtual void restoreFromLegacyRWData() override;
259 
260 protected:
261 
271 
272 
274 
285 
288 
289  DtReal myAltitude;
291 
294 
297 
300 
301 public:
305  {
306  return rep->as<DtRotaryWingEntityStateRepository>();
307  }
309 };
310 
Definition: rwAirSpeedType.h:32
Contains the DtVrfMovingObjectStateRepository class declaration.
DtRwReal myFullCollectiveLiftAcceleration
Values copied from parameters.
Definition: rotaryWingEntityStateRepository.h:283
virtual bool init() override
Our &#39;virtual&#39; constructor. Calls all the create&lt;&gt;() methods.
DtRwReal myMaxYawRate
Values copied from parameters.
Definition: rotaryWingEntityStateRepository.h:276
This repository holds all information that is common to all the forms of local rotary wing entities w...
Definition: rotaryWingEntityStateRepository.h:27
Description: This repository holds all information that is common to all the forms of all objects wit...
Definition: vrfMovingObjectStateRepository.h:31
virtual void place(const DtVector &location, bool *dataAvailable=0, bool requireAllData=false)
Place entity at &#39;location&#39;, on the ground, keeping its current heading. The dataAvailable flag will b...
DtRwReal myMaxRollRate
Values copied from parameters.
Definition: rotaryWingEntityStateRepository.h:278
DtRwReal myMaxPitchRate
Values copied from parameters.
Definition: rotaryWingEntityStateRepository.h:277
static DtVrfObjectStateRepository * creator(const DtString &name, DtLocalObject *vrfObject, DtReaderWriterRegistry *parentRegistry)
DtVrfMovingObjectStateRepository & operator=(const DtVrfMovingObjectStateRepository &orig)
Assignment Operator.
Definition: simObjectStateRepository.h:59
DtVector myDesiredInertialAcc
Definition: rotaryWingEntityStateRepository.h:264
Definition: readerWriterRegistry.h:39
virtual void restoreEntity()
Called on a setRestore command, sets destroyed to false and sets resources to initial (parameter file...
DtRwAirSpeedType myOrderedAirSpeedType
Definition: rotaryWingEntityStateRepository.h:299
virtual const int vrfMovingObjectStateRepositorySubType() const
Returns DtVrfMovingObjectStateRepositorySubTypeBase.
Description: This repository is an internal repository accessible only by local objects. It holds all information that is common to all the forms of all entity/aggregate/control objects within VR-Forces.
Definition: vrfObjectStateRepository.h:91
DtReal myMaxAltitude
Initialization.
Definition: rotaryWingEntityStateRepository.h:293
virtual void setToLegacyRWData() override
DtReal myVelocitySelector
Definition: rotaryWingEntityStateRepository.h:267
DtReal myDesiredInertialHead
Definition: rotaryWingEntityStateRepository.h:265
virtual void restoreFromLegacyRWData() override
The moving-object-param parameter type is used to configure rotary-wing type of entities. Developer Description: Used to hold parameters for the DtVrfMovingObjectStateRepository class.
Definition: rotaryWingEntityParameters.h:36
DtRwReal myZeroCollectiveLiftAcceleration
Values copied from parameters.
Definition: rotaryWingEntityStateRepository.h:282
DtReal myAggressiveness
Definition: rotaryWingEntityStateRepository.h:270
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
virtual void clampToGround(const DtVector &location, const DtReal heading, bool *dataAvailable=0, bool requireAllData=false)
Place entity on ground at location and heading. Calls clampToGround with gravity of false...
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
DtRwReal myMaxRollAcceleration
Values copied from parameters.
Definition: rotaryWingEntityStateRepository.h:281
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
DtRwReal myMaxClimbRate
Values copied from parameters.
Definition: rotaryWingEntityStateRepository.h:275
DtRwBoolean myLanded
Indicates whether or not this entity is on the ground.
Definition: rotaryWingEntityStateRepository.h:296
virtual void createLegacyRWData() override
Creates the legacy data used for any pre/put operation. Override this to create your legacy data atta...
DtReal myAltitude
Definition: rotaryWingEntityStateRepository.h:289
virtual void initializeFromParameters() override
bool myIsCheckingTerrainDistance
Definition: rotaryWingEntityStateRepository.h:290
DtRwReal myMaxPitchAcceleration
Values copied from parameters.
Definition: rotaryWingEntityStateRepository.h:280
DtReal myHeadingSelector
Definition: rotaryWingEntityStateRepository.h:269
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) override
Override getSelf to handle mapping of old pre-2.0 oob files. Maps the old variables for local and wor...
bool myJoystickControl
Joystick control.
Definition: rotaryWingEntityStateRepository.h:287
DtReal myPositionSelector
Definition: rotaryWingEntityStateRepository.h:266
DtReal myAccelerationSelector
Definition: rotaryWingEntityStateRepository.h:268
DtVector myDesiredInertialPos
Definition: rotaryWingEntityStateRepository.h:262
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
DtAirSpeedType
Air Speed Type PDU enums.
Definition: rwAirSpeedType.h:24
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
virtual DtString type() const override
returns DtSimObjectStateRepositoryType
Class Invariant: The DtGroundInteractionPt class must always have a valid DtAttachedTerrain or DtSimM...
Definition: groundInteractionPt.h:28
DtRwReal myMaxYawAcceleration
Values copied from parameters.
Definition: rotaryWingEntityStateRepository.h:279
DtRwReal myOrderedAirSpeed
Definition: rotaryWingEntityStateRepository.h:298
DtVector myDesiredInertialVel
Definition: rotaryWingEntityStateRepository.h:263
static VRF4API_METHOD DtRotaryWingEntityStateRepository * isRotaryWingEntityStateRepository(DtSimObjectStateRepository *rep)
These are backwards compatible methods that can be used if you define ALLOW_VRF4API in your header fi...
Definition: rotaryWingEntityStateRepository.h:304
const T_SRType * as() const
Convenience function to cast to particular state rep type.
Definition: simObjectStateRepository.h:101
VRF4API_METHOD bool onTerrainSurface() const
Get/Set the activity of the unit. Set in the extended data and in state properties (if exists) ...
virtual void placeAtAltitude(const DtVector &location, const DtReal heading)
Places entity at altitude regardless of terrain.
#define VRF4API_METHOD
Include this header file to allow for the definition/usage of the ability to mark something as deprec...
Definition: vrf4XAPI.h:22
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)