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);
164 virtual bool clampOnPlacement()
const;
168 virtual bool performTechnique();
183 virtual void performingEmbarkTechnique();
186 virtual void performingDisembarkTechnique();
190 virtual void moveToEgress();
193 virtual void movingToEgress();
196 virtual void disembark();
202 virtual void removeControlPoint();
207 virtual void moveToIngress(
const DtUUID& parent);
209 virtual void createControlPoint(
const DtVector& location,
212 virtual void createRoute(
const std::vector<DtVector>&,
217 virtual void moveToEmbarkationPoint();
224 virtual void atEmbarkationPoint();
228 virtual void waitingToStop();
233 virtual void movingToIngress();
236 virtual void embarkObject(
bool overridePosition,
237 const DtVector& loadPosition,
int slotNumber,
238 const DtUUID& parent,
const DtString& slotName =
"*",
const DtString& slotType =
"*",
int appearance = 0xFFFFFFFF,
239 const DtTaitBryan& orientation = DtTaitBryan(),
242 bool invisibleWhenEmbarked =
false,
243 const DtString& animation = DtString::nullString());
249 virtual void unloadObject(
const DtVector& unloadPoint,
int appearance = 0xFFFFFFFF);
252 virtual void embark(
const DtVector& loadPosition,
const DtUUID& parent,
253 int appearance = 0xFFFFFFFF,
const DtTaitBryan& orientation = DtTaitBryan(),
256 bool invisibleWhenEmbarked =
false,
257 const DtString& animation = DtString::nullString());
261 virtual void movingToEmbarkationPoint();
264 virtual void stoppedAtEmbarkedPoint();
277 virtual bool createPSR();
281 virtual void setupExistingConditions();
285 virtual void completeEmbarkationInformationRequest(
294 virtual void completeDisembarkationInformationRequest(
303 virtual DtTaitBryan embarkedOrientation(
const DtTaitBryan&,
304 const DtUUID& parent)
const;
323 virtual void issueMoveToEgressTask();
324 virtual void issueMoveToIngressTask();
328 virtual void issueMoveAlongToEgressTask();
329 virtual void issueMoveAlongToIngressTask();
333 virtual void issueMoveToEmbarkationPointTask();
337 virtual DtTaitBryan currentBodyOrientation(
const DtUUID& parent)
const;
339 virtual DtVector currentBodyAcceleration(
const DtUUID& parent)
const;
351 virtual bool requestEmbarkationInformationFrom(
const DtUUID& parent,
352 bool start =
false,
int embarkInSlot = -1,
const DtString& slotName =
"*",
353 const DtString& slotType =
"*",
bool anyIfTaken =
true);
354 virtual bool requestDisembarkationInformationFrom(
const DtUUID& parent,
358 virtual void requestGiveUpSlot(
const DtUUID& parent);
360 virtual void waitingForEmbarkationInformation();
361 virtual void waitingForDisembarkationInformation();
364 virtual void placeObject(
bool clamp =
false);
367 virtual void placeObject(
const DtVector& geocLocation,
const DtTaitBryan& orientation,
bool clamp);
370 virtual void setLocation(
const DtVector&);
378 virtual void calculateAndSetHeading(
const DtVector& start,
const DtVector& end);
383 virtual void processDisembarkationState(
const DtVector& bodyExitPosition);
384 virtual void movingToFinalDestination();
385 virtual void moveToFinalDestination();
389 virtual void preprocessEmbarkTask();
390 virtual void preprocessDisembarkTask();
394 virtual bool checkEmbarkOk(
const DtUUID& parent)
const;
399 virtual void updateDisembarkedAppearanceAndAnimation(
int appearance);
405 virtual void updateEmbarkedAppearanceAndAnimation(
int,
const DtString&);
406 virtual void updateLifeformEmbarkedAppearanceAndAnimation(
int,
const DtString&);
410 virtual void attachToEmbarkedParent(
const DtUUID& newParent);
415 virtual DtVector fallbackOffloadPoint();
428 virtual bool parentOnGround();
432 static void setHeadingCallback(
DtSimMessage*,
void* usr);
433 virtual void processSetHeading();
487 bool myInvisibleSetByUserDuringEmbark =
false;
UUID is a unique ID wrapper class.
Definition: uuid.h:59
double myRequestTime
Definition: embarkationController.h:464
#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:470
bool myResetAnimationIfNoLongerEmbarked
Definition: embarkationController.h:484
DtUUID myParentToLoadOn
Definition: embarkationController.h:471
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:453
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:449
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:460
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:465
File: simMsg.h.
Definition: simMessage.h:35
bool myRemoveSetHeadingNotifyCallback
Definition: embarkationController.h:475
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:466
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:477
DtStringOutputPort * myOrderedAnimationPort
Output Port Name: ordered-animation Output Port Description: Specifies an animation to be used as lon...
Definition: embarkationController.h:483
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:94
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:91
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:462
DtMovementLocalObjectFacade myMovementLocalObjectFacade
Definition: embarkationController.h:486
bool myResetGroundClampOnDisembarkValue
Definition: embarkationController.h:474
bool myUseLoadOverrideIfNoSlotAvailable
Will be set if the embarkation request is to use an override position if no slots are available...
Definition: embarkationController.h:469
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:473
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