61 virtual const char*
type()
const;
81 virtual void unregisterTaskMsgCallbacks();
102 static void disembarkTaskCallback(
DtSimMessage* msg,
void* usr);
106 virtual void checkAndSetEgressPosture();
114 static void embarkTaskCallback(
DtSimMessage* msg,
void* usr);
118 static void embarkObjectCallback(
DtSimMessage* msg,
void* usr);
119 virtual void processEmbarkObjectCallback(
DtSimMessage* msg);
121 static void disembarkObjectCallback(
DtSimMessage* msg,
void* usr);
122 virtual void processDisembarkObjectCallback(
DtSimMessage* msg);
127 static void embarkationInformationCallback(
DtSimMessage* msg,
void* usr);
128 virtual void processEmbarkationInformationCallback(
DtSimMessage* msg);
135 static void setLoadEntityCallback(
DtSimMessage * msg,
void * usrData);
136 static void setUnloadEntityCallback(
DtSimMessage * msg,
void * usrData);
140 static void setEmbarkationLockedCallback(
DtSimMessage * msg,
void * usrData);
141 virtual void processEmbarkationLocked(
DtSimMessage * msg);
147 virtual void unload(
const DtVector& point,
int appearance = 0xFFFFFFFF);
151 static void deleteVrfObjectCallback(
const DtLocalObject* msg,
void * usr);
152 virtual void processDeleteVrfObjectCallback(
const DtLocalObject* obj);
157 static void taskCompleteReportCallback(
DtSimMessage * msg,
void * usr);
163 virtual bool performTechnique();
178 virtual void performingEmbarkTechnique();
181 virtual void performingDisembarkTechnique();
185 virtual void moveToEgress();
188 virtual void movingToEgress();
191 virtual void disembark();
197 virtual void removeControlPoint();
202 virtual void moveToIngress(
const DtUUID& parent);
204 virtual void createControlPoint(
const DtVector& location,
207 virtual void createRoute(
const std::vector<DtVector>&,
212 virtual void moveToEmbarkationPoint();
219 virtual void atEmbarkationPoint();
223 virtual void waitingToStop();
228 virtual void movingToIngress();
231 virtual void embarkObject(
bool overridePosition,
232 const DtVector& loadPosition,
int slotNumber,
233 const DtUUID& parent,
const DtString& slotName =
"*",
const DtString& slotType =
"*",
int appearance = 0xFFFFFFFF,
234 const DtTaitBryan& orientation = DtTaitBryan(),
237 bool invisibleWhenEmbarked =
false,
238 const DtString& animation = DtString::nullString());
244 virtual void unloadObject(
const DtVector& unloadPoint,
int appearance = 0xFFFFFFFF);
247 virtual void embark(
const DtVector& loadPosition,
const DtUUID& parent,
248 int appearance = 0xFFFFFFFF,
const DtTaitBryan& orientation = DtTaitBryan(),
251 bool invisibleWhenEmbarked =
false,
252 const DtString& animation = DtString::nullString());
256 virtual void movingToEmbarkationPoint();
259 virtual void stoppedAtEmbarkedPoint();
272 virtual bool createPSR();
276 virtual void setupExistingConditions();
280 virtual void completeEmbarkationInformationRequest(
289 virtual void completeDisembarkationInformationRequest(
298 virtual DtTaitBryan embarkedOrientation(
const DtTaitBryan&,
299 const DtUUID& parent)
const;
318 virtual void issueMoveToEgressTask();
319 virtual void issueMoveToIngressTask();
323 virtual void issueMoveAlongToEgressTask();
324 virtual void issueMoveAlongToIngressTask();
328 virtual void issueMoveToEmbarkationPointTask();
332 virtual DtTaitBryan currentBodyOrientation(
const DtUUID& parent)
const;
334 virtual DtVector currentBodyAcceleration(
const DtUUID& parent)
const;
346 virtual bool requestEmbarkationInformationFrom(
const DtUUID& parent,
347 bool start =
false,
int embarkInSlot = -1,
const DtString& slotName =
"*",
348 const DtString& slotType =
"*",
bool anyIfTaken =
true);
349 virtual bool requestDisembarkationInformationFrom(
const DtUUID& parent,
353 virtual void requestGiveUpSlot(
const DtUUID& parent);
355 virtual void waitingForEmbarkationInformation();
356 virtual void waitingForDisembarkationInformation();
359 virtual void placeObject(
bool clamp =
false);
362 virtual void placeObject(
const DtVector& geocLocation,
const DtTaitBryan& orientation,
bool clamp);
365 virtual void setLocation(
const DtVector&);
373 virtual void calculateAndSetHeading(
const DtVector& start,
const DtVector& end);
378 virtual void processDisembarkationState(
const DtVector& bodyExitPosition);
379 virtual void movingToFinalDestination();
380 virtual void moveToFinalDestination();
384 virtual void preprocessEmbarkTask();
385 virtual void preprocessDisembarkTask();
389 virtual bool checkEmbarkOk(
const DtUUID& parent)
const;
394 virtual void updateDisembarkedAppearanceAndAnimation(
int appearance);
400 virtual void updateEmbarkedAppearanceAndAnimation(
int,
const DtString&);
401 virtual void updateLifeformEmbarkedAppearanceAndAnimation(
int,
const DtString&);
405 virtual void attachToEmbarkedParent(
const DtUUID& newParent);
410 virtual DtVector fallbackOffloadPoint();
423 virtual bool parentOnGround();
427 static void setHeadingCallback(
DtSimMessage*,
void* usr);
428 virtual void processSetHeading();
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
double myRequestTime
Definition: embarkationController.h:459
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
class DtVrfEmbarkationPSR:
Definition: vrfEmbarkationPSR.h:30
Instances of DtStringOutputPort are output ports through which data producers can send a DtString obj...
Definition: stringIOPort.h:52
virtual void suspendTask()
This method is called when the currently running task is being suspended. The default implementation ...
DtVector myLoadOverridePosition
Definition: embarkationController.h:465
bool myResetAnimationIfNoLongerEmbarked
Definition: embarkationController.h:479
virtual void enable()
Overridden to call registerTaskMsgCallbacks().
DtUUID myParentToLoadOn
Definition: embarkationController.h:466
DtEmbarkationControllerState
Definition: vrfEmbarkationPSR.h:33
virtual void registerTaskMsgCallbacks()
virtual void preFirstTickInit()
This function can be overridden to initialize a component before it is ticked for the first time...
DtVrfEmbarkationPSR * myProcessState
Container for state data associated with this component. This state is saved and restored as part of ...
Definition: embarkationController.h:448
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: singleTaskControllerComponent.h:20
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
DtEmbarkationController is a controller that supports base level embarkation/disembarkation for entit...
Definition: embarkationController.h:41
virtual const char * type() const =0
Returns a string identifies the class type of component. Type values are defined in compTypes...
virtual bool init()
Calls setRadio()
virtual void clearTask()
If component is currently tasked, calls clearPendingSubtasks(), sets the tasked flag to false...
std::list< DtString > myEmbarkedObjects
Definition: embarkationController.h:444
bool myWaiting
If myWaiting is true, the controller is waiting for some condition to be met, so, the controller will...
Definition: embarkationController.h:455
DtSetDataRequest is an abstract base class from which real setDataRequests can derive. It manages the read/write capability; derived classes need only use and register read/writatble data types for derived information.
Definition: setDataRequest.h:41
int myRequestRetries
Definition: embarkationController.h:460
File: simMsg.h.
Definition: simMessage.h:35
bool myRemoveSetHeadingNotifyCallback
Definition: embarkationController.h:470
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
bool myAreCallbacksRegistered
Definition: embarkationController.h:461
Instances of DtEmbarkationDescriptor are used to specify the parameters for a DtEmbarkationController...
Definition: embarkationDescriptor.h:24
virtual bool createPorts()
Called by init. Derived classes should override this method to create all their input/output ports an...
bool myClampOnReceiveEmbarkationInformation
Definition: embarkationController.h:472
DtStringOutputPort * myOrderedAnimationPort
Output Port Name: ordered-animation Output Port Description: Specifies an animation to be used as lon...
Definition: embarkationController.h:478
virtual void disable()
Overridden to allow tasks controllers that can be disabled to call task complete. ...
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
const DtTaskControllerComponent & operator=(const DtTaskControllerComponent &orig)
assignment operator
DtSimTask is an abstract base class from which real tasks can derive. It manages the read/write capab...
Definition: simTask.h:30
DtEmbarkationDescriptor * myEmbarkationDescriptor
Definition: embarkationController.h:457
DtMovementLocalObjectFacade myMovementLocalObjectFacade
Definition: embarkationController.h:481
bool myResetGroundClampOnDisembarkValue
Definition: embarkationController.h:469
bool myUseLoadOverrideIfNoSlotAvailable
Will be set if the embarkation request is to use an override position if no slots are available...
Definition: embarkationController.h:464
A DtTaskMsg is a DtRadioMsg with a pointer to a task. The type of the taskMsg is just the type of the...
Definition: taskMessage.h:21
virtual void clearCurrentTaskMessage()
Returns the current subtask with the specified id. Also returns the controller that is responsible...
bool myResetGroundClampOnDisembark
Definition: embarkationController.h:468
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