15 #include <vlutil/vlConfig.h>
84 virtual const char*
type()
const override;
91 virtual bool init()
override;
109 virtual void tick()
override;
123 virtual bool createPSR();
137 static void taskCompleteReportCallback(
DtSimMessage * msg,
void * usr);
146 static void formationChangedCallback(
const DtFormationState& formationState,
184 virtual void processFormationChanged(
const DtFormationState& formationState);
196 virtual void processRouteChanged();
203 virtual void moveTo(
const DtUUID& route,
204 bool traverseForward);
217 virtual void beginMoveAlong(
const DtUUID& route,
218 bool traverseForward,
219 bool startAtClosestPoint,
230 virtual bool generateFormationRoutes(
const DtSimObject& route,
231 bool reverseDirection);
238 virtual void buildEntityRouteFollowingMap(std::map<const DtSimObject*, DtEntityRouteFollowingData>& map);
246 virtual int sendTaskToSubordinate(
const DtSimTask& task,
247 const DtUUID& subordinate);
256 const DtUUID& subordinate)
const;
259 virtual void deleteFormationRoutes();
273 virtual bool calculateInitialPositionAndHeadingAlongRoute(
const DtSimObject& route,
274 bool traverseForward, DtVector& initialPosition,
double& initialHeading);
282 virtual void sendVrfObjectModifyMsg(
const DtUUID&
object, DtList* vertices)
const;
286 virtual void initializeNextRouteIndex();
289 virtual unsigned int nextRouteIndex();
311 virtual bool buildOffsetRoute(
const DtList& localRouteVertexList,
312 const DtVector& bodyOffset,
313 bool reverseDirection,
314 bool generateRoutesWithRoundedCorners,
315 double vertexSpacingAlongRoundedCorners,
316 DtList& geocentricOffsetRouteVertexList,
317 bool& dataAvailable);
325 virtual void initializeMemberDataFromDescriptor(
333 virtual void maintainMovementInFormation();
340 virtual void reevaluateMoveAlongAssignments();
343 virtual void reevaluateFormationMoveAlongAssignments();
359 virtual bool adjustOffsetRouteStart(std::vector<DtVector>& route,
360 bool& dataAvailable)
const;
368 virtual bool adjustOffsetRouteEnd(std::vector<DtVector>& route,
369 bool& dataAvailable)
const;
376 virtual bool extendRouteStart(std::vector<DtVector>& route,
385 virtual bool clipRouteEnd(std::vector<DtVector>& route,
double distance)
const;
395 virtual bool publishFormationRoutes()
const;
399 virtual bool shouldGroundClamp()
const;
417 virtual bool groundClampRoute(std::vector<DtVector>& route,
bool& dataAvailable)
const;
UUID is a unique ID wrapper class.
Definition: uuid.h:59
DtVrfAggregateStateRepository * myAggregateStateRepository
Pointer to aggregate's state repository, cached in this class for convenience.
Definition: disaggregatedMoveAlongController.h:445
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
class DtLocalObjectManager:
Definition: localObjectManager.h:157
DtFormationState * myFormationState
Pointer to aggregate's formation state object, cached in this class for convenience.
Definition: disaggregatedMoveAlongController.h:449
double myMaintainFormationTickInterval
Simulation time interval at which myMaintainFormationMonitor should be ticked.
Definition: disaggregatedMoveAlongController.h:432
virtual const char * type() const override=0
Returns a string identifies the class type of component. Type values are defined in compTypes...
DtAggregateLocalObjectFacade myAggregateLocalObjectFacade
Definition: disaggregatedMoveAlongController.h:488
virtual void registerTaskMsgCallbacks()
DtAggregateMoveAlongPSR * myProcessState
Container for state data associated with this component. This state is saved and restored as part of ...
Definition: disaggregatedMoveAlongController.h:466
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: singleTaskControllerComponent.h:22
DtCompatibilityRadio * myCommandRadio
Pointer to aggregate's command radio, cached in this class for convenience. Aggregates must be config...
Definition: disaggregatedMoveAlongController.h:454
std::map< const DtSimObject *, DtEntityRouteTraversalState > myEntityRouteTraversalStateMap
Map of subordinate and current route traversal state.
Definition: disaggregatedMoveAlongController.h:441
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
Class DtDisaggregatedMoveAlongController is a task controller that models aggregate entity move-along...
Definition: disaggregatedMoveAlongController.h:66
std::shared_ptr< DtSimTaskState > DtSimTaskStatePtr
Definition: taskAndTaskStateDefines.h:18
Class DtAggregateMoveAlongDescriptor holds all of the readable/writeable parameters used to configure...
Definition: aggregateMoveAlongDescriptor.h:30
DtSimObjectReference myRoute
Definition: disaggregatedMoveAlongController.h:486
bool mySetObjectToBeRemovedCallbacks
Definition: disaggregatedMoveAlongController.h:484
DtMaintainFormationMonitor * myMaintainFormationMonitor
Object that monitors current subordinate positions and adjusts them if necessary to maintain correct ...
Definition: disaggregatedMoveAlongController.h:428
virtual bool init() override
Calls setRadio()
DtIteratorDirection
Definition: iteratorBase.h:23
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
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
unsigned int myNextRouteIndex
Counter used in naming generated routes. Routes are assigned unique object names using the convention...
Definition: disaggregatedMoveAlongController.h:480
File: simMsg.h.
Definition: simMessage.h:35
DtMoveAlongTask represents a Move Along Route task for an entity to perform. It inherits read/writabl...
Definition: moveAlongTasks.h:46
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
bool myRegisteredFormationChangedCallback
Flag used to indicate whether formation changed callback has been registered yet. ...
Definition: disaggregatedMoveAlongController.h:473
const DtAggregateMoveAlongDescriptor * myAggregateMoveAlongDescriptor
Pointer to descriptor used to configure this object.
Definition: disaggregatedMoveAlongController.h:469
DtSimTaskStatePtr myCachedTaskState
Definition: disaggregatedMoveAlongController.h:482
virtual DtSimTaskStatePtr currentTaskState() const
double myVertexSpacingAlongRoundedCorners
Spacing in meters between extra vertices inserted in generated routes to form rounded turns...
Definition: disaggregatedMoveAlongController.h:462
std::map< const DtSimObject *, DtEntityRouteFollowingData > myEntityRouteFollowingMap
Map of subordinates and route following data.
Definition: disaggregatedMoveAlongController.h:438
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
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:80
bool myGenerateRoutesWithRoundedCorners
Flag indicating all generated route should have rounded turns. Default is true.
Definition: disaggregatedMoveAlongController.h:458
std::map< int, DtString > myPromotionIndexRouteNameMap
Map of formation positions to generated route object names.
Definition: disaggregatedMoveAlongController.h:422
const DtTaskControllerComponent & operator=(const DtTaskControllerComponent &orig)
assignment operator
bool myFirstTick
Flag used to indicate first non-zero dT() tick.
Definition: disaggregatedMoveAlongController.h:476
class DtMaintainFormationMonitor:
Definition: maintainFormationMonitor.h:30
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...
double myTimeToNextMaintainFormationTick
Simulation time for next tick of myMaintainFormationMonitor.
Definition: disaggregatedMoveAlongController.h:435
file aggregateMoveAlongPSR.h
Definition: aggregateMoveAlongPSR.h:33
Definition: vrfAggregateStateRepository.h:21
DtCompatibilityRadio.
Definition: compatibilityRadio.h:30
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
A locally simulated VRF object.
Definition: localObject.h:98