9 #include <matrix/vlVector.h>
10 #include <matrix/vlTaitBryan.h>
11 #include <matrix/coordTransform.h>
27 #define DT_ROAD_MOVE_COAST_DECEL_FRACTION 0.5
31 #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,
DtRoadMovementController * myController
Definition: roadMovementUpdater.h:340
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
Definition: attachedTerrain.h:46
Description: This repository holds all information that is common to all the forms of all objects wit...
Definition: vrfMovingObjectStateRepository.h:31
DtRailSegment are segments entities can follow when using the rail movement system.
Definition: railSegment.h:23
Instances of DtRailMovementControllerPSR are used to hold the shared/checkpointable data for a rail m...
Definition: railMovementControllerPSR.h:48
DtRailMovementControllerPSR * myRailMovementPSR
Definition: roadMovementUpdater.h:341
DtRoadMovementController is a movement controller that models an entity's movement along a road path...
Definition: roadMovementController.h:65
Models an entity moving along a generated road path. Provides a kinematics-based model of an entity m...
Definition: roadMovementUpdater.h:42
const DtAttachedTerrain * myAttachedTerrain
Used to ground clamp the entity– TODO how we ground clamp, ie get access to terrain may change...
Definition: roadMovementUpdater.h:346
DtUpdateRepositoryOutputPortGroup * myUpdateRepositoryOutputPortGroup
Port group used to set what values should be set into the VRF state repository. All values are in loc...
Definition: roadMovementUpdater.h:352
bool myUseHighFidelityGroundClamping
Definition: roadMovementUpdater.h:347
bool myWarnedAboutImmobilizedOnce
To warn user about new immobilization just once.
Definition: roadMovementUpdater.h:355
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Description of one segment of a road.
Definition: roadSegment.h:394
bool myDrivingOnLeft
Definition: roadMovementUpdater.h:348
DtUpdateRepositoryOutputPortGroup is a data port group of a data consumer that contains methods and p...
Definition: updateRepositoryOutputPortGroup.h:31
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
Member to allow for access to platform specific data.
Definition: roadMovementUpdater.h:358
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86