15 #include <vlutil/vlConfig.h>
83 virtual const char*
type()
const;
122 virtual bool createPSR();
136 static void taskCompleteReportCallback(
DtSimMessage * msg,
void * usr);
145 static void formationChangedCallback(
const DtFormationState& formationState,
154 static void routeChangedCallback(
const DtVrfObject* obj,
void * usr);
162 static void objectAddedCb(
const DtVrfObject* vrfObject,
void * usr);
169 static void objectAboutToBeRemovedCb(
const DtVrfObject* vrfObject,
void * usr);
178 static void objectManagerRemoveAndDeleteAllCallback(
215 virtual void processFormationChanged(
const DtFormationState& formationState);
227 virtual void processRouteChanged(
const DtVrfObject& obj);
235 virtual void processObjectAdded(
const DtVrfObject* vrfObject);
243 virtual void processObjectAboutToBeRemoved(
const DtVrfObject* vrfObject);
250 virtual void moveTo(
const DtUUID& route,
251 bool traverseForward);
263 virtual void moveAlong(
const DtUUID& route,
bool traverseForward,
bool startAtClosestPoint);
271 virtual void generateFormationRoutes(
const DtVrfObject& route,
272 bool reverseDirection);
279 virtual void buildEntityRouteFollowingMap(std::map<const DtVrfObject*, DtEntityRouteFollowingData>& map);
287 virtual void sendTaskToSubordinate(
const DtSimTask& task,
288 const DtUUID& subordinate)
const;
297 const DtUUID& subordinate)
const;
300 virtual void deleteFormationRoutes();
308 virtual void onObjectManagerRemoveAndDeleteAll(
const DtVrfObjectManager& objectManager);
322 virtual bool calculateInitialPositionAndHeadingAlongRoute(
const DtVrfObject& route,
323 bool traverseForward,
DtVector& initialPosition,
double& initialHeading);
331 virtual void sendVrfObjectModifyMsg(
const DtUUID&
object, DtList* vertices)
const;
335 virtual void initializeNextRouteIndex();
338 virtual unsigned int nextRouteIndex();
359 virtual bool buildOffsetRoute(
const DtList& localRouteVertexList,
361 bool reverseDirection,
362 bool generateRoutesWithRoundedCorners,
363 double vertexSpacingAlongRoundedCorners,
364 DtList& geocentricOffsetRouteVertexList);
373 virtual void registerRouteCallbacksIfNeeded();
380 virtual void initializeMemberDataFromDescriptor(
388 virtual void maintainMovementInFormation();
395 virtual void reevaluateMoveAlongAssignments();
411 virtual bool adjustOffsetRouteStart(std::vector<DtVector>& route)
const;
419 virtual bool adjustOffsetRouteEnd(std::vector<DtVector>& route)
const;
426 virtual bool extendRouteStart(std::vector<DtVector>& route,
435 virtual bool clipRouteEnd(std::vector<DtVector>& route,
double distance)
const;
445 virtual bool publishFormationRoutes()
const;
449 virtual bool shouldGroundClamp()
const;
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
DtVrfAggregateStateRepository * myAggregateStateRepository
Pointer to aggregate's state repository, cached in this class for convenience.
Definition: disaggregatedMoveAlongController.h:488
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
DtFormationState * myFormationState
Pointer to aggregate's formation state object, cached in this class for convenience.
Definition: disaggregatedMoveAlongController.h:492
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
double myMaintainFormationTickInterval
Simulation time interval at which myMaintainFormationMonitor should be ticked.
Definition: disaggregatedMoveAlongController.h:475
virtual void registerTaskMsgCallbacks()
DtAggregateMoveAlongPSR * myProcessState
Container for state data associated with this component.
Definition: disaggregatedMoveAlongController.h:509
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: singleTaskControllerComponent.h:20
DtCompatibilityRadio * myCommandRadio
Pointer to aggregate's command radio, cached in this class for convenience.
Definition: disaggregatedMoveAlongController.h:497
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:42
Definition: readerWriterRegistry.h:39
Class DtDisaggregatedMoveAlongController is a task controller that models aggregate entity move-along...
Definition: disaggregatedMoveAlongController.h:65
virtual const char * type() const =0
Returns a string identifies the class type of component.
Class DtAggregateMoveAlongDescriptor holds all of the readable/writeable parameters used to configure...
Definition: aggregateMoveAlongDescriptor.h:30
virtual bool init()
Calls setRadio()
std::map< const DtVrfObject *, DtEntityRouteTraversalState > myEntityRouteTraversalStateMap
Map of subordinate and current route traversal state.
Definition: disaggregatedMoveAlongController.h:484
virtual void clearTask()
If component is currently tasked, calls clearPendingSubtasks(), sets the tasked flag to false...
DtBoost::shared_ptr< DtSimTaskState > DtSimTaskStatePtr
Definition: taskAndTaskStateDefines.h:18
DtMaintainFormationMonitor * myMaintainFormationMonitor
Object that monitors current subordinate positions and adjusts them if necessary to maintain correct ...
Definition: disaggregatedMoveAlongController.h:471
DtIteratorDirection
Definition: iteratorBase.h:23
DtSetDataRequest is an abstract base class from which real setDataRequests can derive.
Definition: setDataRequest.h:40
std::map< const DtVrfObject *, DtEntityRouteFollowingData > myEntityRouteFollowingMap
Map of subordinates and route following data.
Definition: disaggregatedMoveAlongController.h:481
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
unsigned int myNextRouteIndex
Counter used in naming generated routes.
Definition: disaggregatedMoveAlongController.h:528
File: simMsg.h.
Definition: simMessage.h:35
DtMoveAlongTask represents a Move Along Route task for an entity to perform.
Definition: moveAlongTasks.h:46
virtual void tick()
This gives the thread of control to the component.
bool myRegisteredFormationChangedCallback
Flag used to indicate whether formation changed callback has been registered yet. ...
Definition: disaggregatedMoveAlongController.h:516
const DtAggregateMoveAlongDescriptor * myAggregateMoveAlongDescriptor
Pointer to descriptor used to configure this object.
Definition: disaggregatedMoveAlongController.h:512
DtSimTaskStatePtr myCachedTaskState
Definition: disaggregatedMoveAlongController.h:530
virtual DtSimTaskStatePtr currentTaskState() const
double myVertexSpacingAlongRoundedCorners
Spacing in meters between extra vertices inserted in generated routes to form rounded turns...
Definition: disaggregatedMoveAlongController.h:505
class DtVrfObjectManager:
Definition: vrfObjectManager.h:201
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
bool myGenerateRoutesWithRoundedCorners
Flag indicating all generated route should have rounded turns.
Definition: disaggregatedMoveAlongController.h:501
std::map< int, DtString > myPromotionIndexRouteNameMap
Map of formation positions to generated route object names.
Definition: disaggregatedMoveAlongController.h:465
const DtTaskControllerComponent & operator=(const DtTaskControllerComponent &orig)
assignment operator
bool myFirstTick
Flag used to indicate first non-zero dT() tick.
Definition: disaggregatedMoveAlongController.h:524
class DtMaintainFormationMonitor:
Definition: maintainFormationMonitor.h:29
DtSimTask is an abstract base class from which real tasks can derive.
Definition: simTask.h:33
bool myRegisteredObjectCallbacks
Flag used to indcate whether route added/changed/removed callbacks have yet been registered.
Definition: disaggregatedMoveAlongController.h:521
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
double myTimeToNextMaintainFormationTick
Simulation time for next tick of myMaintainFormationMonitor.
Definition: disaggregatedMoveAlongController.h:478
file aggregateMoveAlongPSR.h
Definition: aggregateMoveAlongPSR.h:31
Definition: vrfAggregateStateRepository.h:22
DtCompatibilityRadio.
Definition: compatibilityRadio.h:30
A DtTaskMsg is a DtRadioMsg with a pointer to a task.
Definition: taskMessage.h:19