15 #include <vlutil/vlConfig.h>
81 virtual const char*
type()
const override;
88 virtual bool init()
override;
102 virtual void tick()
override;
115 virtual bool createPSR();
130 static void taskCompleteReportCallback(
DtSimMessage * msg,
void * usr);
139 static void formationChangedCallback(
const DtFormationState& formationState,
154 virtual bool originalIsSpeedSpecified()
const;
155 virtual double originalSpeed()
const;
156 virtual bool originalStartAtClosest()
const;
157 virtual bool originalUseForwardDirection()
const;
158 virtual DtUUID originalRouteUUID()
const;
171 virtual void processFormationChanged(
const DtFormationState& formationState);
183 virtual void processRouteChanged();
192 virtual int sendTaskToSubordinate(
const DtSimTask& task,
193 const DtUUID& subordinate);
202 const DtUUID& subordinate)
const;
207 virtual void beginManeuverAlong(
const DtUUID& routeName,
208 const bool startAtClosestPoint,
const bool traverseForward);
222 virtual int findClosestSegmentIndex(DtVector testPoint, std::vector<DtVector> testRoute,
223 DtPoint& closestSegmentLoc,
double& distanceToSegment,
int indexSegmentFloor = 0);
234 virtual bool createSubordinateOffsetRoute(
235 const std::vector<DtVector>& localPoints,
236 const double rightOffset,
const double forwardOffset,
244 virtual bool isSubordinateCapable(
const DtUUID& sub)
const;
253 const DtUUID& leaderRoute,
254 const double formationWidth,
const double formationLength);
259 virtual int taskFollower(
const DtUUID& subEntity,
const DtUUID& formationLeader,
260 const DtUUID& unitRouteUUID,
const double leaderForwardOffset,
261 const bool doReverseRoute,
const double vertexStartIndex);
267 virtual int taskSubunit(
const DtUUID& subUnitId);
271 virtual int taskSubunit(
const DtUUID& subUnitId,
const DtUUID& routeId);
279 virtual void sendVrfObjectModifyMsg(
const DtUUID&
object, DtList* vertices)
const;
282 virtual void initializeMemberDataFromDescriptor(
292 virtual bool isUnitMovementExhausted();
304 virtual bool publishFormationRoutes()
const;
306 virtual double dist2D(
const DtVector& position1,
const DtVector& position2,
UUID is a unique ID wrapper class.
Definition: uuid.h:59
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
bool myRegisteredFormationChangedCallback
Flag used to indicate whether formation changed callback has been registered yet. ...
Definition: disaggregatedManeuverAlongController.h:362
class DtLocalObjectManager:
Definition: localObjectManager.h:157
DtFormationState * myFormationState
Pointer to aggregate's formation state object, cached in this class for convenience.
Definition: disaggregatedManeuverAlongController.h:338
bool mySetObjectToBeRemovedCallbacks
Definition: disaggregatedManeuverAlongController.h:370
virtual const char * type() const override=0
Returns a string identifies the class type of component. Type values are defined in compTypes...
std::map< const DtSimObject *, DtEntityRouteFollowingData > myEntityRouteFollowingMap
Map of subordinates and route following data.
Definition: disaggregatedManeuverAlongController.h:327
DtTime myStuckSubordinatesGiveUpSimTime
Give up time for isUnitMovementExhausted(). No need for this to go into a PSR. Loading a checkpoint e...
Definition: disaggregatedManeuverAlongController.h:381
virtual void registerTaskMsgCallbacks()
virtual void preFirstTickInit()
This function can be overridden to initialize a component before it is ticked for the first time...
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
Class DtDisaggregatedManeuverAlongController is a task controller that models aggregate entity maneuv...
Definition: disaggregatedManeuverAlongController.h:63
Definition: readerWriterRegistry.h:39
std::shared_ptr< DtSimTaskState > DtSimTaskStatePtr
Definition: taskAndTaskStateDefines.h:18
std::map< int, DtString > myPromotionIndexRouteNameMap
Map of formation positions to generated route object names.
Definition: disaggregatedManeuverAlongController.h:324
DtAggregateMoveAlongPSR * myProcessState
Container for state data associated with this component. This state is saved and restored as part of ...
Definition: disaggregatedManeuverAlongController.h:355
Class DtAggregateMoveAlongDescriptor holds all of the readable/writeable parameters used to configure...
Definition: aggregateMoveAlongDescriptor.h:30
const DtAggregateMoveAlongDescriptor * myAggregateMoveAlongDescriptor
Pointer to descriptor used to configure this object.
Definition: disaggregatedManeuverAlongController.h:358
bool myRestartTaskOnFormationUpdate
Definition: disaggregatedManeuverAlongController.h:374
DtSimObjectReference myRoute
Definition: disaggregatedManeuverAlongController.h:372
virtual bool init() override
Calls setRadio()
double myVertexSpacingAlongRoundedCorners
Spacing in meters between extra vertices inserted in generated routes to form rounded turns...
Definition: disaggregatedManeuverAlongController.h:351
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
Definition: coordSystem.h:54
File: simMsg.h.
Definition: simMessage.h:35
DtVrfAggregateStateRepository * myAggregateStateRepository
Pointer to aggregate's state repository, cached in this class for convenience.
Definition: disaggregatedManeuverAlongController.h:334
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 ...
virtual DtSimTaskStatePtr currentTaskState() const
std::map< const DtSimObject *, DtEntityRouteTraversalState > myEntityRouteTraversalStateMap
Map of subordinate and current route traversal state.
Definition: disaggregatedManeuverAlongController.h:330
unsigned int myNextRouteIndex
Counter used in naming generated routes. Routes are assigned unique object names using the convention...
Definition: disaggregatedManeuverAlongController.h:366
DtSimTaskStatePtr myCachedTaskState
Definition: disaggregatedManeuverAlongController.h:368
This is a convenience list that will add DtSimObjectReference objects and modify the list as objects ...
Definition: simObjectReferenceList.h:25
bool myGenerateRoutesWithRoundedCorners
Flag indicating all generated route should have rounded turns. Default is true.
Definition: disaggregatedManeuverAlongController.h:347
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
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...
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
DtCompatibilityRadio * myCommandRadio
Pointer to aggregate's command radio, cached in this class for convenience. Aggregates must be config...
Definition: disaggregatedManeuverAlongController.h:343
A locally simulated VRF object.
Definition: localObject.h:98