48 typedef std::map<DtLifeformStaticPosture, DtLifeformState>
69 virtual const char*
type()
const;
72 virtual bool createPSR();
90 virtual double calculateMaxSpeed()
const;
96 virtual double maxSpeedFromFacingError(
const double desiredHeading,
97 const double currentHeading)
const;
99 virtual double maxSpeedSoilFactor()
const;
101 virtual DtVector calculateProjectedLocation(
103 double newHeading,
double dt = -1);
124 virtual void calculateOrientationAndPosition(
125 const DtVector& newLocalProjectedLocation,
double newHeading,
double newFacingOrientation,
126 DtDcm& newLocalOrientation, DtDcm& newLocalDirectionOfMovement,
DtVector& newLocalPosition);
154 virtual void identifySupportSurfaceAndAltitude(
156 const double altOfTestPosition,
158 const double bodyHeight,
160 double& adjustedAltitude);
164 virtual double stepUpFractionLimit()
const;
168 virtual double underWaterFraction()
const;
175 virtual double dropSpeed()
const;
197 virtual double altitudeForNoTerrainBelow(
double projectedPointAlt,
199 double surfacePointAlt)
const;
215 virtual double altitudeForDropToSurface(
double projectedPointAlt,
217 double surfacePointAlt)
const;
228 virtual double altitudeForNearbySurface(
double projectedPointAlt,
230 double surfacePointAlt)
const;
243 virtual double altitudeForNoSurface(
double projectedPointAlt,
248 virtual void updateRepository(
const DtVector & position,
250 const DtTaitBryan & localOrientation,
const DtVector& rotationalVelocity,
256 virtual void computeAndSetPosture();
276 virtual bool checkForTerrainCollisions()
const;
280 virtual bool checkForEntityCollisions()
const;
289 virtual bool checkBlockedByTerrain(
const DtVector& oldLocalPosition,
290 DtVector& newLocalProjectedLocation,
double heightFraction = -1.0);
292 virtual bool checkBlockedByEntities(
const DtVector& oldLocalPosition,
293 DtVector& newLocalProjectedLocation);
304 virtual DtChord movementChordAtHeight(
const DtVector& oldLocalPosition,
const DtVector& newLocalProjectedLocation,
305 double heightFraction,
DtVector& intersectionVec,
DtVector& offsetFromOldPosition);
312 virtual double maxUprightTerrainPitch()
const;
318 virtual double maxWalkingSpeed()
const;
321 virtual void initializeStaticToDynamicPostureMap();
324 virtual bool computeEntityDirOfMovement(
double& heading)
const;
328 virtual double calculateTerrainPitch(
const DtVector& localPosition,
351 virtual bool getSurfacesBelow(
const DtVector& testPosition,
352 double underWaterLimit,
355 bool& dataAvailable);
360 virtual bool closestSurfaceAbove(
const DtVector& testPosition,
367 virtual bool isWater(
const DtSurface & surface);
369 static void setHeadingCallback(
DtSimMessage * msg,
void * usr);
372 static void setGroundClampFidelityCallback(
DtSimMessage * msg,
void * usr);
373 virtual void processGroundClampFidelity(
DtSimMessage* msg);
376 virtual bool checkAndDisembarkIfEmbarked(
const DtVector& localPosition);
380 virtual bool checkIfMoveOntoEmbarked(
const DtVector& localPosition);
382 virtual bool initializeAglPort();
384 virtual void setTerrainUpdateFlagsBasedonDataAvailable(
bool dataAvailable);
390 virtual void calculateOrientationAndPositionCrawling(
391 const DtVector& newLocalProjectedLocation,
double newHeading,
double newFacingOrientation,
392 DtDcm& newLocalOrientation, DtDcm& newLocalDirectionOfMovement,
DtVector& newLocalPosition);
394 virtual void groundClamp(
double heading,
397 virtual void calculateDirectionOfLinearMotion(
398 const DtDcm& newLocalOrientation,
double desiredDirectionOfMovement,
const DtVector& newLocalPosition,
399 DtDcm& newLocalDirectionOfLinearMotion);
410 static void terainChangeNotification(
const DtExtent& spatExtent,
void* usr);
416 void processTerrainChangeNotification(
const DtExtent& spatExtent);
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
#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
DtVrfMovingObjectStateRepository * myMovingObjectStateRepository
Convenience pointers to our state repository.
Definition: humanMovementActuator.h:494
DtStaticToDynamicPostureMap myStaticToDynamicPostureMap
Definition: humanMovementActuator.h:510
Definition: attachedTerrain.h:42
DtVrfChordIntersectionRecord represents a list of DtChordIntersectRecords.
Definition: vrfChordIntersectRecordList.h:31
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
Description: This repository holds all information that is common to all the forms of all objects wit...
Definition: vrfMovingObjectStateRepository.h:29
DtVector myPreviousDestination
Definition: humanMovementActuator.h:531
const DtActuatorComponent & operator=(const DtActuatorComponent &orig)
assignment operator
Description: This repository holds all information that is common to all the forms of humans within t...
Definition: humanStateRepository.h:32
virtual void preFirstTickInit()
This function can be overridden to initialize a component before it is ticked for the first time...
virtual bool init()
Overridden to cache a pointer to the entity's radio in this class.
DtHumanMovementActuatorPSR * myProcessState
Pointer to a process state repository used to store state data associated with this component...
Definition: humanMovementActuator.h:500
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:42
DtVectorInputPort * myDestinationInputPort
Input Port Name: destination Input Port Description: Specifies the current destination of the entity ...
Definition: humanMovementActuator.h:468
Definition: readerWriterRegistry.h:39
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
Definition: surface.h:179
End User Description: DtActuator is the base class for all actuator model components.
Definition: actuatorComponent.h:48
bool myWasOnGround
These states are used for controlling debug print statements.
Definition: humanMovementActuator.h:517
DtBooleanInputPort * myPostureChangingPort
Input Port Name: posture-changing Input Port Description: Will be used to halt movement if set...
Definition: humanMovementActuator.h:475
DtHumanMovementActuatorDescriptor; descriptor for the DtHumanMovementActuatorDescriptor component...
Definition: humanMovementActuatorDescriptor.h:26
bool myPreviouslyEmbarked
Definition: humanMovementActuator.h:514
Instances of DtAnalogOutputPort are input ports through which data producers can send real numbers...
Definition: analogIOPort.h:45
DtUpdateRepositoryOutputPortGroup * myUpdateRepositoryOutputPortGroup
Port group used to set what values should be set into the VRF state repository.
Definition: humanMovementActuator.h:521
DtLifeformStaticPosture
These are the available static postures for lifeform (human) entities.
Definition: lifeformStaticPostures.h:22
DtHumanMovementActuator is a simple movement actuator for lifeforms.
Definition: humanMovementActuator.h:38
bool myAglPortInitialized
Definition: humanMovementActuator.h:528
File: simMsg.h.
Definition: simMessage.h:35
Contains the DtLifeformStaticPosture enumeration declaration.
double myPostureSpeed
Definition: humanMovementActuator.h:535
DtVector myCachedPosition
Definition: humanMovementActuator.h:529
virtual void tick()
This gives the thread of control to the component.
double myMutablePitch
This value is the pitch of the terrain under the entity.
Definition: humanMovementActuator.h:505
DtAnalogInputPort * myFacingDirectionInputPort
Input Port Name: desired-facing-direction Input Port Description: Desired facing direction of the ent...
Definition: humanMovementActuator.h:440
DtIntegerInputPort * myDesiredStaticPostureInputPort
Input Port Name: desired-static-posture Input Port Description: The desired posture of the entity...
Definition: humanMovementActuator.h:460
DtVector myLastParentPosition
Definition: humanMovementActuator.h:508
virtual bool createPorts()
Called by init.
DtInputPortGroup * myMovementControlInputPortGroup
Input Port Group Name: movement-control Input Port Group Description: Collection of inputs specifying...
Definition: humanMovementActuator.h:452
DtAnalogInputPort * mySpeedInputPort
Input Port Name: desired-speed Input Port Description: Desired speed of the entity in m/s...
Definition: humanMovementActuator.h:447
double myDesiredFacingDirection
Definition: humanMovementActuator.h:523
DtAnalogOutputPort * myAltitudeAglOutputPort
Output Port Name: altitude-agl Output Port Description: Altitude above ground level.
Definition: humanMovementActuator.h:489
virtual bool createPortGroups()
Called by init.
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
Definition: vrfChordIntersectionRecord.h:19
DtAnalogInputPort * myMovementDirectionInputPort
Input Port Name: desired-movement-direction Input Port Description: Desired movement direction of the...
Definition: humanMovementActuator.h:430
bool myPostureChanging
Definition: humanMovementActuator.h:534
bool myDataUnavailableOnTerrainUpdate
A flag to indicate that data was not available when querying terrain during a terrain update so that ...
Definition: humanMovementActuator.h:543
DtHumanStateRepository * myHumanStateRepository
Definition: humanMovementActuator.h:495
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
Definition: humanMovementActuatorPSR.h:20
std::map< DtLifeformStaticPosture, DtLifeformState > DtStaticToDynamicPostureMap
Definition: humanMovementActuator.h:49
DtUpdateRepositoryOutputPortGroup is a data port group of a data consumer that contains methods and p...
Definition: updateRepositoryOutputPortGroup.h:28
bool myMutablePitchValid
Definition: humanMovementActuator.h:506
bool myUseDesiredFacingDirectionValue
Definition: humanMovementActuator.h:524
bool myTerrainUpdateTriggeredFlag
A flag that is set if the terrain has been altered.
Definition: humanMovementActuator.h:538
DtUUID myWasJustEmbarkedOn
Definition: humanMovementActuator.h:526
virtual const char * type() const =0
Returns a string identifies the class type of component.
DtIntersectionType
Definition: intersectionRecord.h:41
const DtHumanMovementActuatorDescriptor * myHumanMovementActuatorDescriptor
Definition: humanMovementActuator.h:512
DtIntegerInputPort * myOverrideGroundClampFidelityPort
Input Port Name: override-ground-clamp-fidelity Input Port Description: Indicates whether or not the ...
Definition: humanMovementActuator.h:482