9 #include <matrix/vlVector.h>
10 #include <matrix/vlTaitBryan.h>
11 #include <matrix/coordTransform.h>
26 #define DT_ROAD_MOVE_COAST_DECEL_FRACTION 0.5
30 #define DT_ROAD_MOVE_DESTROYED_DECELERATION -5.0
63 virtual void movementComplete();
75 virtual void updateRailAndWorldPosition(
DtRoadSegment* currentSeg,
double newAccel,
76 double dT,
double simTime = 0.0);
80 virtual void updateNoMovement();
93 virtual void kinematicUpdate(
const double oldSpeed,
const double accel,
94 const double dt,
double& deltaPosition,
double& newSpeed,
112 virtual void doKinematicUpdateAlongRail(
115 const int roadLaneNum,
116 const double oldPositionInLane,
117 const double oldSpeed,
119 double & newPositionInLane,
120 double & newLateralOffset,
121 double & laneChangeHeadingOffset,
123 double & newRotationRate);
140 virtual void computePositionInDownstreamSegment(
143 double & newPositionInLane,
144 const double newLateralOffset,
145 double &segmentCurveHeadingOffset,
168 virtual void updateLateralOffset(
const double currentOffset,
169 const double distanceBetweenLanes,
const double speed,
171 double & newLateralOffset,
double& newHeadingOffset,
172 double &headingChangeRate);
181 virtual void updatePsrWithNewState(
182 const int roadLaneNum,
183 const bool isSwitchingLanes,
184 const int roadSegmentIndex,
185 const double positionInLane,
186 double lateralOffset,
187 const double newSpeed,
188 const double newAccel,
199 virtual void computeBodyMotionVectors(
const double speed,
200 const double accel,
const double turnRate,
const double dt,
208 virtual void computeRepositoryUpdateVariables(
211 const DtVector & newBodyAcceleration,
212 const DtDcm & newLocalOrientation,
213 const double newRotationRate,
216 DtTaitBryan & newLocalOrientationTb,
217 DtVector & newBodyRotationalVelocity
226 virtual void useFuel(
double fuelUsed);
228 virtual bool isEntityImmobilized();
235 virtual double fuelLeft()
const;
254 virtual void updateRepository(
const DtVector & localPosition,
256 const DtTaitBryan & localOrientation,
const DtVector& rotationalVelocity,
284 virtual void calculateOrientationAndPosition(
285 const DtVector& newLocalProjectedLocation,
const double newHeading,
286 DtDcm& newLocalOrientation,
DtVector& newLocalPosition);
291 virtual void calculateOriginLocation(
292 const DtVector & turnCenterLocation,
293 const double heading,
307 bool groundClamp(
const double heading,
const DtVector& location,
314 void groundClampHighFidelity(
const double heading,
const DtVector& location,
322 void groundClampLowFidelity(
const double heading,
const DtVector& location,