13 #include <vlpi/disEnums.h>
15 #include <matrix/LibMatrix.h>
18 #include <vl/rtiNamespace.h>
71 virtual const char*
type()
const;
90 virtual void calculateBodyVelocity(
const DtVector& oldRelativeVelocity,
91 const DtDcm& newLocalOrientation,
DtVector& newBodyVelocity);
96 virtual void calculateAirborneAcceleration(
const DtVector oldLocalPosition,
97 double oldSpeed,
const DtDcm& newLocalOrientation,
98 const DtVector& newBodyVelocity,
double throttle,
104 virtual void doFlying();
107 virtual void doTaxiing();
111 virtual bool isTouchingDown(
const DtVector& newLocalPosition,
112 const DtVector& newRelativeVelocity);
116 virtual bool isTakingOff(
bool isOnGround,
double speed);
118 virtual bool updateGroundInteractionPoints(
123 const DtDcm& localOrientation,
125 double halfHeightOfTerrainIntersectChord);
131 virtual double calculateYawRate(
double pedal);
134 virtual double calculatePitchRate(
double stickYValue);
137 virtual double calculateRollRate(
double stickXValue);
139 virtual void calculateBodyRotationRates(
double pedal,
double stickXValue,
140 double stickYValue,
DtVector& newBodyRotationRates);
144 virtual void calculateOrientation(
const DtDcm&
145 oldLocalOrientation,
const DtVector& newBodyRotationRates,
146 DtDcm& newLocalOrientation);
149 virtual void calculateBodyGravity(
const DtVector oldLocalPosition,
150 const DtDcm& newLocalOrientation,
DtVector& newBodyGravityAcceleration);
154 virtual void calculateThrustAcceleration(
double throttle,
155 DtVector& newBodyThrustAccleration);
161 virtual void calculateDragAcceleration(
double oldSpeed,
162 const DtVector& newBodyVelocity,
bool flapsDeployed,
169 virtual void fallFromSky(
const DtString& reason = DtString::nullString());
171 virtual bool collidesWithGround(
const DtVector& oldLocalPosition,
175 void integrate(
const DtVector& oldLocalPosition,
176 const DtVector& oldRelativeVelocity,
179 double maxSpeed = 0);
185 virtual void useFuel(
double fuelUsed);
186 virtual double fuelLeft()
const;
189 virtual double fullMass()
const;
192 virtual double currentMass()
const;
198 virtual double calculateHeading(
double oldHeading,
199 double steering,
double dT,
double speed,
double turningRadius);
201 virtual void calculateScalarVelocityAndAcceleration(
202 double oldPitch,
double &scalarVelocity,
double &scalarAcceleration);
203 virtual double calculateMaxGroundSpeed();
204 virtual double calculateMaxGroundAcceleration();
208 virtual double calculateAcceleration(
double pitch,
double maxSpeed,
209 double maxAccel,
double newSpeed);
210 virtual double calculateAccelerationFromThrottle();
213 virtual double calculateAccelerationFromSlope(
double slope);
215 virtual double calculateAccelerationFromResistance(
double maxSpeed,
217 virtual double calculateAccelerationFromBrake(
double otherAccels);
219 virtual DtVector calculateProjectedLocation(
221 const DtVector& oldBodyVelocity,
double newHeading);
223 virtual void calculateOrientationAndPositionOnGround(
224 const DtVector& newLocalProjectedLocation,
double newHeading,
225 DtDcm& newLocalOrientation,
DtVector& newLocalPosition);
228 virtual void updateRepository(
const DtVector& newLocalPosition,
229 const DtVector& newRelativeVelocity,
230 const DtVector& newRelativeAcceleration,
231 const DtDcm& newLocalOrientation,
const DtVector& newBodyRotationRates,
232 bool isOnGround,
const DtAppearance& newAppearance);
234 virtual void updateDisplay()
const;
238 virtual double maxThrustAcceleration()
const;
239 virtual double maxClimbRate()
const;
240 virtual double maxYawVelocity()
const;
241 virtual double maxPitchVelocity()
const;
242 virtual double maxRollVelocity()
const;
243 virtual double maxAltitude()
const;
256 virtual bool createPSR();
259 virtual bool createFuelConsumptionModel();
261 virtual void sendDetonation(
const DtVector& geocentricPosition);
264 virtual void forceSpatialUpdate();
268 virtual void initializeSpatialAttributeList();