51 typedef std::map<DtLifeformStaticPosture, DtLifeformState>
72 virtual const char*
type()
const;
75 virtual bool createPSR();
93 virtual double calculateMaxSpeed();
99 virtual double maxSpeedFromFacingError(
const double desiredHeading,
100 const double currentHeading)
const;
102 virtual double maxSpeedSoilFactor()
const;
104 virtual DtVector calculateProjectedLocation(
106 double newHeading,
double dt = -1);
127 virtual void calculateOrientationAndPosition(
128 const DtVector& newLocalProjectedLocation,
double newHeading,
double newFacingOrientation,
129 DtDcm& newLocalOrientation, DtDcm& newLocalDirectionOfMovement,
DtVector& newLocalPosition);
157 virtual void identifySupportSurfaceAndAltitude(
159 const double altOfTestPosition,
161 const double bodyHeight,
163 double& adjustedAltitude);
167 virtual double stepUpFractionLimit()
const;
171 virtual double underWaterFraction()
const;
178 virtual double dropSpeed()
const;
200 virtual double altitudeForNoTerrainBelow(
double projectedPointAlt,
202 double surfacePointAlt)
const;
218 virtual double altitudeForDropToSurface(
double projectedPointAlt,
220 double surfacePointAlt)
const;
231 virtual double altitudeForNearbySurface(
double projectedPointAlt,
233 double surfacePointAlt)
const;
246 virtual double altitudeForNoSurface(
double projectedPointAlt,
251 virtual void updateRepository(
const DtVector & position,
253 const DtTaitBryan & localOrientation,
const DtVector& rotationalVelocity,
259 virtual void computeAndSetPosture();
279 virtual bool checkForTerrainCollisions()
const;
283 virtual bool checkForEntityCollisions()
const;
292 virtual bool checkBlockedByTerrain(
const DtVector& oldLocalPosition,
293 DtVector& newLocalProjectedLocation,
double heightFraction = -1.0);
295 virtual bool checkBlockedByEntities(
const DtVector& oldLocalPosition,
296 DtVector& newLocalProjectedLocation);
307 virtual DtChord movementChordAtHeight(
const DtVector& oldLocalPosition,
const DtVector& newLocalProjectedLocation,
308 double heightFraction,
DtVector& intersectionVec,
DtVector& offsetFromOldPosition);
315 virtual double maxUprightTerrainPitch()
const;
321 virtual double maxWalkingSpeed()
const;
324 virtual void initializeStaticToDynamicPostureMap();
327 virtual bool computeEntityDirOfMovement(
double& heading)
const;
331 virtual double calculateTerrainPitch(
const DtVector& localPosition,
353 virtual bool getSurfacesBelow(
const DtVector& testPosition,
354 double underWaterLimit,
357 bool& dataAvailable);
362 virtual bool closestSurfaceAbove(
const DtVector& testPosition,
369 virtual bool isWater(
const DtSurface & surface);
371 static void setHeadingCallback(
DtSimMessage * msg,
void * usr);
374 static void setGroundClampFidelityCallback(
DtSimMessage * msg,
void * usr);
375 virtual void processGroundClampFidelity(
DtSimMessage* msg);
378 virtual bool checkAndDisembarkIfEmbarked(
const DtVector& localPosition);
382 virtual bool checkIfMoveOntoEmbarked(
const DtVector& localPosition);
384 virtual bool initializeAglPort();
386 virtual void setTerrainUpdateFlagsBasedonDataAvailable(
bool dataAvailable);
392 virtual void calculateOrientationAndPositionCrawling(
393 const DtVector& newLocalProjectedLocation,
double newHeading,
double newFacingOrientation,
394 DtDcm& newLocalOrientation, DtDcm& newLocalDirectionOfMovement,
DtVector& newLocalPosition);
396 virtual void groundClamp(
double heading,
399 virtual void calculateDirectionOfLinearMotion(
400 const DtDcm& newLocalOrientation,
double desiredDirectionOfMovement,
const DtVector& newLocalPosition,
401 DtDcm& newLocalDirectionOfLinearMotion);
412 static void terainChangeNotification(
const DtExtent& spatExtent,
void* usr);
418 void processTerrainChangeNotification(
const DtExtent& spatExtent);
UUID is a unique ID wrapper class.
Definition: rwUUID.h:226
#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:496
DtStaticToDynamicPostureMap myStaticToDynamicPostureMap
Definition: humanMovementActuator.h:512
Definition: attachedTerrain.h:45
DtVrfChordIntersectionRecord represents a list of DtChordIntersectRecords. This is useful for followi...
Definition: vrfChordIntersectRecordList.h:31
Description: This repository holds all information that is common to all the forms of all objects wit...
Definition: vrfMovingObjectStateRepository.h:31
DtVector myPreviousDestination
Definition: humanMovementActuator.h:533
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:33
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:502
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
DtVectorInputPort * myDestinationInputPort
Input Port Name: destination Input Port Description: Specifies the current destination of the entity ...
Definition: humanMovementActuator.h:470
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. 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
bool myWasOnGround
These states are used for controlling debug print statements.
Definition: humanMovementActuator.h:519
DtBooleanInputPort * myPostureChangingPort
Input Port Name: posture-changing Input Port Description: Will be used to halt movement if set...
Definition: humanMovementActuator.h:477
DtHumanMovementActuatorDescriptor; descriptor for the DtHumanMovementActuatorDescriptor component...
Definition: humanMovementActuatorDescriptor.h:26
bool myPreviouslyEmbarked
Definition: humanMovementActuator.h:516
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. All values are in loc...
Definition: humanMovementActuator.h:523
DtLifeformStaticPosture
These are the available static postures for lifeform (human) entities. Static postures are equivalent...
Definition: lifeformStaticPostures.h:22
DtHumanMovementActuator is a simple movement actuator for lifeforms.
Definition: humanMovementActuator.h:41
bool myAglPortInitialized
Definition: humanMovementActuator.h:530
File: simMsg.h.
Definition: simMessage.h:35
Contains the DtLifeformStaticPosture enumeration declaration.
double myPostureSpeed
Definition: humanMovementActuator.h:537
DtVector myCachedPosition
Definition: humanMovementActuator.h:531
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
double myMutablePitch
This value is the pitch of the terrain under the entity. Since it is expensive to calculate...
Definition: humanMovementActuator.h:507
DtAnalogInputPort * myFacingDirectionInputPort
Input Port Name: desired-facing-direction Input Port Description: Desired facing direction of the ent...
Definition: humanMovementActuator.h:442
DtIntegerInputPort * myDesiredStaticPostureInputPort
Input Port Name: desired-static-posture Input Port Description: The desired posture of the entity...
Definition: humanMovementActuator.h:462
DtVector myLastParentPosition
Definition: humanMovementActuator.h:510
virtual bool createPorts()
Called by init. Derived classes should override this method to create all their input/output ports an...
DtInputPortGroup * myMovementControlInputPortGroup
Input Port Group Name: movement-control Input Port Group Description: Collection of inputs specifying...
Definition: humanMovementActuator.h:454
DtAnalogInputPort * mySpeedInputPort
Input Port Name: desired-speed Input Port Description: Desired speed of the entity in m/s...
Definition: humanMovementActuator.h:449
double myDesiredFacingDirection
Definition: humanMovementActuator.h:525
DtAnalogOutputPort * myAltitudeAglOutputPort
Output Port Name: altitude-agl Output Port Description: Altitude above ground level. Output Port Range: 0 and up. Output Port Default Value: 0.
Definition: humanMovementActuator.h:491
virtual bool createPortGroups()
Called by init. Derived classes should override this method to create all their input/output port gro...
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:89
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:70
Definition: vrfChordIntersectionRecord.h:19
DtAnalogInputPort * myMovementDirectionInputPort
Input Port Name: desired-movement-direction Input Port Description: Desired movement direction of the...
Definition: humanMovementActuator.h:432
bool myPostureChanging
Definition: humanMovementActuator.h:536
bool myDataUnavailableOnTerrainUpdate
A flag to indicate that data was not available when querying terrain during a terrain update so that ...
Definition: humanMovementActuator.h:548
DtHumanStateRepository * myHumanStateRepository
Convenience pointers to our state repository.
Definition: humanMovementActuator.h:497
Definition: humanMovementActuatorPSR.h:20
std::map< DtLifeformStaticPosture, DtLifeformState > DtStaticToDynamicPostureMap
Definition: humanMovementActuator.h:52
DtUpdateRepositoryOutputPortGroup is a data port group of a data consumer that contains methods and p...
Definition: updateRepositoryOutputPortGroup.h:31
bool myMutablePitchValid
Definition: humanMovementActuator.h:508
bool myUseDesiredFacingDirectionValue
Definition: humanMovementActuator.h:526
DtHumanLocalObjectFacade myHumanLocalObjectFacade
Member to allow for access to platform specific data.
Definition: humanMovementActuator.h:540
bool myTerrainUpdateTriggeredFlag
A flag that is set if the terrain has been altered.
Definition: humanMovementActuator.h:543
DtUUID myWasJustEmbarkedOn
Definition: humanMovementActuator.h:528
virtual const char * type() const =0
Returns a string identifies the class type of component. Type values are defined in compTypes...
DtIntersectionType
Definition: intersectionRecord.h:41
const DtHumanMovementActuatorDescriptor * myHumanMovementActuatorDescriptor
Definition: humanMovementActuator.h:514
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
DtIntegerInputPort * myOverrideGroundClampFidelityPort
Input Port Name: override-ground-clamp-fidelity Input Port Description: Indicates whether or not the ...
Definition: humanMovementActuator.h:484