57 virtual bool init()
override;
61 virtual const char*
type()
const override;
81 virtual void unregisterTaskMsgCallbacks();
87 virtual void tick()
override;
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);
131 virtual void unableToCompleteTask();
137 static void setLoadEntityCallback(
DtSimMessage * msg,
void * usrData);
138 static void setUnloadEntityCallback(
DtSimMessage * msg,
void * usrData);
142 static void setEmbarkationLockedCallback(
DtSimMessage * msg,
void * usrData);
143 virtual void processEmbarkationLocked(
DtSimMessage * msg);
149 virtual void unload(
const DtVector& point,
int appearance = 0xFFFFFFFF);
153 static void deleteVrfObjectCallback(
const DtLocalObject* msg,
void * usr);
154 virtual void processDeleteVrfObjectCallback(
const DtLocalObject* obj);
159 static void taskCompleteReportCallback(
DtSimMessage * msg,
void * usr);
166 virtual bool clampOnPlacement()
const;
170 virtual bool performTechnique();
185 virtual void performingEmbarkTechnique();
188 virtual void performingDisembarkTechnique();
192 virtual void moveToEgress();
195 virtual void movingToEgress();
198 virtual void disembark();
204 virtual void removeControlPoint();
209 virtual void moveToIngress(
const DtUUID& parent);
211 virtual void createControlPoint(
const DtVector& location,
214 virtual void createRoute(
const std::vector<DtVector>&,
219 virtual void moveToEmbarkationPoint();
226 virtual void atEmbarkationPoint();
230 virtual void waitingToStop();
235 virtual void movingToIngress();
238 virtual void embarkObject(
bool overridePosition,
239 const DtVector& loadPosition,
int slotNumber,
240 const DtUUID& parent,
const DtString& slotName =
"*",
const DtString& slotType =
"*",
int appearance = 0xFFFFFFFF,
241 const DtTaitBryan& orientation = DtTaitBryan(),
242 const DtVector& acceleration = DtVector(),
243 const DtVector& velocty = DtVector(),
244 bool invisibleWhenEmbarked =
false,
245 const DtString& animation = DtString::nullString());
251 virtual void unloadObject(
const DtVector& unloadPoint,
int appearance = 0xFFFFFFFF);
254 virtual void embark(
const DtVector& loadPosition,
const DtUUID& parent,
255 int appearance = 0xFFFFFFFF,
const DtTaitBryan& orientation = DtTaitBryan(),
256 const DtVector& acceleration = DtVector(),
257 const DtVector& velocty = DtVector(),
258 bool invisibleWhenEmbarked =
false,
259 const DtString& animation = DtString::nullString());
263 virtual void movingToEmbarkationPoint();
266 virtual void stoppedAtEmbarkedPoint();
279 virtual bool createPSR();
283 virtual void setupExistingConditions();
287 virtual void completeEmbarkationInformationRequest(
296 virtual void completeDisembarkationInformationRequest(
305 virtual DtTaitBryan embarkedOrientation(
const DtTaitBryan&,
306 const DtUUID& parent)
const;
325 virtual void issueMoveToEgressTask();
326 virtual void issueMoveToIngressTask();
330 virtual void issueMoveAlongToEgressTask();
331 virtual void issueMoveAlongToIngressTask();
335 virtual void issueMoveToEmbarkationPointTask();
338 virtual DtVector currentParentPosition(
const DtUUID& parent)
const;
339 virtual DtTaitBryan currentParentOrientation(
const DtUUID& parent)
const;
340 virtual DtVector currentParentVelocity(
const DtUUID& parent)
const;
341 virtual DtVector currentParentAcceleration(
const DtUUID& parent)
const;
353 virtual bool requestEmbarkationInformationFrom(
const DtUUID& parent,
354 bool start =
false,
int embarkInSlot = -1,
const DtString& slotName =
"*",
355 const DtString& slotType =
"*",
bool anyIfTaken =
true);
356 virtual bool requestDisembarkationInformationFrom(
const DtUUID& parent,
360 virtual void requestGiveUpSlot(
const DtUUID& parent);
362 virtual void waitingForEmbarkationInformation();
363 virtual void waitingForDisembarkationInformation();
366 virtual void placeObject(
bool clamp =
false);
369 virtual void placeObject(
const DtVector& geocLocation,
const DtTaitBryan& orientation,
bool clamp);
372 virtual void setLocation(
const DtVector&);
380 virtual void calculateAndSetHeading(
const DtVector& start,
const DtVector& end);
385 virtual void processDisembarkationState(
const DtVector& bodyExitPosition);
386 virtual void movingToFinalDestination();
387 virtual void moveToFinalDestination();
391 virtual void preprocessEmbarkTask();
392 virtual void preprocessDisembarkTask();
396 virtual bool checkEmbarkOk(
const DtUUID& parent)
const;
401 virtual void updateDisembarkedAppearanceAndAnimation(
int appearance);
407 virtual void updateEmbarkedAppearanceAndAnimation(
int,
const DtString&);
408 virtual void updateLifeformEmbarkedAppearanceAndAnimation(
int,
const DtString&);
412 virtual void attachToEmbarkedParent(
const DtUUID& newParent);
417 virtual DtVector fallbackOffloadPoint();
420 virtual void enable()
override;
423 virtual void disable()
override;
430 virtual bool parentOnGround();
434 static void setHeadingCallback(
DtSimMessage*,
void* usr);
435 virtual void processSetHeading();
489 bool myInvisibleSetByUserDuringEmbark =
false;
UUID is a unique ID wrapper class.
Definition: uuid.h:59
double myRequestTime
Definition: embarkationController.h:466
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
class DtVrfEmbarkationPSR:
Definition: vrfEmbarkationPSR.h:31
Instances of DtStringOutputPort are output ports through which data producers can send a DtString obj...
Definition: stringIOPort.h:52
virtual void disable() override
Overridden to allow tasks controllers that can be disabled to call task complete. ...
virtual void suspendTask()
This method is called when the currently running task is being suspended. The default implementation ...
DtVector myLoadOverridePosition
Definition: embarkationController.h:472
bool myResetAnimationIfNoLongerEmbarked
Definition: embarkationController.h:486
DtUUID myParentToLoadOn
Definition: embarkationController.h:473
DtEmbarkationControllerState
Definition: vrfEmbarkationPSR.h:34
virtual const char * type() const override=0
Returns a string identifies the class type of component. Type values are defined in compTypes...
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:455
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: singleTaskControllerComponent.h:22
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
std::list< DtString > myEmbarkedObjects
Definition: embarkationController.h:451
virtual bool init() override
Calls setRadio()
bool myWaiting
If myWaiting is true, the controller is waiting for some condition to be met, so, the controller will...
Definition: embarkationController.h:462
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:467
File: simMsg.h.
Definition: simMessage.h:35
bool myRemoveSetHeadingNotifyCallback
Definition: embarkationController.h:477
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:468
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:479
DtStringOutputPort * myOrderedAnimationPort
Output Port Name: ordered-animation Output Port Description: Specifies an animation to be used as lon...
Definition: embarkationController.h:485
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
virtual void enable() override
Overridden to call registerTaskMsgCallbacks().
DtSimTask is an abstract base class from which real tasks can derive. It manages the read/write capab...
Definition: simTask.h:30
virtual void clearTask() override
If component is currently tasked, calls clearPendingSubtasks(), sets the tasked flag to false...
DtEmbarkationDescriptor * myEmbarkationDescriptor
Definition: embarkationController.h:464
DtMovementLocalObjectFacade myMovementLocalObjectFacade
Definition: embarkationController.h:488
bool myResetGroundClampOnDisembarkValue
Definition: embarkationController.h:476
bool myUseLoadOverrideIfNoSlotAvailable
Will be set if the embarkation request is to use an override position if no slots are available...
Definition: embarkationController.h:471
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:475
A locally simulated VRF object.
Definition: localObject.h:98