VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
DtRotaryWingActuatorComponent Class Reference

The algorithm for updating the kinematic variables and modeling the limiting effects of maximum rotation rates, climb rate, altitude, and speed is documented in an accompanying file in this directory (libsrc/vrfmodel): rotaryWingActuatorComponentAlgorithm.docx.

DtRotaryWingActuatorComponent is a kinematics-based model of a rotary wing aircraft that converts collective, cyclic, and pedal into acceleration, velocity, position, rotational velocity, and orientation.

End User Description: In addition, the actuator implements ground detection.

Uses Descriptor Type: DtRotaryWingActuatorDescriptor

Inheritance diagram for DtRotaryWingActuatorComponent:
Inheritance graph
[legend]

Public Member Functions

 DtRotaryWingActuatorComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
virtual ~DtRotaryWingActuatorComponent () override
 
virtual bool init () override
 
virtual const chartype () const override
 
virtual void tick () override
 
virtual void useFuel (double fuelUsed)
 
virtual double fuelLeft () const
 
virtual double fuelUsed (double speed) const
 
virtual void fallFromSky ()
 
- Public Member Functions inherited from DtActuatorComponent
virtual ~DtActuatorComponent () override
 
virtual DtSimRadioradio ()
 
virtual bool tickWhileDestroyed () const override
 
- Public Member Functions inherited from DtSimComponent
 DtSimComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
virtual ~DtSimComponent () override
 
virtual void setParentSystem (DtComponentSystem *system)
 
DtComponentSystemparentSystem () const
 
virtual bool postAddComponentsInit ()
 
virtual void registerAttributeFunctions ()
 
virtual void postTick ()
 
virtual void timedTick ()
 
virtual void setMinTickPeriod (double minTickPeriod, double minTickPeriodVariance)
 
virtual void setupFirstTickTime ()
 
virtual void setEntity (DtLocalObject *entity)
 
virtual DtSimComponentnextComponent ()
 
virtual DtSimComponentprevComponent ()
 
virtual void setListItem (DtListItem *item)
 
virtual DtListItem * listItem ()
 
virtual void putData (std::string &fp, int indentLevel=0) override
 
virtual DtlObjPtr getData (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) override
 
virtual void addInputPort (DtInputPort *port)
 
virtual void removeInputPort (DtInputPort *port)
 
virtual DtInputPortlookupInputPort (const DtString &portName)
 
virtual DtList inputPortList () const
 
virtual void addOutputPort (DtOutputPort *port)
 
virtual void removeOutputPort (DtOutputPort *port)
 
virtual DtOutputPortlookupOutputPort (const DtString &portName)
 
virtual DtList outputPortList () const
 
virtual void addInputPortGroup (DtInputPortGroup *group)
 
virtual void removeInputPortGroup (DtInputPortGroup *group)
 
virtual DtInputPortGrouplookupInputPortGroup (const DtString &groupName)
 
virtual DtList inputPortGroupList () const
 
virtual void addOutputPortGroup (DtOutputPortGroup *group)
 
virtual void removeOutputPortGroup (DtOutputPortGroup *group)
 
virtual DtOutputPortGrouplookupOutputPortGroup (const DtString &groupName)
 
virtual DtList outputPortGroupList () const
 
virtual int priority () const
 
virtual void setPriority (int priority)
 
double dT () const
 
virtual void setDT (double deltaT)
 
virtual void setComponentDescriptor (DtComponentDescriptor *componentDescriptor)
 
virtual const
DtComponentDescriptor
componentDescriptor () const
 
DtVrfProcessStateRepositoryManagerpsrManager ()
 
virtual const DtSymbolStringcomponentFullName () const
 
DtPhysicalWorldphysicalWorld ()
 
const DtPhysicalWorldphysicalWorld () const
 
const DtAttachedTerrainterrainAttachedTo () const
 
DtLocalObjectentity ()
 
const DtLocalObjectentity () const
 
DtSimulationServicessimulationServices ()
 
const DtSimulationServicessimulationServices () const
 
const Coordinate_SystemcoordinateSystem () const
 
virtual void isClutterChanged ()
 
virtual bool taskVisualizationsActive () const
 
virtual bool taskVisualizationsEnabled () const
 
virtual void onRestore ()
 
makVrf::DtTaskVisualizationMaptaskVisualizations ()
 
virtual void updateImgui ()
 
virtual bool debugActive () const
 
virtual void enable ()
 
virtual void disable ()
 
virtual bool isEnabled ()
 
virtual void setIsEnabled (bool yesNo)
 
