VR-Forces 4.10 Class Documentation
 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) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 #pragma once
12 
14 #include <vlpi/disEnums.h>
15 #include <matrix/LibMatrix.h>
16 
17 #include "vrfutil/rwAirSpeedType.h"
18 
19 class DtString;
20 class DtSimManager;
26 class DtPhysicalWorld;
27 class DtTerrainDatabase;
30 
41 {
42 
43 public:
44 
48  DtVrfObject* owner,
49  DtSimManager* simManager,
50  DtComponentDescriptor* desc = 0,
51  DtReaderWriterRegistry* parentRegistry = 0);
52 
57 
60  virtual bool init();
61 
64  virtual const char* type() const;
65 
67  virtual void tick();
68 
72  virtual void useFuel(double fuelUsed);
73  virtual double fuelLeft() const;
74 
76  virtual double calculateFuel() const;
77 
83  virtual void fallFromSky();
84 
88  static DtSimComponent * creator(const DtString& name,
89  DtVrfObject* owner,
90  DtSimManager* simManager,
91  DtComponentDescriptor* desc = 0,
92  DtReaderWriterRegistry* parentRegistry = 0);
93 
94 protected:
95 
97  virtual bool createPortGroups();
98 
100  virtual bool createPorts();
101 
107  virtual bool createPSR();
108 
110  virtual void clampFrameRate();
111 
113  virtual void setLanded(const DtVector& localIntersectionPoint);
114 
116  virtual bool checkFlyingWithoutFuel();
117 
119  virtual void setYawAcceleration();
120  virtual void calculateYawRate();
121 
123  virtual double calculateOneAxisOfOrientation(const int axis, const double angleInit, const double period, const double portValue, const double maxAccel, const double maxRate);
124 #if 0
125  virtual void calculatePitchAcceleration();
127  virtual void calculatePitchRate();
128 
130  virtual void calculateRollAcceleration();
131  virtual void calculateRollRate();
132 #endif
133  virtual void checkAndDetachIfNecessary();
136 
139  virtual void calculateOrientation();
140 
142  virtual void calculateNormalizedBodyVelocity();
143 
145  virtual void calculateLiftAcceleration();
146 
155  virtual double altitudePowerFactor(const double altitude);
156 
159  virtual void calculateResultantAcceleration();
160 
162  virtual void integrate();
163 
165  virtual void updateRepository();
166 
180  virtual void updateAirspeedToRepository();
181 
183  virtual void updateDisplay();
184 
204  virtual void checkLandedOrCrashed();
205 
209 
217  virtual bool isCrashedIntoGround(const DtVector& localPosition,
218  DtVector& localIntersectionPoint) const;
219 
222  virtual void sendDetonation(const DtVector& geocentricLocation) const;
223 
229  virtual bool isSubsurface() const;
230 
239  virtual bool componentInitialized() const;
240 
243  virtual bool engineOperational() const;
244 
247  virtual void updateAppearance();
248 
252  virtual double heightAboveGroundSupport() const;
253 
255  virtual void updateOrderedSpeed();
256 
258  virtual void preFirstTickInit();
259 
260 private:
261 
264 
267 
270 
271 
272 protected:
273 
276 
279 
283 
290 
297 
304 
311 
313 
317  DtTaitBryan myOrientation;
327  DtReal mySpeed;
333 
337 
341 
344 
348 
353  double myLastSpeed;
354 };
355 
Contains class declarations for DtConstrainedDualAxisInputPort and DtConstrainedDualAxisOutputPort.
Definition: constrainedDualAxisAnalogIOPort.h:27
DtRotaryWingEntityStateRepository * myRotaryWingEntityState
Definition: rotaryWingActuatorComponent.h:274
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtVector myNormalizedBodyVelocity
Definition: rotaryWingActuatorComponent.h:322
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:331
DtVector myBodyLift
Definition: rotaryWingActuatorComponent.h:323
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:27
DtUpdateRepositoryOutputPortGroup * myUpdateRepositoryOutputPortGroup
Port group used to set what values should be set into the VRF state repository.
Definition: rotaryWingActuatorComponent.h:340
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:42
Definition: readerWriterRegistry.h:39
DtVector myBodyAcceleration
Definition: rotaryWingActuatorComponent.h:324
DtVector myRelativeAcceleration
Definition: rotaryWingActuatorComponent.h:325
End User Description: DtActuator is the base class for all actuator model components.
Definition: actuatorComponent.h:48
DtRotaryWingFlightPSR * myProcessState
Container for state data associated with this component.
Definition: rotaryWingActuatorComponent.h:336
DtConstrainedAnalogInputPort * myCollectivePort
Input Port Name: collective Input Port Description: Input Port Range: 0.
Definition: rotaryWingActuatorComponent.h:310
DtReal mySpeedRatioSquared
Definition: rotaryWingActuatorComponent.h:320
DtDcm myBodyToLocalMatrix
Definition: rotaryWingActuatorComponent.h:318
DtInputPortGroup * myRotaryWingControlPortGroup
Input Port Group Name: rotary-wing-control Input Port Group Description:
Definition: rotaryWingActuatorComponent.h:282
The DtPhysicalWorld is the primary interface to and manager of all of the &quot;physical&quot; aspects of the s...
Definition: physicalWorld.h:88
bool myPrintedOutOfFuelMessage
Definition: rotaryWingActuatorComponent.h:332
DtVector myBodyVelocity
Definition: rotaryWingActuatorComponent.h:321
DtReal myAltitudeAGL
Definition: rotaryWingActuatorComponent.h:330
double myHeightAboveGroundSupport
Cached value from heightAboveGroundSupport.
Definition: rotaryWingActuatorComponent.h:343
virtual void tick()
This gives the thread of control to the component.
DtVector myBodyRotationRates
Definition: rotaryWingActuatorComponent.h:316
DtDcm myLocalToBodyMatrix
Definition: rotaryWingActuatorComponent.h:319
DtTaitBryan myOrientation
Definition: rotaryWingActuatorComponent.h:317
virtual bool createPorts()
Called by init.
DtConstrainedAnalogInputPort * myThrottlePort
Input Port Name: throttle Input Port Description: Input Port Range: 0.
Definition: rotaryWingActuatorComponent.h:289
DtAirspeedCalculator * myAirSpeedCalculator
Air Speed Calculator for updating state properties Created in init()
Definition: rotaryWingActuatorComponent.h:347
DtReal mySpeed
Definition: rotaryWingActuatorComponent.h:327
DtConstrainedDualAxisAnalogInputPort * myCyclicPort
Input Port Name: cyclic Input Port Description: Input Port Range: X: -1.
Definition: rotaryWingActuatorComponent.h:296
class DtAirspeedCalculator:
Definition: airSpeedCalculator.h:23
virtual bool createPortGroups()
Called by init.
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
DtReal myMaxDragAcceleration
Definition: rotaryWingActuatorComponent.h:314
DtVector myRelativeVelocity
Definition: rotaryWingActuatorComponent.h:326
DtConstrainedAnalogInputPort * myPedalPort
Input Port Name: pedal Input Port Description: Input Port Range: -1.
Definition: rotaryWingActuatorComponent.h:303
DtVector myLocalPosition
Definition: rotaryWingActuatorComponent.h:328
DtInputPortGroup is a data port group of a data consumer.
Definition: inputPortGroup.h:32
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
Definition: terrainDatabase.h:148
DtRotaryWingActuatorComponent is a kinematics-based model of a rotary wing aircraft that converts col...
Definition: rotaryWingActuatorComponent.h:40
DtVector myBodyRotationalAcceleration
Definition: rotaryWingActuatorComponent.h:315
DtVector myLocalOrientation
Definition: rotaryWingActuatorComponent.h:329
DtUpdateRepositoryOutputPortGroup is a data port group of a data consumer that contains methods and p...
Definition: updateRepositoryOutputPortGroup.h:28
DtRotaryWingActuatorDescriptor * myRotaryWingActuatorDescriptor
Definition: rotaryWingActuatorComponent.h:275
virtual const char * type() const =0
Returns a string identifies the class type of component.
double myLastSpeed
myLastSpeed is used in tick() to catch velocity changes while paused, due to setCurrentSpeed() or set...
Definition: rotaryWingActuatorComponent.h:353

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)