![]() |
VR-Forces Developer's Guide
|
DtHumanMovementActuator is a simple movement actuator for lifeforms.
Developer Description: It moves in the requested speed (clamped by the max speed of the entity) and direction. The entity will speed up, slow down, and turn instantly when the requested values change.
Uses Descriptor Type: DtHumanMovementActuatorDescriptor

Public Types | |
| typedef std::map < DtLifeformStaticPosture, DtLifeformState > | DtStaticToDynamicPostureMap |
Public Types inherited from DtReaderWriter | |
| typedef std::vector < DtSymbolString > | aliasContainer |
| typedef std::vector < DtSymbolString >::iterator | aliasIter |
| typedef std::vector < DtSymbolString > ::const_iterator | aliasConstIter |
| typedef std::vector< DtFilename > | SearchPaths |
| typedef std::pair < DtSymbolString, DtString > | DtVariableNameType |
| typedef DtReaderWriterFactory *(* | DtReaderWriterFactoryCreatorFcn )() |
Public Member Functions | |
| DtHumanMovementActuator (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) | |
| virtual | ~DtHumanMovementActuator () |
| virtual bool | init () |
| virtual const char * | type () const |
| virtual bool | createPSR () |
| virtual void | preFirstTickInit () |
| virtual void | tick () |
Public Member Functions inherited from DtActuatorComponent | |
| virtual | ~DtActuatorComponent () |
| virtual DtSimRadio * | radio () |
| virtual bool | tickWhileDestroyed () const |
Public Member Functions inherited from DtSimComponent | |
| DtSimComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) | |
| virtual | ~DtSimComponent () |
| virtual void | setParentSystem (DtComponentSystem *system) |
| DtComponentSystem * | parentSystem () const |
| virtual bool | postAddComponentsInit () |
| virtual void | registerAttributeFunctions () |
| virtual void | postTick () |
| virtual void | timedTick () |
| virtual void | setMinTickPeriod (double minTickPeriod, double minTickPeriodVariance) |
| virtual void | setupFirstTickTime () |
| virtual void | setEntity (DtLocalObject *entity) |
| virtual DtSimComponent * | nextComponent () |
| virtual DtSimComponent * | prevComponent () |
| virtual void | setListItem (DtListItem *item) |
| virtual DtListItem * | listItem () |
| virtual void | putData (std::string &fp, int indentLevel=0) |
| virtual DtlObjPtr | getData (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) |
| virtual void | addInputPort (DtInputPort *port) |
| virtual void | removeInputPort (DtInputPort *port) |
| virtual DtInputPort * | lookupInputPort (const DtString &portName) |
| virtual DtList | inputPortList () const |
| virtual void | addOutputPort (DtOutputPort *port) |
| virtual void | removeOutputPort (DtOutputPort *port) |
| virtual DtOutputPort * | lookupOutputPort (const DtString &portName) |
| virtual DtList | outputPortList () const |
| virtual void | addInputPortGroup (DtInputPortGroup *group) |
| virtual void | removeInputPortGroup (DtInputPortGroup *group) |
| virtual DtInputPortGroup * | lookupInputPortGroup (const DtString &groupName) |
| virtual DtList | inputPortGroupList () const |
| virtual void | addOutputPortGroup (DtOutputPortGroup *group) |
| virtual void | removeOutputPortGroup (DtOutputPortGroup *group) |
| virtual DtOutputPortGroup * | lookupOutputPortGroup (const DtString &groupName) |
| virtual DtList | outputPortGroupList () const |
| virtual int | priority () const |
| virtual void | setPriority (int priority) |
| double | dT () const |
| virtual void | setDT (double deltaT) |
| virtual void | setComponentDescriptor (DtComponentDescriptor *componentDescriptor) |
| virtual const DtComponentDescriptor * | componentDescriptor () const |
| DtVrfProcessStateRepositoryManager * | psrManager () |
| virtual const DtSymbolString & | componentFullName () const |
| DtPhysicalWorld * | physicalWorld () |
| const DtPhysicalWorld * | physicalWorld () const |
| const DtAttachedTerrain * | terrainAttachedTo () const |
| DtLocalObject * | entity () |
| const DtLocalObject * | entity () const |
| DtSimulationServices * | simulationServices () |
| const DtSimulationServices * | simulationServices () const |
| const Coordinate_System * | coordinateSystem () const |
| virtual void | isClutterChanged () |
| virtual bool | taskVisualizationsActive () const |
| virtual bool | taskVisualizationsEnabled () const |
| virtual void | onRestore () |
| makVrf::DtTaskVisualizationMap & | taskVisualizations () |
| virtual void | enable () |
| virtual void | disable () |
| virtual bool | isEnabled () |
| virtual void | setIsEnabled (bool yesNo) |
| virtual DtOutputStream & | objectConsoleDebug (const DtString &channel="") const |
| virtual DtOutputStream & | objectConsoleVerbose (const DtString &channel="") const |
| virtual DtOutputStream & | objectConsoleInfo (const DtString &channel="") const |
| virtual DtOutputStream & | objectConsoleWarn (const DtString &channel="") const |
| virtual DtOutputStream & | objectConsoleError (const DtString &channel="") const |
| virtual int | notifyLevel () const |
| virtual DtSimResourceManager & | resourceManager () |
| virtual const DtSimResourceManager & | resourceManager () const |
| VRF4API_METHOD const DtSimulationServices * | simManager () const |
Public Member Functions inherited from DtReaderWriter | |
| DtReaderWriter () | |
| DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false) | |
| DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false) | |
| DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL) | |
| DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL) | |
| DtReaderWriter (const DtReaderWriter &, DtReaderWriterRegistry *parentRegistry=NULL) | |
| const DtReaderWriter & | operator= (const DtReaderWriter &orig) |
| bool | operator== (const DtReaderWriter &) const |
| bool | operator!= (const DtReaderWriter &rhs) |
| virtual | ~DtReaderWriter () |
| virtual void | putSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| virtual void | postPutSelf () |
| virtual void | prePutSelf () |
| virtual void | getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| virtual void | postGetSelf () |
| virtual void | preGetSelf () |
| virtual void | writeSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| virtual DtSymbolString | name () const |
| virtual void | addAlias (const DtSymbolString &alias) |
| virtual void | addAlias (const DtString &alias) |
| virtual bool | hasAlias (const DtSymbolString &alias) |
| virtual const aliasContainer & | aliases () const |
| virtual void | setReadonly (bool flag) |
| bool | isReadonly () const |
| virtual void | reset () |
| virtual int | alignment () const |
| virtual bool | variableIsBound () const |
| virtual void | unbindVariable () |
| virtual void | setName (const DtString &) |
| virtual const char * | readerWriterType () const |
| virtual const char * | xmlType () const |
| virtual DtString | prettyPrint () const |
| std::string | debugText () const |
| virtual void | bindVariables (DtVariableBindingsList variableBindings) |
| virtual std::list < DtVariableNameType > | unboundVariables () const |
| bool | invalid () const |
| virtual bool | hasChild (const DtReaderWriter *p) const |
| virtual bool | hasVariableReference () const |
| virtual void | bindLocalVariables (const DtVariableBindingsList &variableBindings) |
| virtual void | recordUpdateTime () const |
| virtual bool | changedSinceLastChecked () |
| virtual bool | peekChangedSinceLastChecked () const |
| virtual void | setValueSpecified (bool specified, bool recurse=false) |
| virtual bool | valueSpecified () const |
| virtual bool | isVariableReference () const |
| virtual void | setIsVariableReference (bool value) |
| virtual void | clearAllVariableReferenceFlags () |
| virtual DtSymbolString | variableName () const |
| virtual void | setVariableName (const DtSymbolString variableName) |
| virtual const DtReaderWriter * | defaultRWValue () const |
| virtual DtReaderWriter * | defaultRWValue () |
| virtual void | setDefaultRWValue (DtReaderWriter *) |
| virtual bool | checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| const DtReaderWriterRegistry & | registry () const |
| DtReaderWriterRegistry & | registry () |
| virtual DtPropertyInterface * | property () |
| virtual const DtPropertyInterface * | property () const |
| virtual DtString | toXml () const |
| virtual DtRwVariableBindings * | generateVariableBindings () const |
| virtual bool | toXml (const DtFilename &) const |
| virtual bool | fromXml (const DtString &) |
| virtual bool | fromXmlFile (const DtFilename &) |
| virtual void | putSelf (DtEnvironmentSP, DtEnvValueSP parent) const |
| virtual void | putData (DtEnvironmentSP, DtEnvValueSP value) const |
| virtual void | putVariableReference (DtEnvironmentSP, DtEnvValueSP value) const |
| virtual void | getSelf (const DtEnvironmentSP, const DtEnvValueSP root, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList()) |
| virtual void | getData (const DtEnvironmentSP, const DtEnvValueSP, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList()) |
| virtual void | unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings) |
| virtual void | getVariableReference (DtEnvironmentSP, DtEnvValueSP value) |
Protected Member Functions | |
| virtual double | calculateMaxSpeed () |
| virtual double | maxSpeedFromFacingError (const double desiredHeading, const double currentHeading) const |
| virtual double | maxSpeedSoilFactor () const |
| virtual DtVector | calculateProjectedLocation (const DtVector &oldLocalPosition, const DtVector &newBodyVelocity, double newHeading, double dt=-1) |
| virtual void | calculateOrientationAndPosition (const DtVector &newLocalProjectedLocation, double newHeading, double newFacingOrientation, DtDcm &newLocalOrientation, DtDcm &newLocalDirectionOfMovement, DtVector &newLocalPosition) |
| virtual void | identifySupportSurfaceAndAltitude (const DtVector &testPosition, const double altOfTestPosition, const DtVector &stepUpVector, const double bodyHeight, DtSurface &interactionSurface, double &adjustedAltitude) |
| virtual double | stepUpFractionLimit () const |
| virtual double | underWaterFraction () const |
| virtual double | dropSpeed () const |
| virtual void | updateRepository (const DtVector &position, const DtVector &velocity, const DtVector &acceleration, const DtTaitBryan &localOrientation, const DtVector &rotationalVelocity, double newHeading) |
| virtual void | computeAndSetPosture () |
| virtual DtLifeformState | computeDynamicPosture (DtLifeformStaticPosture staticPosture) |
| virtual DtLifeformStaticPosture | restrictPostureForTerrain (DtLifeformStaticPosture desiredPosture) |
| virtual bool | checkForTerrainCollisions () const |
| virtual bool | checkForEntityCollisions () const |
| virtual bool | checkBlockedByTerrain (const DtVector &oldLocalPosition, DtVector &newLocalProjectedLocation, double heightFraction=-1.0) |
| virtual bool | checkBlockedByEntities (const DtVector &oldLocalPosition, DtVector &newLocalProjectedLocation) |
| virtual DtChord | movementChord (const DtVector &oldLocalPosition, const DtVector &newLocalProjectedLocation, DtVector &intersectionVec, DtVector &bvCenterStartFromOldPos) |
| virtual DtChord | movementChordAtHeight (const DtVector &oldLocalPosition, const DtVector &newLocalProjectedLocation, double heightFraction, DtVector &intersectionVec, DtVector &offsetFromOldPosition) |
| virtual double | maxUprightTerrainPitch () const |
| virtual double | maxWalkingSpeed () const |
| virtual void | initializeStaticToDynamicPostureMap () |
| virtual bool | computeEntityDirOfMovement (double &heading) const |
| virtual double | calculateTerrainPitch (const DtVector &localPosition, double heading, const DtAttachedTerrain &terrain) |
| virtual bool | createPorts () |
| virtual bool | createPortGroups () |
| virtual bool | getSurfacesBelow (const DtVector &testPosition, double underWaterLimit, const DtAttachedTerrain *terrain, DtVrfChordIntersectRecordList &intList, bool &dataAvailable) |
| virtual bool | closestSurfaceAbove (const DtVector &testPosition, const DtAttachedTerrain *terrain, double &altitude, DtSurface &surface) |
| virtual bool | isWater (const DtSurface &surface) |
| virtual void | processSetHeading (DtSimMessage *msg) |
| virtual void | processGroundClampFidelity (DtSimMessage *msg) |
| virtual bool | checkAndDisembarkIfEmbarked (const DtVector &localPosition) |
| virtual bool | checkIfMoveOntoEmbarked (const DtVector &localPosition) |
| virtual bool | initializeAglPort () |
| virtual void | setTerrainUpdateFlagsBasedonDataAvailable (bool dataAvailable) |
| virtual void | processTerrainChangeNotification (const DtExtent &spatExtent) |
| virtual void | detachFromParentDueToAutomaticDisembark () |
| virtual double | altitudeForNoTerrainBelow (double projectedPointAlt, DtVector projectedPoint, double surfacePointAlt) const |
| virtual double | altitudeForDropToSurface (double projectedPointAlt, DtVector projectedPoint, double surfacePointAlt) const |
| virtual double | altitudeForNearbySurface (double projectedPointAlt, DtVector projectedPoint, double surfacePointAlt) const |
| virtual double | altitudeForNoSurface (double projectedPointAlt, DtVector projectedPoint) const |
| virtual void | calculateOrientationAndPositionCrawling (const DtVector &newLocalProjectedLocation, double newHeading, double newFacingOrientation, DtDcm &newLocalOrientation, DtDcm &newLocalDirectionOfMovement, DtVector &newLocalPosition) |
| virtual void | groundClamp (double heading, const DtVector &location, DtAttachedTerrain &terrainDatabase, DtVector &newNormal) |
| virtual void | calculateDirectionOfLinearMotion (const DtDcm &newLocalOrientation, double desiredDirectionOfMovement, const DtVector &newLocalPosition, DtDcm &newLocalDirectionOfLinearMotion) |
| virtual bool | closestIntersectionWithBias (const DtVector &localPosition, DtVrfChordIntersectionRecord &record, DtIntersectionRecord::DtIntersectionType irtFlag, double bias, const DtAttachedTerrain *terrain) |
Protected Member Functions inherited from DtActuatorComponent | |
| DtActuatorComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) | |
| virtual void | setRadio (DtSimRadio *radio) |
| DtActuatorComponent () | |
Protected Member Functions inherited from DtSimComponent | |
| virtual void | setupTimedTickLogic (double minTickPeriod, double minTickPeriodVariance) |
| virtual double | computeCurrentTime () |
| bool | testInvariant () const |
| DtVrfProcessStateRepository * | createComponentPsr (const DtString &defaultPsrType, const DtString &defaultPsrName, bool useDescriptorParams=true) |
| virtual void | updateTaskVisualizations () |
| virtual void | destroyTaskVisualizations () |
| virtual void | destroyTaskVisualization (const DtString &name) |
| virtual makVrf::DtPointTaskVisualizationPtr | pointTaskVisualization (const DtString &name) |
| virtual makVrf::DtLineTaskVisualizationPtr | lineTaskVisualization (const DtString &name) |
| virtual makVrf::DtAreaTaskVisualizationPtr | areaTaskVisualization (const DtString &name) |
| virtual makVrf::DtTextTaskVisualizationPtr | textTaskVisualization (const DtString &name) |
| double | calculateNextTaskVisTickTime () const |
| DtVrfObjectStateRepository * | localStateRepository () |
| const DtVrfObjectStateRepository * | localStateRepository () const |
| DtPropertyInterface * | cachedNextFrameStateProperty (DtPropertyInterface **prop, const DtString &propName) |
| template<typename ValType > | |
| void | setCachedNextFrameStatePropertyValue (DtPropertyInterface **prop, const DtString &propName, ValType value) |
| const DtPropertyInterface * | cachedCurrentFrameStateProperty (const DtPropertyInterface **prop, const DtString &propName) const |
| template<typename ValType > | |
| bool | getCachedCurrentFrameStatePropertyValue (const DtPropertyInterface **prop, const DtString &propName, ValType &value) const |
| void | addSimObjectPredicateCallback (DtSimObjectReference, DtVrfObjectPredicateCallbackFunction function, const DtVrfObjectPredicate &predicate, DtTime evaluationPeriod=0, void *userData=0) |
| void | removeSimObjectPredicateCallback (const DtSimObject *, DtVrfObjectPredicateCallbackFunction function, const DtVrfObjectPredicate &predicate, DtTime evaluationPeriod=0, void *userData=0) |
| void | invokeSimObjectPredicateCallbacks () |
| virtual void | clearPredicateCallbacks () |
Protected Member Functions inherited from DtReaderWriter | |
| virtual void | bindToRwAsVariable (const DtReaderWriter *rw) |
Static Protected Member Functions | |
| static void | setHeadingCallback (DtSimMessage *msg, void *usr) |
| static void | setGroundClampFidelityCallback (DtSimMessage *msg, void *usr) |
| static void | terainChangeNotification (const DtExtent &spatExtent, void *usr) |
Private Member Functions | |
| DtHumanMovementActuator & | operator= (const DtHumanMovementActuator &orig) |
| DtHumanMovementActuator (const DtHumanMovementActuator &orig) | |
Additional Inherited Members | |
Protected Types inherited from DtSimComponent | |
| typedef std::map< DtString, DtInputPort * > | DtInputPortMap |
| typedef std::map< DtString, DtOutputPort * > | DtOutputPortMap |
| typedef std::map< DtString, DtInputPortGroup * > | DtInputPortGroupMap |
| typedef std::map< DtString, DtOutputPortGroup * > | DtOutputPortGroupMap |
Static Protected Attributes inherited from DtSimComponent | |
| static DtSimComponentFactory * | myFactory |
Static Protected Attributes inherited from DtReaderWriter | |
| static DtString | theUnspecifiedValue |
| static DtGetSelfCallbackInfo | thePostGetSelfCallback |
| static DtPutSelfCallbackInfo | thePrePutSelfCallback |
| static const DtVariableBindingsList | theEmptyVariableBindingsList |
| static bool | theCreatorFcnSet |
| static DtReaderWriterFactory * | theFactory |
| static DtReaderWriterFactoryCreatorFcn | theFactoryCreatorFcn |
| static bool | thePutIndent |
| static DtOutputStream * | theOutputStream |
| typedef std::map<DtLifeformStaticPosture, DtLifeformState> DtHumanMovementActuator::DtStaticToDynamicPostureMap |
|
private |
Not implemented.
| DtHumanMovementActuator::DtHumanMovementActuator | ( | const DtString & | name, |
| DtLocalObject * | owner, | ||
| DtSimulationServices * | simManager, | ||
| DtComponentDescriptor * | desc = 0, |
||
| DtReaderWriterRegistry * | parentRegistry = 0 |
||
| ) |
| name | Reader writer name of this component. |
| owner | The DtLocalObject that owns this component |
| simManager | The simulation manager (provides access to terrain, message interface, simulation clock). |
| desc | The component descriptor used to initialize this component. |
| parentRegistry | Pointer to the parent reader writer registry (the containing object that reads/writes this object). |
|
virtual |
destructor
|
private |
Not implemented.
|
virtual |
to get access to the entity's localStateRepository, which this component will update, and then connect to the controller's ports.
Reimplemented from DtActuatorComponent.
|
virtual |
Returns a string identifies the class type of component. Type values are defined in compTypes.h. DtSimComponent creation functions are registered with the DtSimComponentFactory using the type values as the key. Warning: this function should always return the same pointer and it should be valid forever. This means the data should be static.
Implements DtSimComponent.
|
virtual |
Creates the PSR to be used by this actuator.
|
virtual |
This function can be overridden to initialize a component before it is ticked for the first time. The implementation for this function is empty. It is called by timedTick if myFirstTick is true.
Reimplemented from DtSimComponent.
|
virtual |
This gives the thread of control to the component. The component is ticked once each simulation from by the component list it's on. This base class tick has no functionality.
Reimplemented from DtSimComponent.
|
static |
| name | Reader writer name of this component. |
| owner | The DtLocalObject that owns this component |
| simManager | The simulation manager (provides access to terrain, message interface, simulation clock). |
| desc | The component descriptor used to initialize this component. |
| parentRegistry | Pointer to the parent reader writer registry (the containing object that reads/writes this object). |
|
protectedvirtual |
|
protectedvirtual |
Compute maximum speed based on difference of facing from desired facing. Max allowed speed is reduced to 0.1mps as the heading error increases from 0 to pi/2+.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
Given the new location as projected along the current velocity vector, its movement heading, and its facing, find the terrain under the new location and compute the final entity state. This function calls identifySupportSurfaceAndAltitude to get the surface under the new location. If there is a drop in altitude more than vertical-crack-tolerance (from the descriptor), the terrain is re-checked at a position horizontal-crack-tolerance farther along the direction of motion, and the same distance perpendicular to the direction of motion, to see if the result is higher. If it is, the higher altitude is used.
| newLocalProjectedLocation | The tentative new position as projected from the current velocity. |
| newHeading | The current heading angle of movement. |
| newFacingOrientation | The current heading angle of facing. This can be different from the newHeading if the entity isn't moving in the direction it is facing. |
| newLocalOrientation | (Output) The new direction of facing, including a pitch to match the terrain pitch if the entity is prone or crawling. |
| newLocalDirectionOfMovement | (Output) The new direction of movement, including the pitch of the terrain. |
| newLocalPosition | (Output) The new position on the terrain. |
|
protectedvirtual |
In calculating the new altitude for an entity when it moves, the entity position is first projected along its velocity vector for the last tick (calculateProjectedLocation), and then the terrain at that location is found (in calculateOrientationAndPosition). That function uses identifySupportSurfaceAndAltitude to check the terrain under a position stepUpFractionLimit * body height above the projected location.
Normally the terrain lookup finds a ground surface and the entity is placed there. However, there may be no terrain under the entity, or the terrain may be more than a step-up down, it may be more than a step-up up, or there may be no terrain at all. The functions altitudeForNoTerrainBelow, altitudeForDropToSurface, altitudeForNearbySurface, and altitudeForNoSurface handle those situations and determine what altitude the entity should be placed at.
| testPosition | Computed new position given v and a. |
| altOfTestPosition | The altitude of the testPosition. |
| stepUpVector | A vector in local coordinates that points up and whose length is equal to the distance that the entity can instantly move up in one tick–i.e., the height of a step that it can climb. The step up height is given by the body height times the step-up-fraction-limit in the descriptor. |
| bodyHeight | The body height, from the bounding volume size. |
| interactionSurface | An output parameter that contains the surface the entity is standing on, if it is standing on something. Note that the entity may be falling or floating. |
| adjustedAltitude | An output parameter that contains the altitude of the entity. |
|
protectedvirtual |
The limit on how far an entity can step up in one tick. Expressed as a fraction of the body height. Default value is 0.4.
|
protectedvirtual |
The fraction of a human that is below water when it is floating in water. Default is 0.88.
|
protectedvirtual |
The speed at which an entity will drop if it encounters a sudden drop in elevation. In m/s. If there is a hole in the terrain database, this limit might prevent the entity from dropping through to the next level in one tick.
|
protectedvirtual |
| projectedPointAlt | The altitude of the point projected from the velocity. |
| projectedPoint | The projected point (local coordinates). Useful for debugging. |
| surfacePointAlt | The altitude of the surface found in a terrain lookup at the test position (may be above the projected point). |
| projectedPointAlt | The altitude of the point projected from the velocity. |
| projectedPoint | The projected point (local coordinates). Useful for debugging. |
| surfacePointAlt | The altitude of the surface found in a terrain lookup at the test position (may be above the projected point). |
|
protectedvirtual |
This function handles the case where there is a drop from the projected position to the ground surface below of more than some fraction of the body height. The default is to output the surface altitude. This causes the entity to jump immediately down if it moves off the edge of a step or rooftop. However, this function can be overridden to make the entity accelerate down with gravity; or, to stay at the same altitude.
| projectedPointAlt | The altitude of the point projected from the velocity. |
| projectedPoint | The projected point (local coordinates). Useful for debugging. |
| surfacePointAlt | The altitude of the surface found in a terrain lookup at the test position (may be above the projected point). |
|
protectedvirtual |
This function handles the case where a surface is found near the projected position. The default behavior is to set the output altitude to the surface altitude.
| projectedPointAlt | The altitude of the point projected from the velocity. |
| projectedPoint | The projected point (local coordinates). Useful for debugging. |
| surfacePointAlt | The altitude of the surface found in a terrain lookup at the test position (may be above the projected point). |
|
protectedvirtual |
This function is for the case where no surfaces were found at all in the terrain lookup. The default behavior is to output the projected point altitude so the entity does not move up or down. Alternatively, the altitude could be clamped to 0.
| projectedPointAlt | The altitude of the point projected from the velocity. |
| projectedPoint | The projected point (local coordinates). Useful for debugging. |
| surfacePointAlt | The altitude of the surface found in a terrain lookup at the test position (above the projected point, in this case). |
|
protectedvirtual |
|
protectedvirtual |
The main method for everything to do with posture in this actuator. This determines the correct posture based on the input port and speed of the entity, and then sets this posture to the state repository.
|
protectedvirtual |
Determines the correct dynamic posture for the entity based on the desired static posture passed in, and the current state of the entity.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
Checks for terrain polygons between specified old and new positions. By default, the check will be done for the bounding volume center of the entity. To perform the check at another height, specify the fraction of the entity's height which should be used using the heightFraction parameter.
|
protectedvirtual |
|
protectedvirtual |
Calculates a movement vector based on the two input positions, and using the BV of the entity. (the vector is not directly between the positions, but rather offset to the front face of the BV) Also returns a vector in local coords between the positions, and a vector between the oldLocalPosition and the start of the movement chord.
|
protectedvirtual |
Similar to movementChord, but rather than using the bounding volume center to define the height of the chord, uses a specified fraction of the entity height.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
Initializes contents of myStaticToDynamicPostureMap, used.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
Overridden to create the movement control input ports.
Reimplemented from DtSimComponent.
|
protectedvirtual |
Overridden to create the movement control input port group.
Reimplemented from DtSimComponent.
|
protectedvirtual |
Find surfaces below the test point, from top to bottom. The actuator needs to find either a ground surface below, or a water surface and the ground under that, or else a water surface and a check that the water is deep enough that the entity would float on the water anyway. This function tries to be efficient by looking for surfaces only a short distance (10m) below the test position before it looks down to -inf; if it finds one of the above conditions are true in the abbreviated look, then it returns immediately. Thus it may not find ALL the surfaces below.
Returns true if a surface was found; false otherwise. Data available is set false if a terrain interface call reports data not available; true otherwise.
|
protectedvirtual |
Find the closest surface above the test point. Returns true if a surface was found; false otherwise. If found, returns the altitude of the surface and the surface (type).
Determine whether the surface should be interpreted as water. For human ground entities, treat as water only if it does not have an Undefined soil type, and if the water-surface medium bit is set.
|
staticprotected |
|
protectedvirtual |
|
staticprotected |
|
protectedvirtual |
|
protectedvirtual |
Check terrain hit, and, if entity is embarked, and there is no terrain hit on parent, disembark. Will only check if embarked.
|
protectedvirtual |
Check to see if there are any entities at the location given that can be moved onto for embarkation. If ther are then check to see if they are intersected. Return true if is.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
The following functions are no longer used in this actuator (4.3)
|
protectedvirtual |
The following functions are no longer used in this actuator (4.3)
|
protectedvirtual |
The following functions are no longer used in this actuator (4.3)
|
protectedvirtual |
The following functions are no longer used in this actuator (4.3)
|
staticprotected |
Callback for terrain change notifications.
| spatExtent | the spatial extents in local coordinates for change |
| usr | this |
|
protectedvirtual |
Checks to see if entity is within the spatial extents of the terrain change notification and if so sets the terrain change flag so that the correct position and orientation will be set during the tick() method.
| spatExtent | the spatial extents in local coordinates for change |
|
protectedvirtual |
Detach from parent due to an automatic disembark from the object this is embarked on. Will need to restore visibility state.
|
protected |
Input Port Name: desired-movement-direction
Input Port Description: Desired movement direction of the entity in radians.
Input Port Range: 0 - 2*pi
Input Port Default Value: N/A
Input Group Parent: movement-control.
|
protected |
Input Port Name: desired-facing-direction
Input Port Description: Desired facing direction of the entity in radians. NOTE: This input port is currently ignored. It is here for future expansion. The entity currently always faces in its movement direction. Input Port Range: 0 - 2*pi
Input Port Default Value: N/A
Input Group Parent: movement-control.
|
protected |
Input Port Name: desired-speed
Input Port Description: Desired speed of the entity in m/s.
Input Port Range: 0 and up. Input Port Default Value: N/A
Input Group Parent: movement-control.
|
protected |
Input Port Group Name: movement-control
Input Port Group Description: Collection of inputs specifying the desired movement of the entity.
.
|
protected |
Input Port Name: desired-static-posture
Input Port Description: The desired posture of the entity. This is a static (non-moving) posture, and will be mapped to an appropriate moving posture based on the actual speed of the entity.
Input Port Range: See DtLifeformStaticPosture. Input Port Default Value: DtStaticPostureUpright
.
|
protected |
Input Port Name: destination
Input Port Description: Specifies the current destination of the entity in geocentric coordinates. If not specified, destination will be ignored by the actuator.
Input Port Range:
Input Port Default Value:
.
|
protected |
Input Port Name: posture-changing
Input Port Description: Will be used to halt movement if set, so posture transition can complete before movement continues.
Input Port Range:
Input Port Default Value:
.
|
protected |
Input Port Name: override-ground-clamp-fidelity
Input Port Description: Indicates whether or not the ground clamp fidelity should be overridden while performing the current task.
Input Port Range: 1 (high), 2 (low)
Input Group Parent:
.
|
protected |
Output Port Name: altitude-agl
Output Port Description: Altitude above ground level.
Output Port Range: 0 and up.
Output Port Default Value: 0.
|
protected |
Convenience pointers to our state repository.
|
protected |
Convenience pointers to our state repository.
|
protected |
Pointer to a process state repository used to store state data associated with this component.
|
mutableprotected |
This value is the pitch of the terrain under the entity. Since it is expensive to calculate, but needed at a number of places each tick, it is stored here when calculated, and then user other times.
|
mutableprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
These states are used for controlling debug print statements.
|
protected |
Port group used to set what values should be set into the VRF state repository. All values are in local coordinates.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Member to allow for access to platform specific data.
|
protected |
A flag that is set if the terrain has been altered.
|
protected |
A flag to indicate that data was not available when querying terrain during a terrain update so that it will continue to try to adjust for the terrain update when the data is available.