virtual DtOutputStream & objectConsoleDebug (const DtString &channel="") const
 
virtual DtOutputStream & objectConsoleVerbose (const DtString &channel="") const
 
virtual DtOutputStream & objectConsoleInfo (const DtString &channel="") const
 
virtual DtOutputStream & objectConsoleWarn (const DtString &channel="") const
 
virtual DtOutputStream & objectConsoleError (const DtString &channel="") const
 
virtual int notifyLevel () const
 
virtual DtSimResourceManagerresourceManager ()
 
virtual const
DtSimResourceManager
resourceManager () const
 
VRF4API_METHOD const
DtSimulationServices
simManager () const
 
- Public Member Functions inherited from DtReaderWriter
 DtReaderWriter ()
 
 DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 
 DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 
 DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 
 DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 
 DtReaderWriter (const DtReaderWriter &, DtReaderWriterRegistry *parentRegistry=NULL)
 
const DtReaderWriteroperator= (const DtReaderWriter &orig)
 
bool operator== (const DtReaderWriter &) const
 
bool operator!= (const DtReaderWriter &rhs) const
 
virtual ~DtReaderWriter ()
 
virtual void putSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 
virtual void postPutSelf ()
 
virtual void prePutSelf ()
 
virtual void getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 
virtual void postGetSelf ()
 
virtual void preGetSelf ()
 
virtual void writeSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 
virtual DtSymbolString name () const
 
virtual void addAlias (const DtSymbolString &alias)
 
virtual void addAlias (const DtString &alias)
 
virtual bool hasAlias (const DtSymbolString &alias)
 
virtual const aliasContaineraliases () const
 
virtual void setReadonly (bool flag)
 
bool isReadonly () const
 
virtual void reset ()
 
virtual int alignment () const
 
virtual bool variableIsBound () const
 
virtual void unbindVariable ()
 
virtual void setName (const DtString &)
 
virtual const charreaderWriterType () const
 
virtual const charxmlType () const
 
virtual DtString prettyPrint () const
 
std::string debugText () const
 
virtual void bindVariables (DtVariableBindingsList variableBindings)
 
virtual std::list
< DtVariableNameType
unboundVariables () const
 
bool invalid () const
 
virtual bool hasChild (const DtReaderWriter *p) const
 
virtual bool hasVariableReference () const
 
virtual void bindLocalVariables (const DtVariableBindingsList &variableBindings)
 
virtual void recordUpdateTime () const
 
virtual bool changedSinceLastChecked ()
 
virtual bool peekChangedSinceLastChecked () const
 
virtual void setValueSpecified (bool specified, bool recurse=false)
 
virtual bool valueSpecified () const
 
virtual bool isVariableReference () const
 
virtual void setIsVariableReference (bool value)
 
virtual void clearAllVariableReferenceFlags ()
 
virtual DtSymbolString variableName () const
 
virtual void setVariableName (const DtSymbolString variableName)
 
virtual const DtReaderWriterdefaultRWValue () const
 
virtual DtReaderWriterdefaultRWValue ()
 
virtual void setDefaultRWValue (DtReaderWriter *)
 
virtual bool checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 
const DtReaderWriterRegistryregistry () const
 
DtReaderWriterRegistryregistry ()
 
virtual DtPropertyInterfaceproperty ()
 
virtual const DtPropertyInterfaceproperty () const
 
virtual DtString toXml () const
 
virtual DtRwVariableBindingsgenerateVariableBindings () const
 
virtual bool toXml (const DtFilename &) const
 
virtual bool fromXml (const DtString &)
 
virtual bool fromXmlFile (const DtFilename &)
 
virtual void putSelf (DtEnvironmentSP, DtEnvValueSP parent) const
 
virtual void putData (DtEnvironmentSP, DtEnvValueSP value) const
 
virtual void putVariableReference (DtEnvironmentSP, DtEnvValueSP value) const
 
virtual void getSelf (const DtEnvironmentSP, const DtEnvValueSP root, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList())
 
virtual void getData (const DtEnvironmentSP, const DtEnvValueSP, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList())
 
virtual void unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings)
 
virtual void getVariableReference (DtEnvironmentSP, DtEnvValueSP value)
 

Static Public Member Functions

