VR-Forces 4.3.1 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 DtString 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 
111  void calculateDesiredAndActualLinearVelocity(DtVector& desiredBodyVel,
112  DtVector& topoDesiredInertialVel, DtVector& actualBodyVel);
113 
116  virtual void calculateDesiredLinearAcceleration(const DtVector& topoDesiredInertialVel,
117  DtVector& desiredBodyAcc);
118 
120  virtual void calculateDesiredAngularVelocity(const DtVector& desiredBodyAcc,
121  const DtVector& desiredBodyVel, const DtVector& actualBodyVel,
122  DtVector& desiredAngularVel);
123 
126  virtual void calculateDesiredAngularAcceleration(
127  const DtVector& desiredAngularVel, DtVector& desiredAngularAcc);
128 
132  virtual double calculateWhiteNoiseScaleFactor();
133 
136  virtual void setCyclic(const DtVector& desiredAngularAcc, double noiseFactor);
137 
139  virtual void setCollective(const DtVector& desiredBodyAcc, double noiseFactor);
140 
143  virtual void setPedal(const DtVector& desiredAngularAcc, double noiseFactor);
144 
146  virtual void setThrottle();
147 
152  virtual void boundAcceleration(DtVector & vec);
153 
156  virtual DtReal terrainAvoidanceVelocity() const;
157 
163  virtual void calculateControlAlignmentAngle(DtReal& alignmentAngle,
164  bool& selector) const;
165 
171  virtual void calculateTargetAlignmentAngle(DtReal& alignmentAngle,
172  bool& selector) const;
173 
174  virtual bool createPorts();
175 
176 protected:
178 
179 
180 
181 
182 
183 
186 
189 
191  DtDcm myBodyToRef;
192 
195 
198 
199 public:
200 
203  static DtReal xyDistSquared(DtVector a, DtVector b);
204 
205 };

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)