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;
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();
203 virtual double calculateAccelerationFromSlope(
double slope);
205 virtual double calculateAccelerationFromResistance(
double maxSpeed,
207 virtual double calculateAccelerationFromBrake(
double otherAccels);
209 virtual DtVector calculateProjectedLocation(
211 const DtVector& oldBodyVelocity,
double newHeading);
213 virtual void calculateOrientationAndPositionOnGround(
214 const DtVector& newLocalProjectedLocation,
double newHeading,
215 DtDcm& newLocalOrientation,
DtVector& newLocalPosition);
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);
224 virtual void updateDisplay()
const;
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;
246 virtual bool createPSR();
248 virtual void sendDetonation(
const DtVector& geocentricPosition);