15 #include <matrix/vlVector.h>
16 #include <matrix/vlTaitBryan.h>
17 #include <matrix/coordTransform.h>
43 bool useAcceleration,
bool useHighGroundClamp,
const DtAttachedTerrain* attachedTerrain);
60 const int drivingLane,
double headingDiff,
bool useLocalPos =
false,
DtVector currentLocalPos = DtVector::zero());
64 virtual bool turnValid(
int currentLane);
67 const int passingLane);
71 virtual bool modifyTurnSpline(
const DtVector ¤tLocalPos,
const DtRailSegment * currentSegment,
const DtRailSegment * nextSegment,
const int currentLane,
const int passingLane);
74 virtual void setUpLaneSwitch(
const DtVector& projectedLocation,
DtRailSegment *currentSeg,
const int currentLane,
75 const int passingLane);
79 double drivingSpeed,
int passingLane, DtTime simTime = 0.0);
82 virtual void updateNoMovement();
94 virtual const DtCoordTransform & localToBodyTransform()
const;
106 virtual void useFuel(
double fuelUsed);
108 virtual bool checkEntityImmobilized();
115 virtual double fuelLeft()
const;
134 virtual void updateRepository(
const DtVector & localPosition,
136 const DtTaitBryan & localOrientation,
const DtVector& rotationalVelocity,
142 virtual double calculateAcceleration(
double desiredSpeed);
157 virtual void calculateOrientationAndPosition(
158 const DtVector& newLocalProjectedLocation,
double newHeading,
159 DtDcm& newLocalOrientation,
DtVector& newLocalPosition);
172 bool groundClamp(
double heading,
const DtVector& location,
179 void groundClampHighFidelity(
double heading,
const DtVector& location,
187 void groundClampLowFidelity(
double heading,
const DtVector& location,
191 virtual DtVector calculateRotationalVelocity(
192 const DtTaitBryan& newTopoOrientation,
193 const DtTaitBryan& oldTopoOrientation,
double dT);
198 virtual void calculateDirectionOfLinearMotion(
199 const DtDcm& newLocalOrientation,
const DtVector& newLocalPosition,
200 DtDcm& newLocalDirectionOfLinearMotion);
204 virtual DtVector calculateBodyAcceleration(
double desiredSpeed,
205 const DtVector& oldBodyVelocity,
double dT);
207 virtual DtVector calculateBodyVelocity(
211 virtual DtVector calculateProjectedLocation(
213 const DtVector& oldBodyVelocity,
const DtVector & newBodyVelocity,
double newHeading);
218 virtual bool rotationalVelocityShouldBeClamped(
const DtVector&
219 bodyRotationalVelocity);
224 virtual bool passedTurnPoint(
double distSq,
double & differance);
239 int lanePos,
DtVector projectedPos);
243 virtual void determinePosition(
const DtRailSegment * currentSeg,
const int currentLane,
244 DtVector& newLocalProjectedLocation);