VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
baseParachuteActuator.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 #pragma once
11 
13 
14 #include <matrix/LibMatrix.h>
15 #include <vlpi/disEnums.h>
16 
17 class DtString;
18 class DtSimManager;
21 class DtAnalogInputPort;
22 class DtBooleanInputPort;
23 class DtInputPortGroup;
24 class DtVectorInputPort;
26 class DtAnalogOutputPort;
29 
37 {
38 
39 public:
40 
44  DtVrfObject* owner,
45  DtSimManager* simManager,
46  DtComponentDescriptor* desc = 0,
47  DtReaderWriterRegistry* parentRegistry = 0);
48 
52  virtual ~DtBaseParachuteActuator();
53 
56  virtual bool init();
57 
60  virtual const char* type() const;
61 
62  virtual void tick();
63 
67  static DtSimComponent* creator(const DtString& name,
68  DtVrfObject* owner,
69  DtSimManager* simManager,
70  DtComponentDescriptor* desc = 0,
71  DtReaderWriterRegistry* parentRegistry = 0);
72 
73 
74 protected:
75  virtual bool createPortGroups();
76  virtual bool createPorts();
77 
79  virtual bool isFallingApplicable();
80 
81  virtual bool checkFallingApplicable(bool& dataAvailable);
82 
84 
85  virtual double horizontalDragCoefficient() const;
86  virtual double verticalDragCoefficient() const;
87  virtual double windDragCoefficient() const;
88  virtual double turningRate() const;
90 
91  virtual void calculateOrientation(const DtDcm&
92  oldLocalOrientation, const DtVector& newBodyRotationRates,
93  DtDcm& newLocalOrientation);
94 
95  virtual DtVector calculateDragForces(const DtVector& oldLocalPosition,
96  const DtVector& oldLocalVelocity);
97 
98  virtual double dragAccelerationFromSpeed(double curSpeed, double coefficient) const;
99 
100  virtual double calcPitch(DtVector geocLoc, DtTaitBryan geocOri);
101 
102  virtual double calcRoll(DtVector geocLoc, DtTaitBryan geocOri);
103 
104  virtual void processLanding();
105 
106  virtual void processChuteDeployment();
107 
108  virtual void processFreeFall();
109 
110 
111 private:
112 
115 
118 
122 
123 protected:
124 
126  virtual void fallFromSky();
127 
129  //virtual void executeSetPosture(DtLifeformState lifeformState);
130 
132  virtual bool checkForLandingDamage() const;
133 
135  virtual double downwardSpeed() const;
136 
138  virtual bool createPSR();
139 
141  virtual bool isCargoDoorOpen(const DtVrfObject* entity) const;
142 
145  virtual double percentDeployed() const;
146 
147 protected:
148 
150 
157 
160 
163 
165 };
virtual void calculateOrientation(const DtDcm &oldLocalOrientation, const DtVector &newBodyRotationRates, DtDcm &newLocalOrientation)
Uses current local orientation, rotationRates in SR, and dT.
DtBaseParachuteActuator modifies the falling from sky actuator to have a stowed and deployed state...
Definition: baseParachuteActuator.h:36
#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
Description: This repository holds all information that is common to all the forms of all objects wit...
Definition: vrfMovingObjectStateRepository.h:26
Instances of DtBooleanOutputPort are output ports through which data producers can send boolean data...
Definition: boolIOPort.h:45
DtInputPortGroup * myParachuteControlInputPortGroup
Definition: baseParachuteActuator.h:156
Contains class declarations for DtConstrainedAnalogInputPort and DtConstrainedAnalogOutputPort.
Definition: constrainedAnalogIOPort.h:27
virtual DtVector calculateDragForces(const DtVector &oldLocalPosition, const DtVector &oldLocalVelocity)
Calculates acceleration from Drag forces–In this case wind.
const DtFallingFromSkyActuatorComponent & operator=(const DtFallingFromSkyActuatorComponent &orig)
assignment operator; not implemented
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:42
static DtSimComponent * creator(const DtString &name, DtVrfObject *owner, DtSimManager *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
Definition: readerWriterRegistry.h:39
Contains class declarations for DtVectorInputPort, DtVectorOutputPort, and DtVectorPortData.
Definition: vectorIOPort.h:27
DtBooleanInputPort * myDeployedPort
Ports and port groups.
Definition: baseParachuteActuator.h:153
virtual bool isFallingApplicable()
Determines if this actuator is applicable.
virtual void fallFromSky()
Causes the entity to fall from the sky.
virtual double dragAccelerationFromSpeed(double curSpeed) const
Calculates acceleration of object given current speed.
Instances of DtAnalogOutputPort are input ports through which data producers can send real numbers...
Definition: analogIOPort.h:45
virtual void tick()
Calls isFallingApplicable to determine if it should do anything, and if so calls fallFromSky.
DtBooleanOutputPort * myFallingOutputPort
Definition: baseParachuteActuator.h:159
DtParachuteActuatorDescriptor * myParachuteActuatorDescriptor
Definition: baseParachuteActuator.h:149
virtual bool createPortGroups()
Called by init.
Contains class declarations for DtBooleanInputPort, DtBooleanOutputPort, and DtBooleanPortData.
Definition: boolIOPort.h:25
virtual bool createPorts()
Called by init.
DtParachuteActuatorPSR * myProcessState
Definition: baseParachuteActuator.h:164
DtConstrainedAnalogInputPort * myLeftToggleInputPort
Definition: baseParachuteActuator.h:154
DtAnalogOutputPort * myMaxTurnRateOutputPort
Definition: baseParachuteActuator.h:158
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
double calcRoll(const DtVector &geocLoc, const DtTaitBryan &geocOri)
DtInputPortGroup is a data port group of a data consumer.
Definition: inputPortGroup.h:32
Contains class declarations for DtAnalogInputPort, DtAnalogOutputPort, and DtAnalogPortData.
Definition: analogIOPort.h:25
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
DtAnalogInputPort * myAglInputPort
Definition: baseParachuteActuator.h:161
virtual bool init()
to get access to the entity&#39;s localStateRepository, which this component will update, and then connect to the controller&#39;s ports.
DtFallingFromSkyActuatorComponent provides a simple, kinematics-based model for air motion based on t...
Definition: fallingFromSkyActuatorComponent.h:33
Definition: parachuteActuatorDescriptor.h:17
virtual const char * type() const
Returns a string identifies the class type of component.
DtConstrainedAnalogInputPort * myRightToggleInputPort
Definition: baseParachuteActuator.h:155
double calcPitch(const DtVector &geocLoc, const DtTaitBryan &geocOri)
class DtParachuteActuatorPSR:
Definition: parachuteActuatorPSR.h:26

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)