13 #include <vlpi/disEnums.h>
30 class DtChordIntersectionRecord;
82 virtual double maxSpeedSoilFactor()
const;
85 virtual double accelSoilFactor()
const;
88 virtual double decelSoilFactor()
const;
100 virtual void useFuel(
double fuelUsed);
107 virtual double fuelLeft()
const;
126 virtual void updateRepository(
const DtVector & localPosition,
128 const DtTaitBryan & localOrientation,
const DtVector& rotationalVelocity,
136 virtual double calculateMaxDecelerationFromFriction(
143 virtual double calculateMaxDecelerationFromBrake(
double brake);
149 virtual double calculateAccelerationFromEngine(
double throttle,
162 virtual double calculateDecelerationFromSoilType(
170 virtual double calculateAccelerationFromSlope(
double slope);
185 virtual void calculateOrientationAndPosition(
186 const DtVector& newLocalProjectedLocation,
double newHeading,
187 DtDcm& newLocalOrientation,
DtVector& newLocalPosition);
194 virtual bool useHighFidelityGroundClamping()
const;
207 bool groundClamp(
double heading,
const DtVector& location,
214 void groundClampHighFidelity(
double heading,
const DtVector& location,
222 void groundClampLowFidelity(
double heading,
const DtVector& location,
229 virtual double calculateHeading(
double oldHeading,
231 double steering,
double throttle,
double dT);
240 virtual DtVector calculateBodyAcceleration(
double throttle,
242 const DtVector& oldBodyVelocity,
double oldPitch,
double dT);
244 virtual DtVector calculateBodyVelocity(
248 virtual DtVector calculateProjectedLocation(
250 const DtVector& oldBodyVelocity,
double newHeading);
260 virtual bool checkForTerrainCollisions()
const;
267 virtual bool foundTerrainCollision(
double heading,
270 DtChordIntersectionRecord
271 &collisionIntersectionRecord)
const;
282 virtual bool createMovementChord(DtChord& movementChord,
285 const DtVector& newLocalPosition)
const;
291 virtual bool terrainPassable(
double heading,
292 const DtChordIntersectionRecord&
293 terrainIntersectionRecord)
const;
297 virtual double calculateMaxSpeed();
301 virtual double calculateMaxAcceleration();
306 virtual DtVector calculateRotationalVelocity(
307 const DtDcm& newOrientation,
308 const DtDcm& oldOrientation,
double dT);
314 virtual double calculatePitch(
const DtVector& localPosition,
double heading,
320 virtual void calculateDirectionOfLinearMotion(
321 const DtDcm& newLocalOrientation,
const DtVector& newLocalPosition,
322 DtDcm& newLocalDirectionOfLinearMotion);
327 virtual double getPitchAdjustedMaxSpeed(
double maxSpeed,
double pitch)
const;
340 virtual bool createPSR();
345 virtual bool rotationalVelocityShouldBeClamped(
const DtVector&
346 bodyRotationalVelocity);
349 virtual double steeringControlValue()
const;
351 virtual double throttleControlValue()
const;
353 virtual double brakeControlValue()
const;
357 virtual bool parkingBrakeControlValue()
const;