13 #include <vlpi/disEnums.h>
15 #include <matrix/LibMatrix.h>
18 #include <vl/rtiNamespace.h>
70 virtual const char*
type()
const;
89 virtual void calculateBodyVelocity(
const DtVector& oldRelativeVelocity,
90 const DtDcm& newLocalOrientation,
DtVector& newBodyVelocity);
95 virtual void calculateAirborneAcceleration(
const DtVector oldLocalPosition,
96 double oldSpeed,
const DtDcm& newLocalOrientation,
97 const DtVector& newBodyVelocity,
double throttle,
103 virtual void doFlying();
106 virtual void doTaxiing();
110 virtual bool isTouchingDown(
const DtVector& newLocalPosition,
111 const DtVector& newRelativeVelocity);
115 virtual bool isTakingOff(
bool isOnGround,
double speed);
117 virtual bool updateGroundInteractionPoints(
122 const DtDcm& localOrientation,
124 double halfHeightOfTerrainIntersectChord);
130 virtual double calculateYawRate(
double pedal);
133 virtual double calculatePitchRate(
double stickYValue);
136 virtual double calculateRollRate(
double stickXValue);
138 virtual void calculateBodyRotationRates(
double pedal,
double stickXValue,
139 double stickYValue,
DtVector& newBodyRotationRates);
143 virtual void calculateOrientation(
const DtDcm&
144 oldLocalOrientation,
const DtVector& newBodyRotationRates,
145 DtDcm& newLocalOrientation);
148 virtual void calculateBodyGravity(
const DtVector oldLocalPosition,
149 const DtDcm& newLocalOrientation,
DtVector& newBodyGravityAcceleration);
153 virtual void calculateThrustAcceleration(
double throttle,
154 DtVector& newBodyThrustAccleration);
160 virtual void calculateDragAcceleration(
double oldSpeed,
161 const DtVector& newBodyVelocity,
bool flapsDeployed,
168 virtual void fallFromSky(
const DtString& reason = DtString::nullString());
170 virtual bool collidesWithGround(
const DtVector& oldLocalPosition,
174 void integrate(
const DtVector& oldLocalPosition,
175 const DtVector& oldRelativeVelocity,
178 double maxSpeed = 0);
184 virtual void useFuel(
double fuelUsed);
185 virtual double fuelLeft()
const;
192 virtual double calculateHeading(
double oldHeading,
193 double steering,
double dT,
double speed,
double turningRadius);
195 virtual void calculateScalarVelocityAndAcceleration(
196 double oldPitch,
double &scalarVelocity,
double &scalarAcceleration);
197 virtual double calculateMaxGroundSpeed();
198 virtual double calculateMaxGroundAcceleration();
202 virtual double calculateAcceleration(
double pitch,
double maxSpeed,
203 double maxAccel,
double newSpeed);
204 virtual double calculateAccelerationFromThrottle();
207 virtual double calculateAccelerationFromSlope(
double slope);
209 virtual double calculateAccelerationFromResistance(
double maxSpeed,
211 virtual double calculateAccelerationFromBrake(
double otherAccels);
213 virtual DtVector calculateProjectedLocation(
215 const DtVector& oldBodyVelocity,
double newHeading);
217 virtual void calculateOrientationAndPositionOnGround(
218 const DtVector& newLocalProjectedLocation,
double newHeading,
219 DtDcm& newLocalOrientation,
DtVector& newLocalPosition);
222 virtual void updateRepository(
const DtVector& newLocalPosition,
223 const DtVector& newRelativeVelocity,
224 const DtVector& newRelativeAcceleration,
225 const DtDcm& newLocalOrientation,
const DtVector& newBodyRotationRates,
226 bool isOnGround,
const DtAppearance& newAppearance);
228 virtual void updateDisplay()
const;
232 virtual double maxThrustAcceleration()
const;
233 virtual double maxClimbRate()
const;
234 virtual double maxYawVelocity()
const;
235 virtual double maxPitchVelocity()
const;
236 virtual double maxRollVelocity()
const;
237 virtual double maxAltitude()
const;
250 virtual bool createPSR();
252 virtual void sendDetonation(
const DtVector& geocentricPosition);
255 virtual void forceSpatialUpdate();
259 virtual void initializeSpatialAttributeList();