9 #include <matrix/vlVector.h>
10 #include <matrix/vlTaitBryan.h>
11 #include <matrix/coordTransform.h>
25 #define DT_ROAD_MOVE_COAST_DECEL_FRACTION 0.5
29 #define DT_ROAD_MOVE_DESTROYED_DECELERATION -5.0
62 virtual void movementComplete();
74 virtual void updateRailAndWorldPosition(
DtRoadSegment* currentSeg,
double newAccel,
75 double dT,
double simTime = 0.0);
79 virtual void updateNoMovement();
92 virtual void kinematicUpdate(
const double oldSpeed,
const double accel,
93 const double dt,
double& deltaPosition,
double& newSpeed,
111 virtual void doKinematicUpdateAlongRail(
114 const int roadLaneNum,
115 const double oldPositionInLane,
116 const double oldSpeed,
118 double & newPositionInLane,
119 double & newLateralOffset,
120 double & laneChangeHeadingOffset,
122 double & newRotationRate);
139 virtual void computePositionInDownstreamSegment(
142 double & newPositionInLane,
143 const double newLateralOffset,
144 double &segmentCurveHeadingOffset,
167 virtual void updateLateralOffset(
const double currentOffset,
168 const double distanceBetweenLanes,
const double speed,
170 double & newLateralOffset,
double& newHeadingOffset,
171 double &headingChangeRate);
180 virtual void updatePsrWithNewState(
181 const int roadLaneNum,
182 const bool isSwitchingLanes,
183 const int roadSegmentIndex,
184 const double positionInLane,
185 double lateralOffset,
186 const double newSpeed,
187 const double newAccel,
198 virtual void computeBodyMotionVectors(
const double speed,
199 const double accel,
const double turnRate,
const double dt,
207 virtual void computeRepositoryUpdateVariables(
210 const DtVector & newBodyAcceleration,
211 const DtDcm & newLocalOrientation,
212 const double newRotationRate,
215 DtTaitBryan & newLocalOrientationTb,
216 DtVector & newBodyRotationalVelocity
225 virtual void useFuel(
double fuelUsed);
227 virtual bool isEntityImmobilized();
234 virtual double fuelLeft()
const;
253 virtual void updateRepository(
const DtVector & localPosition,
255 const DtTaitBryan & localOrientation,
const DtVector& rotationalVelocity,
283 virtual void calculateOrientationAndPosition(
284 const DtVector& newLocalProjectedLocation,
const double newHeading,
285 DtDcm& newLocalOrientation,
DtVector& newLocalPosition);
290 virtual void calculateOriginLocation(
291 const DtVector & turnCenterLocation,
292 const double heading,
306 bool groundClamp(
const double heading,
const DtVector& location,
313 void groundClampHighFidelity(
const double heading,
const DtVector& location,
321 void groundClampLowFidelity(
const double heading,
const DtVector& location,