13 #include <vlpi/disEnums.h>
15 #include <matrix/LibMatrix.h>
85 virtual void calculateBodyVelocity(
const DtVector& oldRelativeVelocity,
86 const DtDcm& newLocalOrientation,
DtVector& newBodyVelocity);
91 virtual void calculateAirborneAcceleration(
const DtVector oldLocalPosition,
92 double oldSpeed,
const DtDcm& newLocalOrientation,
93 const DtVector& newBodyVelocity,
double throttle,
99 virtual void doFlying();
102 virtual void doTaxiing();
106 virtual bool isTouchingDown(
const DtVector& newLocalPosition,
107 const DtVector& newRelativeVelocity);
111 virtual bool isTakingOff(
bool isOnGround,
double speed);
113 virtual bool updateGroundInteractionPoints(
118 const DtDcm& localOrientation,
120 double halfHeightOfTerrainIntersectChord);
126 virtual double calculateYawRate(
double pedal);
129 virtual double calculatePitchRate(
double stickYValue);
132 virtual double calculateRollRate(
double stickXValue);
134 virtual void calculateBodyRotationRates(
double pedal,
double stickXValue,
135 double stickYValue,
DtVector& newBodyRotationRates);
139 virtual void calculateOrientation(
const DtDcm&
140 oldLocalOrientation,
const DtVector& newBodyRotationRates,
141 DtDcm& newLocalOrientation);
144 virtual void calculateBodyGravity(
const DtVector oldLocalPosition,
145 const DtDcm& newLocalOrientation,
DtVector& newBodyGravityAcceleration);
149 virtual void calculateThrustAcceleration(
double throttle,
150 DtVector& newBodyThrustAccleration);
156 virtual void calculateDragAcceleration(
double oldSpeed,
157 const DtVector& newBodyVelocity,
bool flapsDeployed,
164 virtual void fallFromSky(
const DtString& reason = DtString::nullString());
166 virtual bool collidesWithGround(
const DtVector& oldLocalPosition,
170 void integrate(
const DtVector& oldLocalPosition,
171 const DtVector& oldRelativeVelocity,
174 double maxSpeed = 0);
180 virtual void useFuel(
double fuelUsed);
181 virtual double fuelLeft()
const;
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,
195 virtual double calculateAccelerationFromThrottle();
197 virtual double calculateAccelerationFromSlope(
double slope);
199 virtual double calculateAccelerationFromResistance(
double maxSpeed,
201 virtual double calculateAccelerationFromBrake(
double otherAccels);
203 virtual DtVector calculateProjectedLocation(
205 const DtVector& oldBodyVelocity,
double newHeading);
207 virtual void calculateOrientationAndPositionOnGround(
208 const DtVector& newLocalProjectedLocation,
double newHeading,
209 DtDcm& newLocalOrientation,
DtVector& newLocalPosition);
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);
218 virtual void updateDisplay()
const;
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;
240 virtual bool createPSR();
242 virtual void sendDetonation(
const DtVector& geocentricPosition);