VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rotaryWingActuatorComponent.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2022 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
10 
11 #pragma once
12 
16 #include "vrfutil/rwAirSpeedType.h"
17 #include <matrix/LibMatrix.h>
18 #include <vlpi/disEnums.h>
19 
20 class DtString;
27 class DtPhysicalWorld;
28 class DtTerrainDatabase;
31 
36 
46 {
47 public:
48 
52  DtSimulationServices* simManager, DtComponentDescriptor* desc = 0, DtReaderWriterRegistry* parentRegistry = 0 );
53 
58 
61  virtual bool init();
62 
65  virtual const char* type() const;
66 
68  virtual void tick();
69 
73  virtual void useFuel(double fuelUsed);
74  virtual double fuelLeft() const;
75 
77  virtual double calculateFuel() const;
78 
84  virtual void fallFromSky();
85 
89  static DtSimComponent * creator(const DtString& name,
90  DtLocalObject* owner,
91  DtSimulationServices* simManager,
92  DtComponentDescriptor* desc = 0,
93  DtReaderWriterRegistry* parentRegistry = 0);
94 
95 protected:
96 
98  virtual bool createPortGroups();
99 
101  virtual bool createPorts();
102 
108  virtual bool createPSR();
109 
111  virtual void clampFrameRate();
112 
114  virtual void setLanded(const DtVector& localIntersectionPoint);
115 
117  virtual bool checkFlyingWithoutFuel();
118 
120  virtual void setYawAcceleration();
121  virtual void calculateYawRate();
122 
124  virtual double calculateOneAxisOfOrientation(const int axis, const double angleInit, const double period, const double portValue, const double maxAccel, const double maxRate);
125 #if 0
126  virtual void calculatePitchAcceleration();
128  virtual void calculatePitchRate();
129 
131  virtual void calculateRollAcceleration();
132  virtual void calculateRollRate();
133 #endif
134  virtual void checkAndDetachIfNecessary();
137 
140  virtual void calculateOrientation();
141 
143  virtual void calculateNormalizedBodyVelocity();
144 
146  virtual void calculateLiftAcceleration();
147 
156  virtual double altitudePowerFactor(const double altitude);
157 
160  virtual void calculateResultantAcceleration();
161 
163  virtual void integrate();
164 
166  virtual void updateRepository();
167 
181  virtual void updateAirspeedToRepository();
182 
184  virtual void updateDisplay();
185 
205  virtual void checkLandedOrCrashed();
206 
210 
218  virtual bool isCrashedIntoGround(const DtVector& localPosition,
219  DtVector& localIntersectionPoint);
220 
223  virtual void sendDetonation(const DtVector& geocentricLocation);
224 
230  virtual bool isSubsurface() const;
231 
240  virtual bool componentInitialized() const;
241 
244  virtual bool engineOperational() const;
245 
248  virtual void updateAppearance();
249 
251  virtual void updateOrderedSpeed();
252 
254  virtual void preFirstTickInit();
255 
256 private:
257 
260 
263 
266 
267 
268 protected:
269 
272 
275 
279 
286 
293 
300 
307 
309 
313  DtTaitBryan myOrientation;
323  DtReal mySpeed;
329 
333 
337 
340 
344 
349  double myLastSpeed;
350 
353 };
354 
Contains class declarations for DtConstrainedDualAxisInputPort and DtConstrainedDualAxisOutputPort.
Definition: constrainedDualAxisAnalogIOPort.h:27
DtRotaryWingEntityStateRepository * myRotaryWingEntityState
Definition: rotaryWingActuatorComponent.h:270
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
DtVector myNormalizedBodyVelocity
Definition: rotaryWingActuatorComponent.h:318
This repository holds all information that is common to all the forms of local rotary wing entities w...
Definition: rotaryWingEntityStateRepository.h:27
DtVector myPreviousGroundClampedPosition
Definition: rotaryWingActuatorComponent.h:327
DtVector myBodyLift
Definition: rotaryWingActuatorComponent.h:319
const DtActuatorComponent & operator=(const DtActuatorComponent &orig)
assignment operator
DtRotaryWingActuatorDescriptor; descriptor for the DtRotaryWingActuatorComponent component.
Definition: rotaryWingActuatorDescriptor.h:27
virtual void preFirstTickInit()
This function can be overridden to initialize a component before it is ticked for the first time...
virtual bool init()
Overridden to cache a pointer to the entity&#39;s radio in this class.
Contains class declarations for DtConstrainedAnalogInputPort and DtConstrainedAnalogOutputPort.
Definition: constrainedAnalogIOPort.h:30
DtUpdateRepositoryOutputPortGroup * myUpdateRepositoryOutputPortGroup
Port group used to set what values should be set into the VRF state repository. All values are in loc...
Definition: rotaryWingActuatorComponent.h:336
Definition: rotaryWingFlightPSR.h:29
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
Definition: readerWriterRegistry.h:39
DtVector myBodyAcceleration
Definition: rotaryWingActuatorComponent.h:320
DtVector myRelativeAcceleration
Definition: rotaryWingActuatorComponent.h:321
End User Description: DtActuator is the base class for all actuator model components. Developer Description: The DtActuator base class caches a pointer to the entity&#39;s radio for convenience. Derived classes may have articulated parts that are configured from the DtActuatorComponentDescriptor&#39;s DtSimArtPartDescriptorList. For each articulated part in the list a DtArticulatedPartStateRepository will be created to store the data for the part such as it&#39;s location, rotation and so forth. These are created in the entity&#39;s DtVrfObjectStateRepository createParts() function. This call creates all the attached parts for all the actuators. These articulated state repositories are managed by the DtAttachmentManager. They are cached by their partType which is the DIS Enumeration describing the part from the disEnums.h file and was specified in the actuator&#39;s DtActuatorComponentDescriptor as descriped above. The partType is used as the category of the DtObjectType used to look up articulated parts in the DtAttachementManager. When an actuator needs access to a particular articulated part it looks it up by the part&#39;s object type.
Definition: actuatorComponent.h:47
DtRotaryWingFlightPSR * myProcessState
Container for state data associated with this component. This state is saved and restored as part of ...
Definition: rotaryWingActuatorComponent.h:332
DtConstrainedAnalogInputPort * myCollectivePort
Input Port Name: collective Input Port Description: Input Port Range: 0. to 1. Input Port Default Va...
Definition: rotaryWingActuatorComponent.h:306
DtReal mySpeedRatioSquared
Definition: rotaryWingActuatorComponent.h:316
DtDcm myBodyToLocalMatrix
Definition: rotaryWingActuatorComponent.h:314
DtInputPortGroup * myRotaryWingControlPortGroup
Input Port Group Name: rotary-wing-control Input Port Group Description:
Definition: rotaryWingActuatorComponent.h:278
The DtPhysicalWorld is the primary interface to and manager of all of the &quot;physical&quot; aspects of the s...
Definition: physicalWorld.h:102
bool myPrintedOutOfFuelMessage
Definition: rotaryWingActuatorComponent.h:328
DtVector myBodyVelocity
Definition: rotaryWingActuatorComponent.h:317
DtReal myAltitudeAGL
Definition: rotaryWingActuatorComponent.h:326
double myHeightAboveGroundSupport
Cached value from heightAboveGroundSupport.
Definition: rotaryWingActuatorComponent.h:339
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
DtVector myBodyRotationRates
Definition: rotaryWingActuatorComponent.h:312
DtDcm myLocalToBodyMatrix
Definition: rotaryWingActuatorComponent.h:315
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
Member to allow for access to platform specific data.
Definition: rotaryWingActuatorComponent.h:352
DtTaitBryan myOrientation
Definition: rotaryWingActuatorComponent.h:313
virtual bool createPorts()
Called by init. Derived classes should override this method to create all their input/output ports an...
DtConstrainedAnalogInputPort * myThrottlePort
Input Port Name: throttle Input Port Description: Input Port Range: 0. to 1. Input Port Default Valu...
Definition: rotaryWingActuatorComponent.h:285
DtAirspeedCalculator * myAirSpeedCalculator
Air Speed Calculator for updating state properties Created in init()
Definition: rotaryWingActuatorComponent.h:343
DtReal mySpeed
Definition: rotaryWingActuatorComponent.h:323
DtConstrainedDualAxisAnalogInputPort * myCyclicPort
Input Port Name: cyclic Input Port Description: Input Port Range: X: -1. to 1. Y: -1...
Definition: rotaryWingActuatorComponent.h:292
class DtAirspeedCalculator:
Definition: airSpeedCalculator.h:23
virtual bool createPortGroups()
Called by init. Derived classes should override this method to create all their input/output port gro...
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:90
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:70
DtReal myMaxDragAcceleration
Definition: rotaryWingActuatorComponent.h:310
DtVector myRelativeVelocity
Definition: rotaryWingActuatorComponent.h:322
DtConstrainedAnalogInputPort * myPedalPort
Input Port Name: pedal Input Port Description: Input Port Range: -1. to 1. Input Port Default Value:...
Definition: rotaryWingActuatorComponent.h:299
DtVector myLocalPosition
Definition: rotaryWingActuatorComponent.h:324
DtInputPortGroup is a data port group of a data consumer. It may contain any number of DtInputPorts a...
Definition: inputPortGroup.h:35
Definition: terrainDatabase.h:148
The algorithm for updating the kinematic variables and modeling the limiting effects of maximum rotat...
Definition: rotaryWingActuatorComponent.h:45
DtVector myBodyRotationalAcceleration
Definition: rotaryWingActuatorComponent.h:311
DtVector myLocalOrientation
Definition: rotaryWingActuatorComponent.h:325
DtUpdateRepositoryOutputPortGroup is a data port group of a data consumer that contains methods and p...
Definition: updateRepositoryOutputPortGroup.h:31
DtRotaryWingActuatorDescriptor * myRotaryWingActuatorDescriptor
Definition: rotaryWingActuatorComponent.h:271
virtual const char * type() const =0
Returns a string identifies the class type of component. Type values are defined in compTypes...
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
double myLastSpeed
myLastSpeed is used in tick() to catch velocity changes while paused, due to setCurrentSpeed() or set...
Definition: rotaryWingActuatorComponent.h:349

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)