13 #include <vlpi/disEnums.h>
16 #include <matrix/vlVector.h>
65 virtual const char*
type()
const;
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(
172 virtual double calculateAccelerationFromSlope(
double slope);
187 virtual void calculateOrientationAndPosition(
188 const DtVector& newLocalProjectedLocation,
double newHeading,
189 DtDcm& newLocalOrientation,
DtVector& newLocalPosition);
196 virtual bool useHighFidelityGroundClamping()
const;
209 bool groundClamp(
double heading,
const DtVector& location,
216 void groundClampHighFidelity(
double heading,
const DtVector& location,
224 void groundClampLowFidelity(
double heading,
const DtVector& location,
231 virtual double calculateHeading(
double oldHeading,
233 double steering,
double throttle,
double dT);
242 virtual DtVector calculateBodyAcceleration(
double throttle,
244 const DtVector& oldBodyVelocity,
double oldPitch,
double dT);
246 virtual DtVector calculateBodyVelocity(
250 virtual DtVector calculateProjectedLocation(
252 const DtVector& oldBodyVelocity,
double newHeading);
262 virtual bool checkForTerrainCollisions()
const;
269 virtual bool foundTerrainCollision(
double heading,
273 &collisionIntersectionRecord)
const;
284 virtual bool createMovementChord(
DtChord& movementChord,
287 const DtVector& newLocalPosition)
const;
293 virtual bool terrainPassable(
double heading,
295 terrainIntersectionRecord)
const;
299 virtual double calculateMaxSpeed();
303 virtual double calculateMaxAcceleration();
309 virtual double calculatePitch(
const DtVector& localPosition,
double heading,
315 virtual void calculateDirectionOfLinearMotion(
316 const DtDcm& newLocalOrientation,
const DtVector& newLocalPosition,
317 DtDcm& newLocalDirectionOfLinearMotion);
322 virtual double getPitchAdjustedMaxSpeed(
double maxSpeed,
double pitch)
const;
335 virtual bool createPSR();
340 virtual bool rotationalVelocityShouldBeClamped(
const DtVector&
341 bodyRotationalVelocity);
344 virtual double steeringControlValue()
const;
346 virtual double throttleControlValue()
const;
348 virtual double brakeControlValue()
const;
352 virtual bool parkingBrakeControlValue()
const;
356 virtual bool checkIfMoveOntoEmbarked(
const DtVector& localPosition);
358 virtual bool checkAndDisembarkIfEmbarked(
const DtVector& localPosition);