VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
fixedWingActuatorComponent.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>
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 
188  virtual double calculateHeading(double oldHeading,
189  double steering, double dT, double speed, double turningRadius);
191  virtual void calculateScalarVelocityAndAcceleration(
192  double oldPitch, double &scalarVelocity, double &scalarAcceleration);
193  virtual double calculateMaxGroundSpeed();
194  virtual double calculateMaxGroundAcceleration();
198  virtual double calculateAcceleration(double pitch, double maxSpeed,
199  double maxAccel, double newSpeed);
200  virtual double calculateAccelerationFromThrottle();
201 
203  virtual double calculateAccelerationFromSlope(double slope);
204 
205  virtual double calculateAccelerationFromResistance(double maxSpeed,
206  double maxAccel);
207  virtual double calculateAccelerationFromBrake(double otherAccels);
208 
209  virtual DtVector calculateProjectedLocation(
210  const DtVector& oldLocalPosition, const DtVector& newBodyAcceleration,
211  const DtVector& oldBodyVelocity, double newHeading);
212 
213  virtual void calculateOrientationAndPositionOnGround(
214  const DtVector& newLocalProjectedLocation, double newHeading,
215  DtDcm& newLocalOrientation, DtVector& newLocalPosition);
217 
218  virtual void updateRepository(const DtVector& newLocalPosition,
219  const DtVector& newRelativeVelocity,
220  const DtVector& newRelativeAcceleration,
221  const DtDcm& newLocalOrientation, const DtVector& newBodyRotationRates,
222  bool isOnGround, const DtAppearance& newAppearance);
223 
224  virtual void updateDisplay() const;
225 
228  virtual double maxThrustAcceleration() const;
229  virtual double maxClimbRate() const;
230  virtual double maxYawVelocity() const;
231  virtual double maxPitchVelocity() const;
232  virtual double maxRollVelocity() const;
233  virtual double maxAltitude() const;
234 
236  virtual bool createPortGroups();
237 
239  virtual bool createPorts();
240 
246  virtual bool createPSR();
247 
248  virtual void sendDetonation(const DtVector& geocentricPosition);
249 
250 protected:
251 
254 
257 
261 
262 protected:
263 
266 
269 
274 
281 
288 
295 
302 
309 
311 
315 
318 
321 
325 };

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)