VR-Forces 4.1.1 Class Documentation
fixWingAct.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 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;
28 
41 {
42 
43 public:
44 
48  DtVrfObject* owner,
49  DtSimManager* simManager,
50  DtComponentDescriptor* desc = 0,
51  DtReaderWriterRegistry* parentRegistry = 0);
52 
53 
58 
61  virtual bool init();
62 
65  virtual DtString type() const;
66 
69  virtual void tick();
70 
74  static DtSimComponent * creator(const DtString& name,
75  DtVrfObject* owner,
76  DtSimManager* simManager,
77  DtComponentDescriptor* desc = 0,
78  DtReaderWriterRegistry* parentRegistry = 0);
79 
80 public:
84  virtual void calculateBodyVelocity(const DtVector& oldRelativeVelocity,
85  const DtDcm& newLocalOrientation, DtVector& newBodyVelocity);
86 
90  virtual void calculateAirborneAcceleration(const DtVector oldLocalPosition,
91  double oldSpeed, const DtDcm& newLocalOrientation,
92  const DtVector& newBodyVelocity, double throttle,
93  DtVector& newRelativeAcceleration);
94 
95 protected:
96 
98  virtual void doFlying();
99 
101  virtual void doTaxiing();
102 
105  virtual bool isTouchingDown(const DtVector& newLocalPosition,
106  const DtVector& newRelativeVelocity);
107 
110  virtual bool isTakingOff(bool isOnGround, double speed);
111 
112  virtual bool updateGroundInteractionPoints(
113  DtGroundInteractionPt *left,
114  DtGroundInteractionPt *right,
115  DtGroundInteractionPt *nose,
116  DtGroundInteractionPt *center,
117  const DtDcm& localOrientation,
118  const DtVector& localPosition,
119  double halfHeightOfTerrainIntersectChord);
120 
125  virtual double calculateYawRate(double pedal);
126 
128  virtual double calculatePitchRate(double stickYValue);
129 
131  virtual double calculateRollRate(double stickXValue);
132 
133  virtual void calculateBodyRotationRates(double pedal, double stickXValue,
134  double stickYValue, DtVector& newBodyRotationRates);
135 
138  virtual void calculateOrientation(const DtDcm&
139  oldLocalOrientation, const DtVector& newBodyRotationRates,
140  DtDcm& newLocalOrientation);
141 
143  virtual void calculateBodyGravity(const DtVector oldLocalPosition,
144  const DtDcm& newLocalOrientation, DtVector& newBodyGravityAcceleration);
145 
148  virtual void calculateThrustAcceleration(double throttle,
149  DtVector& newBodyThrustAccleration);
150 
155  virtual void calculateDragAcceleration(double oldSpeed,
156  const DtVector& newBodyVelocity, bool flapsDeployed,
157  DtVector& newBodyDragAccleration);
158 
163  virtual void fallFromSky(const DtString& reason = DtString::nullString());
164 
165  virtual bool collidesWithGround(const DtVector& oldLocalPosition,
166  const DtVector& newLocalPosition, DtVector& localCenterGoundPosition);
167 
169  void integrate(const DtVector& oldLocalPosition,
170  const DtVector& oldRelativeVelocity,
171  const DtVector& newRelativeAcceleration, DtVector& newLocalPosition,
172  DtVector& newRelativeVelocity);
173 
175 
178  virtual void useFuel(double fuelUsed);
179  virtual double fuelLeft() const;
180 
181 
185  virtual double calculateHeading(double oldHeading,
186  double steering, double dT, double speed, double turningRadius);
187  virtual void calculateScalarVelocityAndAcceleration(
188  double oldPitch, double &scalarVelocity, double &scalarAcceleration);
189  virtual double calculateMaxGroundSpeed();
190  virtual double calculateMaxGroundAcceleration();
191  virtual double calculateAcceleration(double pitch, double maxSpeed,
192  double maxAccel);
193  virtual double calculateAccelerationFromThrottle();
194 
195  virtual double calculateAccelerationFromSlope(double slope);
196 
197  virtual double calculateAccelerationFromResistance(double maxSpeed,
198  double maxAccel);
199  virtual double calculateAccelerationFromBrake(double otherAccels);
200 
201  virtual DtVector calculateProjectedLocation(
202  const DtVector& oldLocalPosition, const DtVector& newBodyAcceleration,
203  const DtVector& oldBodyVelocity, double newHeading);
204 
205  virtual void calculateOrientationAndPositionOnGround(
206  const DtVector& newLocalProjectedLocation, double newHeading,
207  DtDcm& newLocalOrientation, DtVector& newLocalPosition);
209 
210  virtual void updateRepository(const DtVector& newLocalPosition,
211  const DtVector& newRelativeVelocity,
212  const DtVector& newRelativeAcceleration,
213  const DtDcm& newLocalOrientation, const DtVector& newBodyRotationRates,
214  bool isOnGround, const DtAppearance& newAppearance);
215 
216  virtual void updateDisplay() const;
217 
220  virtual double maxThrustAcceleration() const;
221  virtual double maxClimbRate() const;
222  virtual double maxYawVelocity() const;
223  virtual double maxPitchVelocity() const;
224  virtual double maxRollVelocity() const;
225  virtual double maxAltitude() const;
226 
228  virtual bool createPortGroups();
229 
231  virtual bool createPorts();
232 
238  virtual bool createPSR();
239 
240  virtual void sendDetonation(const DtVector& geocentricPosition);
241 
242 protected:
243 
246 
249 
253 
254 protected:
255 
258 
261 
266 
273 
280 
287 
294 
301 
303 
307 
310 };

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)