VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simpleRotaryWingPilot.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2006 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
15 #include <matrix/vlDcm.h>
16 #include <matrix/vlVector.h>
18 
19 class DtString;
20 class DtSimManager;
22 class Coordinate_System;
23 class DtVectorInputPort;
24 
36 {
37 public:
38 
41  DtSimpleRotaryWingPilot(const DtString& name,
42  DtVrfObject* owner,
43  DtSimManager* simManager,
44  DtComponentDescriptor* desc = 0,
45  DtReaderWriterRegistry* parentRegistry = 0);
46 
48  virtual ~DtSimpleRotaryWingPilot();
49 
51 
53  virtual void setDesiredInertialPos(
54  DtReal localX,
55  DtReal localY,
56  DtReal localZ);
57  virtual void setDesiredInertialPos(const DtVector& localPosition);
58 
60  virtual void setDesiredInertialVel(
61  DtReal vx,
62  DtReal vy,
63  DtReal vz);
64  virtual void setDesiredInertialVel(
65  const DtVector& vel);
66 
69  virtual bool init();
70 
73  virtual const char* type() const;
74 
76  static void vectorBound(DtVector& vec, DtReal bound);
77 
79  virtual void tick();
80 
84  static DtSimComponent * creator(const DtString& name,
85  DtVrfObject* owner,
86  DtSimManager* simManager,
87  DtComponentDescriptor* desc = 0,
88  DtReaderWriterRegistry* parentRegistry = 0);
89 
90 private:
93 
96 
99 
100 protected:
102  virtual void getTransformationMatrices();
103 
105  virtual void checkLandNoFuel();
106 
108  virtual double desiredMaximumSpeed() const;
109 
114  virtual void calculateDesiredAndActualLinearVelocity(DtVector& desiredBodyVel,
115  DtVector& topoDesiredInertialVel, DtVector& actualBodyVel);
116 
125  virtual void findEarthCurveDeltaPosition(DtVector fromPosition,
126  DtVector toPosition, DtVector& deltaPosition,
127  Coordinate_System* coordinateSystem);
128 
138  virtual void computePositionRateControl(DtVector& dampingVelocity);
139 
142  virtual void calculateDesiredLinearAcceleration(const DtVector& topoDesiredInertialVel,
143  DtVector& desiredBodyAcc);
144 
146  virtual void calculateDesiredAngularVelocity(const DtVector& desiredBodyAcc,
147  const DtVector& desiredBodyVel, const DtVector& actualBodyVel,
148  DtVector& desiredAngularVel);
149 
152  virtual void calculateDesiredAngularAcceleration(
153  const DtVector& desiredAngularVel, DtVector& desiredAngularAcc);
154 
158  virtual double calculateWhiteNoiseScaleFactor();
159 
162  virtual void setCyclic(const DtVector& desiredAngularAcc, double noiseFactor);
163 
165  virtual void setCollective(const DtVector& desiredBodyAcc, double noiseFactor);
166 
169  virtual void setPedal(const DtVector& desiredAngularAcc, double noiseFactor);
170 
172  virtual void setThrottle();
173 
176  virtual DtReal terrainAvoidanceVelocity() const;
177 
183  virtual void calculateControlAlignmentAngle(DtReal& alignmentAngle,
184  bool& selector) const;
185 
191  virtual void calculateTargetAlignmentAngle(DtReal& alignmentAngle,
192  bool& selector) const;
193 
202  virtual void adjustDesiredThrustZForClimbRate(
203  DtVector& desiredThrustTopo,
204  const double currentClimbRate);
205 
217  virtual void adjustDesiredThrustXYForHorizontalVelocity(
218  DtVector& desiredThrustTopo, const DtVector& currentVelocityTopo);
219 
229  virtual void boundHorizontalAcceleration(DtVector & desiredThrustTopo);
230 
231  virtual bool createPorts();
232 
233 protected:
235 
236 
237 
238 
239 
240 
243 
246 
248  DtDcm myBodyToRef;
249 
252 
255 
256 public:
257 
260  static DtReal xyDistSquared(DtVector a, DtVector b);
261 
262 };

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)