13 #include <vlpi/disEnums.h>
15 #include <matrix/LibMatrix.h>
84 virtual void calculateBodyVelocity(
const DtVector& oldRelativeVelocity,
85 const DtDcm& newLocalOrientation,
DtVector& newBodyVelocity);
90 virtual void calculateAirborneAcceleration(
const DtVector oldLocalPosition,
91 double oldSpeed,
const DtDcm& newLocalOrientation,
92 const DtVector& newBodyVelocity,
double throttle,
98 virtual void doFlying();
101 virtual void doTaxiing();
105 virtual bool isTouchingDown(
const DtVector& newLocalPosition,
106 const DtVector& newRelativeVelocity);
110 virtual bool isTakingOff(
bool isOnGround,
double speed);
112 virtual bool updateGroundInteractionPoints(
117 const DtDcm& localOrientation,
119 double halfHeightOfTerrainIntersectChord);
125 virtual double calculateYawRate(
double pedal);
128 virtual double calculatePitchRate(
double stickYValue);
131 virtual double calculateRollRate(
double stickXValue);
133 virtual void calculateBodyRotationRates(
double pedal,
double stickXValue,
134 double stickYValue,
DtVector& newBodyRotationRates);
138 virtual void calculateOrientation(
const DtDcm&
139 oldLocalOrientation,
const DtVector& newBodyRotationRates,
140 DtDcm& newLocalOrientation);
143 virtual void calculateBodyGravity(
const DtVector oldLocalPosition,
144 const DtDcm& newLocalOrientation,
DtVector& newBodyGravityAcceleration);
148 virtual void calculateThrustAcceleration(
double throttle,
149 DtVector& newBodyThrustAccleration);
155 virtual void calculateDragAcceleration(
double oldSpeed,
156 const DtVector& newBodyVelocity,
bool flapsDeployed,
163 virtual void fallFromSky(
const DtString& reason = DtString::nullString());
165 virtual bool collidesWithGround(
const DtVector& oldLocalPosition,
169 void integrate(
const DtVector& oldLocalPosition,
170 const DtVector& oldRelativeVelocity,
178 virtual void useFuel(
double fuelUsed);
179 virtual double fuelLeft()
const;
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,
193 virtual double calculateAccelerationFromThrottle();
195 virtual double calculateAccelerationFromSlope(
double slope);
197 virtual double calculateAccelerationFromResistance(
double maxSpeed,
199 virtual double calculateAccelerationFromBrake(
double otherAccels);
201 virtual DtVector calculateProjectedLocation(
203 const DtVector& oldBodyVelocity,
double newHeading);
205 virtual void calculateOrientationAndPositionOnGround(
206 const DtVector& newLocalProjectedLocation,
double newHeading,
207 DtDcm& newLocalOrientation,
DtVector& newLocalPosition);
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);
216 virtual void updateDisplay()
const;
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;
238 virtual bool createPSR();
240 virtual void sendDetonation(
const DtVector& geocentricPosition);