static DtSimComponentcreator (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
- Static Public Member Functions inherited from DtSimComponent
static DtSimComponentFactoryfactory ()
 
static void setFactory (DtSimComponentFactory *factory)
 
static DtSimComponentcreateComponent (const DtString &name, const DtString &type, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentSystem *parentSystem, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
static void addSimComponentCreatorFcn (const DtString &type, DtSimComponentCreatorFcn fcn)
 
static VRF4API_METHOD
DtSimComponent
MarkThreadSafe (DtSimComponent *comp)
 
- Static Public Member Functions inherited from DtReaderWriter
static void putIndent (std::string &fp, int indentLevel)
 
static const
DtVariableBindingsList
nullVariableReference ()
 
static void setPostGetSelfCallback (DtGetSelfCallbackFcn fcn, void *usrData)
 
static void setPrePutSelfCallback (DtPutSelfCallbackFcn fcn, void *usrData)
 
static void setPutIndent (bool)
 
static bool putIndent ()
 
static const chartheXmlType ()
 
static const DtFilename & appPath ()
 
static void setFactoryCreatorFunction (DtReaderWriterFactoryCreatorFcn fcn)
 
static void createReaderWriterFactory ()
 
static void cleanupFactory ()
 
static DtReaderWriterFactoryfactory ()
 
static void setOutputStream (DtOutputStream *stream)
 
static DtOutputStream & outputStream ()
 
static DtReaderWritercreateFromXmlFile (const DtFilename &, bool createAsProperty=false)
 
static DtReaderWritercreateFromXml (const DtString &, bool createAsProperty=false)
 
static DtReaderWritercreateFromEnvironment (DtEnvironmentSP, bool createAsProperty=false)
 
static DtString getAttribute (DtEnvironmentSP env, const DtString &name, DtEnvValueSP root)
 

Protected Member Functions

virtual bool createPortGroups () override
 
virtual bool createPorts () override
 
virtual bool createPSR ()
 
virtual void clampFrameRate ()
 
virtual void setLanded (const DtVector &localIntersectionPoint)
 
virtual bool checkFlyingWithoutFuel ()
 
virtual void setYawAcceleration ()
 
virtual void calculateYawRate ()
 
virtual double calculateOneAxisOfOrientation (const int axis, const double angleInit, const double period, const double portValue, const double maxAccel, const double maxRate)
 
virtual void checkAndDetachIfNecessary ()
 
virtual void calculateOrientation ()
 
virtual void calculateNormalizedBodyVelocity ()
 
virtual void calculateLiftAcceleration ()
 
virtual double altitudePowerFactor (const double altitude)
 
virtual void calculateResultantAcceleration ()
 
virtual void integrate ()
 
virtual void updateRepository ()
 
virtual void updateAirspeedToRepository ()
 
virtual void updateDisplay ()
 
virtual void checkLandedOrCrashed ()
 
virtual bool isCrashedIntoGround (const DtVector &localPosition, const double downSpeed, DtVector &localIntersectionPoint)
 
virtual void sendDetonation (const DtVector &geocentricLocation)
 
virtual bool isSubsurface () const
 
virtual bool componentInitialized () const
 
virtual bool engineOperational () const
 
virtual void updateAppearance ()
 
virtual void updateOrderedSpeed ()
 
virtual void preFirstTickInit () override
 
virtual void processSetLocationCallback ()
 
- Protected Member Functions inherited from DtActuatorComponent
 DtActuatorComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
virtual void setRadio (DtSimRadio *radio)
 
 DtActuatorComponent ()
 
- Protected Member Functions inherited from DtSimComponent
virtual void setupTimedTickLogic (double minTickPeriod, double minTickPeriodVariance)
 
virtual double computeCurrentTime ()
 
bool testInvariant () const
 
DtVrfProcessStateRepositorycreateComponentPsr (const DtString &defaultPsrType, const DtString &defaultPsrName, bool useDescriptorParams=true)
 
virtual void updateTaskVisualizations ()
 
virtual void destroyTaskVisualizations ()
 
virtual void destroyTaskVisualization (const DtString &name)
 
virtual
makVrf::DtPointTaskVisualizationPtr 
pointTaskVisualization (const DtString &name)
 
virtual
makVrf::DtLineTaskVisualizationPtr 
lineTaskVisualization (const DtString &name)
 
virtual
makVrf::DtAreaTaskVisualizationPtr 
areaTaskVisualization (const DtString &name)
 
virtual
makVrf::DtTextTaskVisualizationPtr 
textTaskVisualization (const DtString &name)
 
double calculateNextTaskVisTickTime () const
 
DtVrfObjectStateRepositorylocalStateRepository ()
 
const DtVrfObjectStateRepositorylocalStateRepository () const
 
DtPropertyInterfacecachedNextFrameStateProperty (DtPropertyInterface **prop, const DtString &propName)
 
template<typename ValType >
void setCachedNextFrameStatePropertyValue (DtPropertyInterface **prop, const DtString &propName, ValType value)
 
const DtPropertyInterfacecachedCurrentFrameStateProperty (const DtPropertyInterface **prop, const DtString &propName) const
 
template<typename ValType >
bool getCachedCurrentFrameStatePropertyValue (const DtPropertyInterface **prop, const DtString &propName, ValType &value) const
 
void addSimObjectPredicateCallback (DtSimObjectReference, DtVrfObjectPredicateCallbackFunction function, const DtVrfObjectPredicate &predicate, DtTime evaluationPeriod=0, void *userData=0)
 
void removeSimObjectPredicateCallback (const DtSimObject *, DtVrfObjectPredicateCallbackFunction function, const DtVrfObjectPredicate &predicate, DtTime evaluationPeriod=0, void *userData=0)
 
void invokeSimObjectPredicateCallbacks ()
 
virtual void clearPredicateCallbacks ()
 
- Protected Member Functions inherited from DtReaderWriter
virtual void bindToRwAsVariable (const DtReaderWriter *rw)
 

Protected Attributes

DtRotaryWingEntityStateRepositorymyRotaryWingEntityState
 
DtRotaryWingActuatorDescriptormyRotaryWingActuatorDescriptor
 
DtReal myMaxDragAcceleration
 
DtVector myBodyRotationalAcceleration
 
DtVector myBodyRotationRates
 
DtTaitBryan myOrientation
 
DtDcm myBodyToLocalMatrix
 
DtDcm myLocalToBodyMatrix
 
DtReal mySpeedRatioSquared
 
DtVector myBodyVelocity
 
DtVector myNormalizedBodyVelocity
 
DtVector myBodyLift
 
DtVector myBodyAcceleration
 
DtVector myRelativeAcceleration
 
DtVector myRelativeVelocity
 
DtReal mySpeed
 
DtVector myLocalPosition
 
DtVector myLocalOrientation
 
DtReal myAltitudeAGL
 
DtVector myPreviousGroundClampedPosition
 
bool myPrintedOutOfFuelMessage
 
DtRotaryWingFlightPSRmyProcessState
 
DtUpdateRepositoryOutputPortGroupmyUpdateRepositoryOutputPortGroup
 
double myHeightAboveGroundSupport
 
DtAirspeedCalculatormyAirSpeedCalculator
 
double myLastSpeed
 
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
 
boost::signals2::connection mySetLocationCompleteConnection
 
Ports and Port Groups
DtInputPortGroupmyRotaryWingControlPortGroup
 
DtConstrainedAnalogInputPortmyThrottlePort
 
DtConstrainedDualAxisAnalogInputPortmyCyclicPort
 
DtConstrainedAnalogInputPortmyPedalPort
 
DtConstrainedAnalogInputPortmyCollectivePort
 
- Protected Attributes inherited from DtActuatorComponent
DtSimRadiomyRadio
 
- Protected Attributes inherited from DtSimComponent
DtLocalObjectmyEntity
 
DtComponentSystemmySystem
 
DtListItem * myListItem
 
DtInputPortMap myInputPortList
 
DtOutputPortMap myOutputPortList
 
DtInputPortGroupMap myInputPortGroupList
 
DtOutputPortGroupMap myOutputPortGroupList
 
int myPriority
 
double myLastTickSimTime
 
std::unique_ptr< DtTimedTickLogicmyTimedTickLogic
 
double myDT
 
bool myIsEnabled
 
bool myFirstTick
 
const DtComponentDescriptormyComponentDescriptor
 
std::list
< DtVrfProcessStateRepository * > 
myComponentPsrs
 
makVrf::DtTaskVisualizationMap myTaskVisualizations
 
double myNextTaskVisTickTime
 
DtSymbolString myFullComponentName
 
DtSimulationServicesmySimServices
 
DtPredicateCallbackManagermyPredicateCallbackManager
 
boost::signals2::scoped_connection myIsClutterChangedConnection
 
bool myLocalDebug
 
- Protected Attributes inherited from DtReaderWriter
const DtSymbolString myName
 
DtReaderWriterRegistry myRegistry
 
DtReaderWriterRegistrymyParentRegistry
 
bool myValueSpecified
 
bool myReadOnlyFlag
 
bool myIsVariableReference
 
DtSymbolString myVariableName
 
bool myVariableIsBound
 
DtReaderWritermyDefaultValue
 
aliasContainer myAliases
 
bool myInvalid
 
bool myChangedFlag
 

Private Member Functions

 DtRotaryWingActuatorComponent ()
 
 DtRotaryWingActuatorComponent (const DtRotaryWingActuatorComponent &orig)
 
DtRotaryWingActuatorComponentoperator= (const DtRotaryWingActuatorComponent &orig)
 

Additional Inherited Members

- Public Types inherited from DtReaderWriter
typedef std::vector
< DtSymbolString
aliasContainer
 
typedef std::vector
< DtSymbolString >::iterator 
aliasIter
 
typedef std::vector
< DtSymbolString >
::const_iterator 
aliasConstIter
 
typedef std::vector< DtFilename > SearchPaths
 
typedef std::pair
< DtSymbolString, DtString
DtVariableNameType
 
typedef DtReaderWriterFactory *(* DtReaderWriterFactoryCreatorFcn )()
 
- Protected Types inherited from DtSimComponent
typedef std::map< DtString,
DtInputPort * > 
DtInputPortMap
 
typedef std::map< DtString,
DtOutputPort * > 
DtOutputPortMap
 
typedef std::map< DtString,
DtInputPortGroup * > 
DtInputPortGroupMap
 
typedef std::map< DtString,
DtOutputPortGroup * > 
DtOutputPortGroupMap
 
- Static Protected Attributes inherited from DtSimComponent
static DtSimComponentFactorymyFactory
 
- Static Protected Attributes inherited from DtReaderWriter
static DtString theUnspecifiedValue
 
static DtGetSelfCallbackInfo thePostGetSelfCallback
 
static DtPutSelfCallbackInfo thePrePutSelfCallback
 
static const DtVariableBindingsList theEmptyVariableBindingsList
 
static bool theCreatorFcnSet
 
static DtReaderWriterFactorytheFactory
 
static
DtReaderWriterFactoryCreatorFcn 
theFactoryCreatorFcn
 
static bool thePutIndent
 
static DtOutputStream * theOutputStream
 

Constructor & Destructor Documentation

DtRotaryWingActuatorComponent::DtRotaryWingActuatorComponent ( const DtString name,
DtLocalObject owner,
DtSimulationServices simManager,
DtComponentDescriptor desc = 0,
DtReaderWriterRegistry parentRegistry = 0 
)

Parameters
nameReader writer name of this component.
ownerThe DtLocalObject that owns this component
simManagerThe simulation manager (provides access to terrain, message interface, simulation clock).
descThe component descriptor used to initialize this component.
parentRegistryPointer to the parent reader writer registry (the containing object that reads/writes this object).
virtual DtRotaryWingActuatorComponent::~DtRotaryWingActuatorComponent ( )
overridevirtual

destructor Removes process state from process state manager before deleting it.

DtRotaryWingActuatorComponent::DtRotaryWingActuatorComponent ( )
private

default constructor; not implemented

DtRotaryWingActuatorComponent::DtRotaryWingActuatorComponent ( const DtRotaryWingActuatorComponent orig)
private

copy constructor; not implemented

Member Function Documentation

virtual bool DtRotaryWingActuatorComponent::init ( )
overridevirtual

to get access to the entity's localStateRepository, which this component will update, and then connect to the controller's ports.

Reimplemented from DtActuatorComponent.

virtual const char* DtRotaryWingActuatorComponent::type ( ) const
overridevirtual

Returns a string identifies the class type of component. Type values are defined in compTypes.h. DtSimComponent creation functions are registered with the DtSimComponentFactory using the type values as the key. Warning: this function should always return the same pointer and it should be valid forever. This means the data should be static.

Returns
DtRotaryWingActuatorType

Implements DtSimComponent.

virtual void DtRotaryWingActuatorComponent::tick ( )
overridevirtual

Calculate new kinematic state. Calls updateAppearance().

Reimplemented from DtSimComponent.

virtual void DtRotaryWingActuatorComponent::useFuel ( double  fuelUsed)
virtual

Fuel manipulation functions. Assumes the fuel resource has resource name "fuel" If not found, fuel consumption not will not be modeled.

virtual double DtRotaryWingActuatorComponent::fuelLeft ( ) const
virtual
virtual double DtRotaryWingActuatorComponent::fuelUsed ( double  speed) const
virtual

Calculate the fuel used in the last time step.

virtual void DtRotaryWingActuatorComponent::fallFromSky ( )
virtual

This member function is called when an entity has been destroyed and is still in the air. The only acceleration applied is gravity. All rotation rates are set to 0.0. When the entity intersects the ground, a detonation interaction is generated at the point of impact. A munition type of <2, 0, 0, 0, 0, 0, 0> is used.

static DtSimComponent* DtRotaryWingActuatorComponent::creator ( const DtString name,
DtLocalObject owner,
DtSimulationServices simManager,
DtComponentDescriptor desc = 0,
DtReaderWriterRegistry parentRegistry = 0 
)
static

Parameters
nameReader writer name of this component.
ownerThe DtLocalObject that owns this component
simManagerThe simulation manager (provides access to terrain, message interface, simulation clock).
descThe component descriptor used to initialize this component.
parentRegistryPointer to the parent reader writer registry (the containing object that reads/writes this object).
Returns
New instance of this class.
virtual bool DtRotaryWingActuatorComponent::createPortGroups ( )
overrideprotectedvirtual

Creates the local port groups.

Reimplemented from DtSimComponent.

virtual bool DtRotaryWingActuatorComponent::createPorts ( )
overrideprotectedvirtual

Creates the input ports and adds them to the component.

Reimplemented from DtSimComponent.

virtual bool DtRotaryWingActuatorComponent::createPSR ( )
protectedvirtual

Creates myProcessState data member, and adds it to our process state repository manager. Passes in the name and type specified in the component descriptor (if they exist) to the DtVrfProcessStateRepository::createRepository factory method. If name and/or type is not specified, uses the appropriate default strings defined in psrTypes.h.

virtual void DtRotaryWingActuatorComponent::clampFrameRate ( )
protectedvirtual

Clamp the frame rate if the rate is too slow.

virtual void DtRotaryWingActuatorComponent::setLanded ( const DtVector &  localIntersectionPoint)
protectedvirtual

Sets the parameters for a landed entity.

virtual bool DtRotaryWingActuatorComponent::checkFlyingWithoutFuel ( )
protectedvirtual

Check to see if the entity is flying without fuel, and call fallFromSky if so.

virtual void DtRotaryWingActuatorComponent::setYawAcceleration ( )
protectedvirtual

Find yaw acceleration and new rate.

virtual void DtRotaryWingActuatorComponent::calculateYawRate ( )
protectedvirtual
virtual double DtRotaryWingActuatorComponent::calculateOneAxisOfOrientation ( const int  axis,
const double  angleInit,
const double  period,
const double  portValue,
const double  maxAccel,
const double  maxRate 
)
protectedvirtual

For pitch and roll:

virtual void DtRotaryWingActuatorComponent::checkAndDetachIfNecessary ( )
protectedvirtual

If attached (embark) check to see if should be disembarked b/c the entity is no longer close to the entity it is currently attached to.

virtual void DtRotaryWingActuatorComponent::calculateOrientation ( )
protectedvirtual

Uses current local orientation, rotationRates in SR, and dT. Results placed in object pointed to by orientation argument.

virtual void DtRotaryWingActuatorComponent::calculateNormalizedBodyVelocity ( )
protectedvirtual

Put current velocity into body coordinates (AFTER rotating body).

virtual void DtRotaryWingActuatorComponent::calculateLiftAcceleration ( )
protectedvirtual

Calculate scalar accel in direction of lift (perpendicular to wings).

virtual double DtRotaryWingActuatorComponent::altitudePowerFactor ( const double  altitude)
protectedvirtual

Calculate a factor by which to multiply lift based on altitude. Assumes that at 0 MSL, this factor will be 1.0; at altitude = maxAltitude, full power (collective = 1.0) will produce a lift of g (gravity acceleration), thus producing 0 net lift. Factor = (g - full-collective-lift-acceleration)/ full-collective-lift-acceleration * (altitude / max-altitude)

  • 1.0.
virtual void DtRotaryWingActuatorComponent::calculateResultantAcceleration ( )
protectedvirtual

Sum the accelerations produced by forces acting on the body, and put the result into world coordinates.

virtual void DtRotaryWingActuatorComponent::integrate ( )
protectedvirtual

Find the new velocity and position.

virtual void DtRotaryWingActuatorComponent::updateRepository ( )
protectedvirtual

Sets the state to locally calculated values.

virtual void DtRotaryWingActuatorComponent::updateAirspeedToRepository ( )
protectedvirtual

/brief Called from updateRepository(). Override this method to calculate air speed and set state properties. Uses myAltitudeAGL and myLocalPosition as ground speed. Sets state properties "IndicatedAirspeed", "TrueAirspeed", "MachNumber". Uses myAirSpeedCalculator to calculate from ground speed (i.e. entity velocity). To use a different air speed calculator, see DtAirspeedCalculatorFactory in airspeedCalculator.h. Register a class derived from DtAirspeedCalculator with the factory. During registration, either override the default type "DtAirspeedCalculator" or register a new type. See DtRotaryWingActuatorDescriptor::myAirspeedCalculatorType in vrfobjparam. See also "data/simulationModelSets/EntityLevel/vrfSim/systems/movement/rotary-wing-attack.sysdef. Factory changes can be made at application initialization, e.g. in DtInitializeVrfPlugin(DtCgf* cgf). Just make a call to DtAirspeedCalculatorFactory::instance().registerAirSpeedCalculatorCreator(<string>, <static_creator_function>);

virtual void DtRotaryWingActuatorComponent::updateDisplay ( )
protectedvirtual

Can be used to print control values in the console window.

virtual void DtRotaryWingActuatorComponent::checkLandedOrCrashed ( )
protectedvirtual

Check if the entity landed on the ground or crashed. If landed, ground clamp the actuator. If crashed, set isDestroyed and isSmoking. Checks to see if the entity is below ground. If it is, the entity is set to destroyed, flaming, and smoking. Its velocity and acceleration vectors are set to <0.0, 0.0, 0.0>, and its Z-coordinate is set to the height of the terrain at that <X, Y> coordinate. If it is not below ground, checkLandedOrCrashed() checks to see if the following criteria are met for being in a landed state: Velocity along the (database) Z axis is greater than -3.0 meters/second, but less than 2.0 * dT meters/second Height above terrain is less than 2.0 meters Overall entity speed is less than 4.0 meters/second. If one or more of these criteria is false, checkLandedOrCrashed() sets the SR Landed flag to false and returns. Otherwise, the variables myLandPosition and myLandHeading are set to the entity�s current position and heading, and DtRotaryWingEntity::land() is called. The velocity, acceleration, and rotational velocity vectors are all set to <0.0, 0.0, 0.0>.

virtual bool DtRotaryWingActuatorComponent::isCrashedIntoGround ( const DtVector &  localPosition,
const double  downSpeed,
DtVector &  localIntersectionPoint 
)
protectedvirtual

Determines if the entity has crashed into the ground.

Returns
A boolean indicating whether or not the entity has crashed into the ground.
Parameters
localPositionThe position to test, in database coordinates.
physWorldThe physicalWorld to test against.
downSpeedThe down component of entity speed. Positive down.
localIntersectionPointThis parameter is filled with the results of the intersection test with the terrain database.
Note
The localIntersectionPoint is always calculated, even if the entity has not crashed into the ground.
virtual void DtRotaryWingActuatorComponent::sendDetonation ( const DtVector &  geocentricLocation)
protectedvirtual

Sends a detonation interaction at the specified location, in geocentric coordinates.

virtual bool DtRotaryWingActuatorComponent::isSubsurface ( ) const
protectedvirtual

Determine whether or not the configured entity is a subsurface entity or not.

Returns
True if the configured entity is a subsurface and false if it isn't.
Note
This is not intended for general use, as it will most likely be removed when proper subsurface components are developed.
virtual bool DtRotaryWingActuatorComponent::componentInitialized ( ) const
protectedvirtual

Determine if the component has been properly initialized. The component must have a valid sim manager, entity state, actuator descriptor, and process state rep to be initialized properly. Additionally, it must have a valid terrain database, a valid coordinate system in the terrain database, and a valid exercise clock in order to be used. If any of these are missing, then the function returns false.

Returns
True if the component is initialized and ready to be ticked.
virtual bool DtRotaryWingActuatorComponent::engineOperational ( ) const
protectedvirtual
Returns
True as long as the entity is not destroyed and the entity is not "mobility killed", based on its appearance.
virtual void DtRotaryWingActuatorComponent::updateAppearance ( )
protectedvirtual

Called from tick() to update the PowerPlantOn appearance bit to on if the entity is not in the landed state and engineOperational() is true.

virtual void DtRotaryWingActuatorComponent::updateOrderedSpeed ( )
protectedvirtual

Update the ordered speed with the ordered air speed.

virtual void DtRotaryWingActuatorComponent::preFirstTickInit ( )
overrideprotectedvirtual

Initialize member variables needed for air temp calculation.

Reimplemented from DtSimComponent.

virtual void DtRotaryWingActuatorComponent::processSetLocationCallback ( )
protectedvirtual
DtRotaryWingActuatorComponent& DtRotaryWingActuatorComponent::operator= ( const DtRotaryWingActuatorComponent orig)
private

assignment operator; not implemented

Member Data Documentation

DtRotaryWingEntityStateRepository* DtRotaryWingActuatorComponent::myRotaryWingEntityState
protected
DtRotaryWingActuatorDescriptor* DtRotaryWingActuatorComponent::myRotaryWingActuatorDescriptor
protected
DtInputPortGroup* DtRotaryWingActuatorComponent::myRotaryWingControlPortGroup
protected

Input Port Group Name: rotary-wing-control
Input Port Group Description:

DtConstrainedAnalogInputPort* DtRotaryWingActuatorComponent::myThrottlePort
protected

Input Port Name: throttle
Input Port Description:
Input Port Range: 0. to 1.
Input Port Default Value:
Input Group Parent: rotary-wing-control.

DtConstrainedDualAxisAnalogInputPort* DtRotaryWingActuatorComponent::myCyclicPort
protected

Input Port Name: cyclic
Input Port Description:
Input Port Range: X: -1. to 1. Y: -1. to 1.
Input Port Default Value:
Input Group Parent: rotary-wing-control.

DtConstrainedAnalogInputPort* DtRotaryWingActuatorComponent::myPedalPort
protected

Input Port Name: pedal
Input Port Description:
Input Port Range: -1. to 1.
Input Port Default Value:
Input Group Parent: rotary-wing-control.

DtConstrainedAnalogInputPort* DtRotaryWingActuatorComponent::myCollectivePort
protected

Input Port Name: collective
Input Port Description:
Input Port Range: 0. to 1.
Input Port Default Value:
Input Group Parent: rotary-wing-control.

DtReal DtRotaryWingActuatorComponent::myMaxDragAcceleration
protected
DtVector DtRotaryWingActuatorComponent::myBodyRotationalAcceleration
protected
DtVector DtRotaryWingActuatorComponent::myBodyRotationRates
protected
DtTaitBryan DtRotaryWingActuatorComponent::myOrientation
protected
DtDcm DtRotaryWingActuatorComponent::myBodyToLocalMatrix
protected
DtDcm DtRotaryWingActuatorComponent::myLocalToBodyMatrix
protected
DtReal DtRotaryWingActuatorComponent::mySpeedRatioSquared
protected
DtVector DtRotaryWingActuatorComponent::myBodyVelocity
protected
DtVector DtRotaryWingActuatorComponent::myNormalizedBodyVelocity
protected
DtVector DtRotaryWingActuatorComponent::myBodyLift
protected
DtVector DtRotaryWingActuatorComponent::myBodyAcceleration
protected
DtVector DtRotaryWingActuatorComponent::myRelativeAcceleration
protected
DtVector DtRotaryWingActuatorComponent::myRelativeVelocity
protected
DtReal DtRotaryWingActuatorComponent::mySpeed
protected
DtVector DtRotaryWingActuatorComponent::myLocalPosition
protected
DtVector DtRotaryWingActuatorComponent::myLocalOrientation
protected
DtReal DtRotaryWingActuatorComponent::myAltitudeAGL
protected
DtVector DtRotaryWingActuatorComponent::myPreviousGroundClampedPosition
protected
bool DtRotaryWingActuatorComponent::myPrintedOutOfFuelMessage
protected
DtRotaryWingFlightPSR* DtRotaryWingActuatorComponent::myProcessState
protected

Container for state data associated with this component. This state is saved and restored as part of a scenario (or checkpoint).

DtUpdateRepositoryOutputPortGroup* DtRotaryWingActuatorComponent::myUpdateRepositoryOutputPortGroup
protected

Port group used to set what values should be set into the VRF state repository. All values are in local coordinates.

double DtRotaryWingActuatorComponent::myHeightAboveGroundSupport
protected

Cached value from heightAboveGroundSupport.

DtAirspeedCalculator* DtRotaryWingActuatorComponent::myAirSpeedCalculator
protected

Air Speed Calculator for updating state properties Created in init()

double DtRotaryWingActuatorComponent::myLastSpeed
protected

myLastSpeed is used in tick() to catch velocity changes while paused, due to setCurrentSpeed() or setAltitude(). When current speed does not match last speed while paused, recalculate true air speed.

DtPlatformLocalObjectFacade DtRotaryWingActuatorComponent::myPlatformLocalObjectFacade
protected

Member to allow for access to platform specific data.

boost::signals2::connection DtRotaryWingActuatorComponent::mySetLocationCompleteConnection
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)