63 virtual bool init()
override;
66 virtual const char*
type()
const override;
69 virtual void tick()
override;
75 static void moveToCallback(
DtSimMessage* msg,
void* usr );
81 static void setLocationCallback(
DtSimMessage* msg,
void* usr );
88 static void modifyVrfObjectCallback(
DtSimMessage* msg,
void* usr );
100 virtual void processDestinationChanged();
105 virtual bool setupDestination();
115 virtual void setupDestinationVector()
const;
118 virtual void invalidateDestinationVector()
const;
128 virtual bool atDestination();
131 virtual void doMoving();
134 virtual double findDesiredHeading();
137 virtual double findDesiredSpeed();
140 virtual void moveToDestination();
144 virtual void stop(
bool success );
152 virtual void processModifyVrfObject(
DtSimMessage* msg );
169 virtual bool createPSR();
171 virtual double distanceToDestination()
const;
177 virtual bool destinationIsInsideObstruction(
const DtVector& localDestination )
const;
187 virtual double atDistance()
const;
190 virtual bool usingNavBot()
const;
193 virtual void useNavBotData();
197 virtual unsigned maxNumFailedPathAttempts()
const;
201 virtual bool findAlternateDestination();
204 virtual void setStuck(
bool yesNo );
206 virtual double stuckTime();
208 static void navAreaChangedCallback(
void* usr );
209 virtual void processNavAreaChanged();
214 DtVector localDestination()
const;
225 static void setAutonomousActionsEnabledCallback(
DtSimMessage* msg,
void* usrData );
226 virtual void processSetAutonomousActionsEnabled(
DtSimMessage* msg );
228 virtual void processNavigationInterfaceChanged();
233 virtual void processEstimatedTotCalculation();
236 template<
typename T_Task>
239 myOverrideAtDistance = task.isAtDistanceSpecified();
240 if ( myOverrideAtDistance )
242 myOverrideAtDistanceValue = task.atDistance();
245 myOverrideSpeed = task.isSpeedSpecified();
246 if ( myOverrideSpeed )
248 myOverrideSpeedValue = task.speed();
252 virtual bool currentPathEdge(DtVector& pathEdgeStart, DtVector& pathEdgeEnd)
const;
365 const double DtEstimatedTotCalcInterval = 5.0;
class DtHumanMoveToPSR:
Definition: humanMoveToPSR.h:29
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
DtAnalogInputPort * myEtaForLastVertexInputPort
Input Port Name: eta-for-last-vertex Input Port Description: Specifies the eta for the last vertex of...
Definition: humanMoveToController.h:307
bool myIgnoreNavData
Used to force the navigation interface to be ignored. This is useful when the nav interface has given...
Definition: humanMoveToController.h:348
virtual void suspendTask()
This method is called when the currently running task is being suspended. The default implementation ...
DtHumanMovementControlOutputPortGroup * myHumanMovementControlOutputPortGroup
Output Group Name: movement-control .
Definition: humanMoveToController.h:272
DtHumanStateRepository * myHumanStateRepository
Definition: humanMoveToController.h:352
Description: This repository holds all information that is common to all the forms of humans within t...
Definition: humanStateRepository.h:33
virtual const char * type() const override=0
Returns a string identifies the class type of component. Type values are defined in compTypes...
This is the DtVrfObjectNavInterface subclass for objects which are actively querying the navigation s...
Definition: activeBotNavInterface.h:27
Instances of DtBooleanOutputPort are output ports through which data producers can send boolean data...
Definition: boolIOPort.h:45
virtual void registerTaskMsgCallbacks()
virtual void preFirstTickInit()
This function can be overridden to initialize a component before it is ticked for the first time...
double myEstimatedTotLastCalcTime
used for tot calculation intervals
Definition: humanMoveToController.h:372
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: singleTaskControllerComponent.h:22
DtVector myIntermediateLocalDestination
Definition: humanMoveToController.h:326
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
Definition: readerWriterRegistry.h:39
DtVector myLocalDestination
Definition: humanMoveToController.h:321
DtHumanLocalObjectFacade myHumanLocalObjectFacade
Definition: humanMoveToController.h:376
bool myDestinationVectorIsValid
Definition: humanMoveToController.h:329
virtual void updateTaskVisualizations()
Called to update task visualizations after every tick. Implemented by subclasses. ...
Definition: simComponent.h:443
DtBooleanOutputPort * myUseCollisionAvoidancePort
Output Port Name: use-collision-avoidance Output Port Description: Indicates whether or not this cont...
Definition: humanMoveToController.h:293
bool myAutonomousActionsEnabled
Definition: humanMoveToController.h:362
virtual bool init() override
Calls setRadio()
DtHumanMoveToPSR * myProcessState
Container for state data associated with this component. This state is saved and restored as part of ...
Definition: humanMoveToController.h:356
DtVectorInputPort * myLastVertexLocationInputPort
Input Port Name: last-vertex-location Input Port Description: Specifies the last vertex location of t...
Definition: humanMoveToController.h:301
void registerDtHumanMoveToController(DtCgf *cgf)
Registers component and associated classes with the factories. Call after DtVrfApp::init() ...
bool myEstimatedTotCalcEnabled
enabled flag for the tot calculations
Definition: humanMoveToController.h:368
DtInputPortGroup * myCollisionAvoidancePortGroup
Input Port Group Name: collision-avoidance-control Input Port Group Description:
Definition: humanMoveToController.h:269
DtVector myIntermediateWorldDestination
Definition: humanMoveToController.h:325
Instances of DtAnalogOutputPort are input ports through which data producers can send real numbers...
Definition: analogIOPort.h:45
Instances of DtVectorOutputPort are output ports through which data producers can send a DtVector...
Definition: vectorIOPort.h:52
File: simMsg.h.
Definition: simMessage.h:35
DtAnalogOutputPort * myEtaToLastVertexOutputPort
Output Port Name: eta-to-last-vertex Output Port Description: Specifies the eta to reach the last ver...
Definition: humanMoveToController.h:314
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
DtActiveBotNavInterface * myNavInterface
Definition: humanMoveToController.h:360
DtVectorOutputPort * myDestinationOutputPort
Output Port Name: destination Output Port Description: Specifies the current destination of the entit...
Definition: humanMoveToController.h:279
DtCollisionInputPort * myCollisionAvoidancePort
Input Port Name: potential-collision-info Input Port Description: information about an impending pote...
Definition: humanMoveToController.h:265
double myDistanceSquared
Definition: humanMoveToController.h:332
DtVector myWorldDestination
Definition: humanMoveToController.h:322
DtHumanMoveToControllerDescriptor; descriptor for the DtHumanMoveToControllerDescriptor component...
Definition: humanMoveToControllerDescriptor.h:23
virtual bool createPorts()
Called by init. Derived classes should override this method to create all their input/output ports an...
bool myOverrideAtDistance
Definition: humanMoveToController.h:334
virtual bool decideToGiveUpTask() const
This function is used to determine if the controller should give up trying to execute the current tas...
double myEstimatedTotValue
the tot value
Definition: humanMoveToController.h:370
virtual bool createPortGroups()
Called by init. Derived classes should override this method to create all their input/output port gro...
DtSimObjectReference myControlPoint
This is looked up once per tick - assumed unchanging while we have control.
Definition: humanMoveToController.h:319
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:89
const DtTaskControllerComponent & operator=(const DtTaskControllerComponent &orig)
assignment operator
DtBooleanOutputPort * myIsMovingPort
Output Port Name: is-moving Output Port Description: Indicates the entity is being actively moved by ...
Definition: humanMoveToController.h:286
DtHumanMoveToControllerDescriptor * myHumanMoveToControllerDescriptor
Definition: humanMoveToController.h:359
bool myAtDestination
Definition: humanMoveToController.h:331
virtual void clearTask() override
If component is currently tasked, calls clearPendingSubtasks(), sets the tasked flag to false...
DtHumanMoveToController is a controller that models movement to a <location> or <waypoint> for indivi...
Definition: humanMoveToController.h:41
A DtVrfProcessStateRepository subclass that keeps an arbitrary key/value pair set of data...
Definition: genericPsr.h:17
unsigned myNumFailedPathAttempts
Definition: humanMoveToController.h:350
void processSetLocation(DtSetDataRequest *set, const DtVertexList &vertices, double position, DtMoveAlongRouteTimeEstimator *est)
An output port group that contains the ports necessary to control the movement of a human using the D...
Definition: humanMovementControlOutputPortGroup.h:22
bool myHasIntermediateDestination
Definition: humanMoveToController.h:324
The top level class of a VR-Forces Simulation Engine, representing a Computer Generated Forces instan...
Definition: cgf.h:156
DtVector myEstimatedTotTextPos
tot text position
Definition: humanMoveToController.h:374
void setCommonTaskParams(const T_Task &task)
Template function to handle a number of tasks that all have a common set of parameters.
Definition: humanMoveToController.h:237
DtVector myDestinationVector
Definition: humanMoveToController.h:328
double myOverrideAtDistanceValue
Definition: humanMoveToController.h:335
bool myOverrideSpeed
Definition: humanMoveToController.h:336
double myOverrideSpeedValue
Definition: humanMoveToController.h:337
A locally simulated VRF object.
Definition: localObject.h:98