VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
131  virtual void calculateDesiredLinearAcceleration(const DtVector& topoDesiredInertialVel,
132  DtVector& desiredBodyAcc);
133 
135  virtual void calculateDesiredAngularVelocity(const DtVector& desiredBodyAcc,
136  const DtVector& desiredBodyVel, const DtVector& actualBodyVel,
137  DtVector& desiredAngularVel);
138 
141  virtual void calculateDesiredAngularAcceleration(
142  const DtVector& desiredAngularVel, DtVector& desiredAngularAcc);
143 
147  virtual double calculateWhiteNoiseScaleFactor();
148 
151  virtual void setCyclic(const DtVector& desiredAngularAcc, double noiseFactor);
152 
154  virtual void setCollective(const DtVector& desiredBodyAcc, double noiseFactor);
155 
158  virtual void setPedal(const DtVector& desiredAngularAcc, double noiseFactor);
159 
161  virtual void setThrottle();
162 
167  virtual void boundAcceleration(DtVector & vec);
168 
171  virtual DtReal terrainAvoidanceVelocity() const;
172 
178  virtual void calculateControlAlignmentAngle(DtReal& alignmentAngle,
179  bool& selector) const;
180 
186  virtual void calculateTargetAlignmentAngle(DtReal& alignmentAngle,
187  bool& selector) const;
188 
189  virtual bool createPorts();
190 
191 protected:
193 
194 
195 
196 
197 
198 
201 
204 
206  DtDcm myBodyToRef;
207 
210 
213 
214 public:
215 
218  static DtReal xyDistSquared(DtVector a, DtVector b);
219 
220 };

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)