VR-Forces 4.2 Class Documentation
fixWingAct.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vlpi/disEnums.h>
14 #include "vrfobjcore/actCmpnt.h"
15 #include <matrix/LibMatrix.h>
16 
17 class DtString;
18 class DtSimManager;
22 
24 class DtInputPortGroup;
27 class DtBooleanInputPort;
29 
42 {
43 
44 public:
45 
49  DtVrfObject* owner,
50  DtSimManager* simManager,
51  DtComponentDescriptor* desc = 0,
52  DtReaderWriterRegistry* parentRegistry = 0);
53 
54 
59 
62  virtual bool init();
63 
66  virtual DtString type() const;
67 
70  virtual void tick();
71 
75  static DtSimComponent * creator(const DtString& name,
76  DtVrfObject* owner,
77  DtSimManager* simManager,
78  DtComponentDescriptor* desc = 0,
79  DtReaderWriterRegistry* parentRegistry = 0);
80 
81 public:
85  virtual void calculateBodyVelocity(const DtVector& oldRelativeVelocity,
86  const DtDcm& newLocalOrientation, DtVector& newBodyVelocity);
87 
91  virtual void calculateAirborneAcceleration(const DtVector oldLocalPosition,
92  double oldSpeed, const DtDcm& newLocalOrientation,
93  const DtVector& newBodyVelocity, double throttle,
94  DtVector& newRelativeAcceleration);
95 
96 protected:
97 
99  virtual void doFlying();
100 
102  virtual void doTaxiing();
103 
106  virtual bool isTouchingDown(const DtVector& newLocalPosition,
107  const DtVector& newRelativeVelocity);
108 
111  virtual bool isTakingOff(bool isOnGround, double speed);
112 
113  virtual bool updateGroundInteractionPoints(
114  DtGroundInteractionPt *left,
115  DtGroundInteractionPt *right,
116  DtGroundInteractionPt *nose,
117  DtGroundInteractionPt *center,
118  const DtDcm& localOrientation,
119  const DtVector& localPosition,
120  double halfHeightOfTerrainIntersectChord);
121 
126  virtual double calculateYawRate(double pedal);
127 
129  virtual double calculatePitchRate(double stickYValue);
130 
132  virtual double calculateRollRate(double stickXValue);
133 
134  virtual void calculateBodyRotationRates(double pedal, double stickXValue,
135  double stickYValue, DtVector& newBodyRotationRates);
136 
139  virtual void calculateOrientation(const DtDcm&
140  oldLocalOrientation, const DtVector& newBodyRotationRates,
141  DtDcm& newLocalOrientation);
142 
144  virtual void calculateBodyGravity(const DtVector oldLocalPosition,
145  const DtDcm& newLocalOrientation, DtVector& newBodyGravityAcceleration);
146 
149  virtual void calculateThrustAcceleration(double throttle,
150  DtVector& newBodyThrustAccleration);
151 
156  virtual void calculateDragAcceleration(double oldSpeed,
157  const DtVector& newBodyVelocity, bool flapsDeployed,
158  DtVector& newBodyDragAccleration);
159 
164  virtual void fallFromSky(const DtString& reason = DtString::nullString());
165 
166  virtual bool collidesWithGround(const DtVector& oldLocalPosition,
167  const DtVector& newLocalPosition, DtVector& localCenterGoundPosition);
168 
170  void integrate(const DtVector& oldLocalPosition,
171  const DtVector& oldRelativeVelocity,
172  const DtVector& newRelativeAcceleration, DtVector& newLocalPosition,
173  DtVector& newRelativeVelocity,
174  double maxSpeed = 0);
175 
177 
180  virtual void useFuel(double fuelUsed);
181  virtual double fuelLeft() const;
182 
183 
187  virtual double calculateHeading(double oldHeading,
188  double steering, double dT, double speed, double turningRadius);
189  virtual void calculateScalarVelocityAndAcceleration(
190  double oldPitch, double &scalarVelocity, double &scalarAcceleration);
191  virtual double calculateMaxGroundSpeed();
192  virtual double calculateMaxGroundAcceleration();
193  virtual double calculateAcceleration(double pitch, double maxSpeed,
194  double maxAccel);
195  virtual double calculateAccelerationFromThrottle();
196 
197  virtual double calculateAccelerationFromSlope(double slope);
198 
199  virtual double calculateAccelerationFromResistance(double maxSpeed,
200  double maxAccel);
201  virtual double calculateAccelerationFromBrake(double otherAccels);
202 
203  virtual DtVector calculateProjectedLocation(
204  const DtVector& oldLocalPosition, const DtVector& newBodyAcceleration,
205  const DtVector& oldBodyVelocity, double newHeading);
206 
207  virtual void calculateOrientationAndPositionOnGround(
208  const DtVector& newLocalProjectedLocation, double newHeading,
209  DtDcm& newLocalOrientation, DtVector& newLocalPosition);
211 
212  virtual void updateRepository(const DtVector& newLocalPosition,
213  const DtVector& newRelativeVelocity,
214  const DtVector& newRelativeAcceleration,
215  const DtDcm& newLocalOrientation, const DtVector& newBodyRotationRates,
216  bool isOnGround, const DtAppearance& newAppearance);
217 
218  virtual void updateDisplay() const;
219 
222  virtual double maxThrustAcceleration() const;
223  virtual double maxClimbRate() const;
224  virtual double maxYawVelocity() const;
225  virtual double maxPitchVelocity() const;
226  virtual double maxRollVelocity() const;
227  virtual double maxAltitude() const;
228 
230  virtual bool createPortGroups();
231 
233  virtual bool createPorts();
234 
240  virtual bool createPSR();
241 
242  virtual void sendDetonation(const DtVector& geocentricPosition);
243 
244 protected:
245 
248 
251 
255 
256 protected:
257 
260 
263 
268 
275 
282 
289 
296 
303 
305 
309 
312 
316 };

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)