13 #include <vlpi/disEnums.h>
17 #include <matrix/vlVector.h>
66 virtual const char*
type()
const;
83 virtual double maxSpeedSoilFactor()
const;
86 virtual double accelSoilFactor()
const;
89 virtual double decelSoilFactor()
const;
92 virtual DtString soilTypeString()
const;
104 virtual void useFuel(
double fuelUsed);
111 virtual double fuelLeft()
const;
130 virtual void updateRepository(
const DtVector & localPosition,
132 const DtTaitBryan & localOrientation,
const DtVector& rotationalVelocity,
139 virtual double calculateMaxDecelerationFromBrake(
double brake);
148 virtual double calculateAccelerationFromEngine(
double throttle,
159 virtual void calculateFactorsFromSoilAndWeather(
const DtVector& location,
160 double& tractionFactor,
double& dragFactor);
167 virtual double calculateMaximumTractionAcceleration(
const double tractionFactor);
175 virtual double calculateSoilDragDeceleration(
const double dragFactor,
181 virtual double calculateAccelerationFromSlope(
double pitch);
196 virtual void calculateOrientationAndPosition(
197 const DtVector& newLocalProjectedLocation,
double newHeading,
198 DtDcm& newLocalOrientation,
DtVector& newLocalPosition);
205 virtual bool useHighFidelityGroundClamping()
const;
209 virtual bool useNavDataGroundClamping();
222 bool groundClamp(
double heading,
const DtVector& location,
229 void groundClampHighFidelity(
double heading,
const DtVector& location,
237 void groundClampLowFidelity(
double heading,
const DtVector& location,
242 void groundClampWithNavData(
double heading,
const DtVector& location,
257 virtual double calculateHeading(
const double oldHeading,
259 const double steering,
const double throttle,
const double speed,
260 const double maxTractionAcceleration,
const double soilDragFactor,
269 virtual DtVector calculateBodyAcceleration(
double throttle,
271 const DtVector& oldBodyVelocity,
double oldPitch,
272 double maxTractionAcceleration,
double dragFactor,
double dT);
274 virtual DtVector calculateBodyVelocity(
278 virtual DtVector calculateProjectedLocation(
280 const DtVector& oldBodyVelocity,
double newHeading);
290 virtual bool checkForTerrainCollisions()
const;
297 virtual bool foundTerrainCollision(
double heading,
301 &collisionIntersectionRecord)
const;
312 virtual bool createMovementChord(
DtChord& movementChord,
315 const DtVector& newLocalPosition)
const;
321 virtual bool terrainPassable(
double heading,
323 terrainIntersectionRecord)
const;
327 virtual double calculateMaxSpeed();
331 virtual double calculateMaxAcceleration();
336 virtual void calculateDirectionOfLinearMotion(
337 const DtDcm& newLocalOrientation,
const DtVector& newLocalPosition,
338 DtDcm& newLocalDirectionOfLinearMotion);
346 virtual double slopeBoostRate()
const;
347 virtual void setSlopeBoostRate(
const double boost);
361 virtual double calculateSlopeBoostRate();
374 virtual bool createPSR();
379 virtual bool rotationalVelocityShouldBeClamped(
const DtVector&
380 bodyRotationalVelocity);
383 virtual double steeringControlValue()
const;
385 virtual double throttleControlValue()
const;
387 virtual double brakeControlValue()
const;
391 virtual bool parkingBrakeControlValue()
const;
395 virtual bool checkIfMoveOntoEmbarked(
const DtVector& localPosition);
397 virtual bool checkAndDisembarkIfEmbarked(
const DtVector& localPosition);
402 static void terainChangeNotification(
const DtExtent& spatExtent,
void* usr);
408 void processTerrainChangeNotification(
const DtExtent& spatExtent);
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
DtVector myLastPitchLocation
Member to allow for access to platform specific data.
Definition: automotiveActuatorComponent.h:492
Description: This repository holds all information that is common to all the forms of local ground en...
Definition: groundVehicleStateRepository.h:30
Definition: attachedTerrain.h:45
const DtActuatorComponent & operator=(const DtActuatorComponent &orig)
assignment operator
DtAutomotivePSR * myProcessState
Container for state data associated with this component. This state is saved and restored as part of ...
Definition: automotiveActuatorComponent.h:478
virtual bool init()
Overridden to cache a pointer to the entity's radio in this class.
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
DtBooleanInputPort * myClampToNavDataPort
Input Port Name: clamp-to-nav-data Input Port Description: Tells the actuator that it should temporar...
Definition: automotiveActuatorComponent.h:470
Definition: readerWriterRegistry.h:39
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
End User Description: DtActuator is the base class for all actuator model components. Developer Description: The DtActuator base class caches a pointer to the entity's radio for convenience. Derived classes may have articulated parts that are configured from the DtActuatorComponentDescriptor's DtSimArtPartDescriptorList. For each articulated part in the list a DtArticulatedPartStateRepository will be created to store the data for the part such as it's location, rotation and so forth. These are created in the entity's DtVrfObjectStateRepository createParts() function. This call creates all the attached parts for all the actuators. These articulated state repositories are managed by the DtAttachmentManager. They are cached by their partType which is the DIS Enumeration describing the part from the disEnums.h file and was specified in the actuator's DtActuatorComponentDescriptor as descriped above. The partType is used as the category of the DtObjectType used to look up articulated parts in the DtAttachementManager. When an actuator needs access to a particular articulated part it looks it up by the part's object type.
Definition: actuatorComponent.h:47
DtUpdateRepositoryOutputPortGroup * myUpdateRepositoryOutputPortGroup
Port group used to set what values should be set into the VRF state repository. All values are in loc...
Definition: automotiveActuatorComponent.h:482
DtConstrainedAnalogInputPort * myBrakePort
Input Port Name: brake Input Port Description: Input Port Range: 0.0 to 1.0 Input Port Default Valu...
Definition: automotiveActuatorComponent.h:444
DtConstrainedIntegerInputPort * myGearPort
Input Port Name: gear Input Port Description: Input Port Default Value: 0 Input Port Range: Reverse...
Definition: automotiveActuatorComponent.h:451
DtConstrainedAnalogInputPort * myThrottlePort
Input Port Name: throttle Input Port Description: Input Port Range: Input Port Default Value: 0 Inp...
Definition: automotiveActuatorComponent.h:430
bool myKeepParentPosition
Member to allow for access to platform specific data.
Definition: automotiveActuatorComponent.h:487
Instances of DtAutomotivePSR are used to hold the shared/checkpointable data for an automotive system...
Definition: automotivePSR.h:36
DtAutomotiveActuatorDescriptor; descriptor for the DtAutomotiveActuatorComponent component.
Definition: automotiveActuatorDescriptor.h:24
bool myDataUnavailableOnTerrainUpdate
A flag to indicate that data was not available when querying terrain during a terrain update so that ...
Definition: automotiveActuatorComponent.h:505
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
double mySlopeBoostRate
Member to allow for access to platform specific data.
Definition: automotiveActuatorComponent.h:494
DtConstrainedAnalogInputPort * mySteeringPort
Input Port Name: steering Input Port Description: Input Port Range: -1.0 to 1.0 Input Port Default V...
Definition: automotiveActuatorComponent.h:437
virtual bool createPorts()
Called by init. Derived classes should override this method to create all their input/output ports an...
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
Member to allow for access to platform specific data.
Definition: automotiveActuatorComponent.h:497
DtBooleanInputPort * myParkingBrakePort
Input Port Name: parking-brake Input Port Description: Input Port Range: Input Port Default Value: ...
Definition: automotiveActuatorComponent.h:458
DtGroundVehicleStateRepository * myGroundVehicleState
Definition: automotiveActuatorComponent.h:474
class DtSoilFactors:
Definition: soilFactors.h:31
virtual bool createPortGroups()
Called by init. Derived classes should override this method to create all their input/output port gro...
bool myTerrainUpdateTriggeredFlag
A flag that is set if the terrain has been altered.
Definition: automotiveActuatorComponent.h:500
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:90
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:70
Definition: vrfChordIntersectionRecord.h:19
DtAutoTransmissionGearEnum
Definition: automotivePSR.h:24
const DtAutomotiveActuatorDescriptor * myAutomotiveDescriptor
Member to allow for access to platform specific data.
Definition: automotiveActuatorComponent.h:486
DtUUID myWasJustEmbarkedOn
Member to allow for access to platform specific data.
Definition: automotiveActuatorComponent.h:488
double myLastPitch
Member to allow for access to platform specific data.
Definition: automotiveActuatorComponent.h:490
DtInputPortGroup * myAutomotiveControlPortGroup
Input Port Group Name: automotive-control Input Port Group Description: Provides input to the automot...
Definition: automotiveActuatorComponent.h:463
DtAutomotiveActuatorComponent provides a kinematics-based model of an automotive system.
Definition: automotiveActuatorComponent.h:45
double myLastPitchHeading
Member to allow for access to platform specific data.
Definition: automotiveActuatorComponent.h:491
DtUpdateRepositoryOutputPortGroup is a data port group of a data consumer that contains methods and p...
Definition: updateRepositoryOutputPortGroup.h:31
virtual const char * type() const =0
Returns a string identifies the class type of component. Type values are defined in compTypes...
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