Class DtDisaggregatedMoveAlongController is a task controller that models aggregate entity move-along-route behavior.
End User Description: The DtDisaggregatedMoveAlongController models movement along a route for aggregate entities. It handles execution of DtMoveAlongTasks. Movement is implemented by creating temporary working routes for each subordinate, positioned at an offset needed to maintain that subordinate's position in formation. The controller periodically monitors subordinate's relative positions to one another and issues DtSetSpeedRequests at a relatively faster or slower speed than the ordered speed. In this way, the controller attempts to maintain the shape of the formation as the subordinates move. The movement task is considered is considered complete when all subordinates have reached the end of the route and have issued task complete reports to the aggregate. At that point, the aggregate destroys the temporary working routes and the task ends.
This controller may only be configured as a part of an entity that has a vrf-aggregate-state-repository.
Developer Description: The DtDisaggregatedMoveAlongController class registers a callback for handling DtMoveAlongTasks. When it receives a DtMoveAlongTask, it queries the aggregate's DtFormationState repository in the state repository for the current positions of its taskable subordinates in the current formation. It then creates a set of 'working' routes parallel to the original route, based on the offsets obtained from the formation state repository. It registers callbacks for handling changes to formation state, changes to route vertices, and unexpected removal of route while tasked to move along route.
Uses Descriptor Type: DtAggregateMoveAlongDescriptor
|
| | DtDisaggregatedMoveAlongController (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtDisaggregatedMoveAlongController () |
| |
| virtual const char * | type () const |
| |
| virtual bool | init () |
| |
| virtual void | registerTaskMsgCallbacks () |
| |
| virtual void | tick () |
| |
| virtual void | clearTask () |
| |
| virtual bool | createPSR () |
| |
| virtual DtSimTaskStatePtr | currentTaskState () const |
| |
| | DtSingleTaskControllerComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *compDesc=0, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtSingleTaskControllerComponent () |
| |
| virtual void | postTick () |
| |
| virtual bool | beginProcessingTask (const DtTaskMessage &task, DtSimTaskStatePtr taskState) |
| |
| virtual void | taskNotify (const DtSimTask &task) |
| |
| virtual void | taskComplete (bool success=true) |
| |
| virtual void | suspendTask () |
| |
| virtual int | sendSubtask (DtSimTask &task) |
| |
| virtual void | clearSubtask (int subtaskId) |
| |
| virtual void | addPendingSubtaskId (int subtaskId) |
| |
| virtual bool | findPendingSubtaskId (int subtaskId) |
| |
| virtual bool | isSubtasked () const |
| |
| virtual void | removePendingSubtaskId (int subtaskId) |
| |
| virtual void | removeAllPendingSubtaskIds () |
| |
| virtual std::vector< int > | currentPendingSubstaskIds () const |
| |
| virtual void | clearCurrentTaskMessage () |
| |
| virtual DtTaskMessage * | currentTaskMessage () const |
| |
| virtual bool | decideToGiveUpTask () const |
| |
| virtual void | giveUpTask () |
| |
| virtual bool | taskActive (int taskId) const |
| |
| virtual bool | clearTopLevelTasks () |
| |
| virtual void | clearConflictingTopLevelTasks (const DtSimTaskMessageType &conflictType) |
| |
| virtual void | clearTasksByType (const DtSimTaskMessageType &taskType) |
| |
| virtual void | clearTaskById (int taskId) |
| |
| virtual DtSuspendedTaskInfo * | suspendTaskById (int taskId) |
| |
| virtual DtSuspendedTaskInfo * | suspendSubtaskById (int taskId, int subtaskId) |
| |
virtual std::list
< DtTaskMessage * > | currentTaskMessages () const |
| |
| virtual DtTaskWithTaskStateListPtr | topLevelTasks () const |
| |
| virtual void | disable () |
| |
| | DtTaskControllerComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *compDesc=0, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtTaskControllerComponent () |
| |
| virtual bool | showCurrentTaskInGui () const |
| |
| virtual void | setRadio (DtSimRadio *radio) |
| |
| virtual void | addTaskProcessorCallback (const DtSimTaskMessageType &taskType, DtTaskMessageCallbackFcn fcn, void *usr) |
| |
| virtual void | addTaskProcessorCallback (const DtSimTaskMessageType &taskType, DtMessageCallbackFcn fcn, void *usr) |
| |
| virtual void | removeTaskProcessorCallback (const DtSimTaskMessageType &taskType, DtMessageCallbackFcn fcn, void *usr) |
| |
| virtual void | removeTaskProcessorCallback (const DtSimTaskMessageType &taskType, DtTaskMessageCallbackFcn fcn, void *usr) |
| |
| virtual void | enable () |
| |
| virtual void | sendTaskCanceled (DtTaskMessage *taskMsg) |
| |
| virtual bool | taskVisualizationsActive () const |
| |
| virtual void | setTasked (bool tasked) |
| |
| virtual bool | tasked () const |
| |
| | DtControllerComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtControllerComponent () |
| |
| virtual bool | postAddComponentsInit () |
| |
| virtual DtSimRadio * | radio () |
| |
| virtual void | enableTaskTypes () |
| |
| virtual void | disableTaskTypes () |
| |
| | DtSimComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtSimComponent () |
| |
| virtual void | setParentSystem (DtComponentSystem *system) |
| |
| DtComponentSystem * | parentSystem () const |
| |
| virtual void | registerAttributeFunctions () |
| |
| virtual void | preFirstTickInit () |
| |
| virtual void | timedTick () |
| |
| virtual void | setMinTickPeriod (double minTickPeriod) |
| |
| virtual double | minTickPeriod () const |
| |
| virtual void | setMinTickPeriodVariance (double minTickPeriodVariance) |
| |
| virtual double | minTickPeriodVariance () const |
| |
| virtual void | setNextTickTime (double nextTickTime) |
| |
| virtual double | nextTickTime () const |
| |
| virtual double | calculateNextTickTime () const |
| |
| virtual double | calculateFirstTickTime () const |
| |
| virtual void | setEntity (DtLocalObject *entity) |
| |
| virtual DtSimComponent * | nextComponent () |
| |
| virtual DtSimComponent * | prevComponent () |
| |
| virtual void | setListItem (DtListItem *item) |
| |
| virtual DtListItem * | listItem () |
| |
| virtual void | putData (std::string &fp, int indentLevel=0) |
| |
| virtual DtlObjPtr | getData (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) |
| |
| virtual void | addInputPort (DtInputPort *port) |
| |
| virtual void | removeInputPort (DtInputPort *port) |
| |
| virtual DtInputPort * | lookupInputPort (const DtString &portName) |
| |
| virtual DtList | inputPortList () const |
| |
| virtual void | addOutputPort (DtOutputPort *port) |
| |
| virtual void | removeOutputPort (DtOutputPort *port) |
| |
| virtual DtOutputPort * | lookupOutputPort (const DtString &portName) |
| |
| virtual DtList | outputPortList () const |
| |
| virtual void | addInputPortGroup (DtInputPortGroup *group) |
| |
| virtual void | removeInputPortGroup (DtInputPortGroup *group) |
| |
| virtual DtInputPortGroup * | lookupInputPortGroup (const DtString &groupName) |
| |
| virtual DtList | inputPortGroupList () const |
| |
| virtual void | addOutputPortGroup (DtOutputPortGroup *group) |
| |
| virtual void | removeOutputPortGroup (DtOutputPortGroup *group) |
| |
| virtual DtOutputPortGroup * | lookupOutputPortGroup (const DtString &groupName) |
| |
| virtual DtList | outputPortGroupList () const |
| |
| virtual int | priority () const |
| |
| virtual void | setPriority (int priority) |
| |
| double | dT () const |
| |
| virtual void | setDT (double deltaT) |
| |
| virtual void | setComponentDescriptor (DtComponentDescriptor *componentDescriptor) |
| |
virtual const
DtComponentDescriptor * | componentDescriptor () const |
| |
| virtual bool | tickWhileDestroyed () const |
| |
| DtVrfProcessStateRepositoryManager * | psrManager () |
| |
| virtual const DtSymbolString & | componentFullName () const |
| |
| DtPhysicalWorld * | physicalWorld () |
| |
| const DtPhysicalWorld * | physicalWorld () const |
| |
| const DtAttachedTerrain * | terrainAttachedTo () const |
| |
| DtLocalObject * | entity () |
| |
| const DtLocalObject * | entity () const |
| |
| DtSimulationServices * | simulationServices () |
| |
| const DtSimulationServices * | simulationServices () const |
| |
| const Coordinate_System * | coordinateSystem () const |
| |
| virtual bool | taskVisualizationsEnabled () const |
| |
| makVrf::DtTaskVisualizationMap & | taskVisualizations () |
| |
| virtual bool | isEnabled () |
| |
| virtual void | setIsEnabled (bool yesNo) |
| |
| virtual DtOutputStream & | objectConsoleDebug (const DtString &channel="") const |
| |
| virtual DtOutputStream & | objectConsoleVerbose (const DtString &channel="") const |
| |
| virtual DtOutputStream & | objectConsoleInfo (const DtString &channel="") const |
| |
| virtual DtOutputStream & | objectConsoleWarn (const DtString &channel="") const |
| |
| virtual DtOutputStream & | objectConsoleError (const DtString &channel="") const |
| |
| virtual int | notifyLevel () const |
| |
| virtual DtSimResourceManager & | resourceManager () |
| |
virtual const
DtSimResourceManager & | resourceManager () const |
| |
VRF4API_METHOD const
DtSimulationServices * | simManager () const |
| |
| | DtReaderWriter () |
| |
| | DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false) |
| |
| | DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false) |
| |
| | DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL) |
| |
| | DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL) |
| |
| | DtReaderWriter (const DtReaderWriter &, DtReaderWriterRegistry *parentRegistry=NULL) |
| |
| const DtReaderWriter & | operator= (const DtReaderWriter &orig) |
| |
| bool | operator== (const DtReaderWriter &) const |
| |
| bool | operator!= (const DtReaderWriter &rhs) |
| |
| virtual | ~DtReaderWriter () |
| |
| virtual void | putSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| |
| virtual void | postPutSelf () |
| |
| virtual void | prePutSelf () |
| |
| virtual void | getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| |
| virtual void | postGetSelf () |
| |
| virtual void | preGetSelf () |
| |
| virtual void | writeSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| |
| virtual DtSymbolString | name () const |
| |
| virtual void | addAlias (const DtSymbolString &alias) |
| |
| virtual void | addAlias (const DtString &alias) |
| |
| virtual bool | hasAlias (const DtSymbolString &alias) |
| |
| virtual const aliasContainer & | aliases () const |
| |
| virtual void | setReadonly (bool flag) |
| |
| bool | isReadonly () const |
| |
| virtual void | reset () |
| |
| virtual int | alignment () const |
| |
| virtual bool | variableIsBound () const |
| |
| virtual void | unbindVariable () |
| |
| virtual void | setName (const DtString &) |
| |
| virtual const char * | readerWriterType () const |
| |
| virtual const char * | xmlType () const |
| |
| virtual DtString | prettyPrint () const |
| |
| std::string | debugText () const |
| |
| virtual void | bindVariables (DtVariableBindingsList variableBindings) |
| |
virtual std::list
< DtVariableNameType > | unboundVariables () const |
| |
| bool | invalid () const |
| |
| virtual bool | hasChild (const DtReaderWriter *p) const |
| |
| virtual bool | hasVariableReference () const |
| |
| virtual void | bindLocalVariables (const DtVariableBindingsList &variableBindings) |
| |
| virtual void | recordUpdateTime () const |
| |
| virtual bool | wasUpdatedSince (DtTime t) const |
| |
| virtual bool | changedSinceLastChecked () |
| |
| virtual bool | peekChangedSinceLastChecked () const |
| |
| virtual void | setValueSpecified (bool specified, bool recurse=false) |
| |
| virtual bool | valueSpecified () const |
| |
| virtual bool | isVariableReference () const |
| |
| virtual void | setIsVariableReference (bool value) |
| |
| virtual void | clearAllVariableReferenceFlags () |
| |
| virtual DtSymbolString | variableName () const |
| |
| virtual void | setVariableName (const DtSymbolString variableName) |
| |
| virtual const DtReaderWriter * | defaultRWValue () const |
| |
| virtual DtReaderWriter * | defaultRWValue () |
| |
| virtual void | setDefaultRWValue (DtReaderWriter *) |
| |
| virtual bool | checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| |
| const DtReaderWriterRegistry & | registry () const |
| |
| DtReaderWriterRegistry & | registry () |
| |
| virtual DtPropertyInterface * | property () |
| |
| virtual const DtPropertyInterface * | property () const |
| |
| virtual DtString | toXml () const |
| |
| virtual DtRwVariableBindings * | generateVariableBindings () const |
| |
| virtual bool | toXml (const DtFilename &) const |
| |
| virtual bool | fromXml (const DtString &) |
| |
| virtual bool | fromXmlFile (const DtFilename &) |
| |
| virtual void | putSelf (DtEnvironmentSP, DtEnvValueSP parent) const |
| |
| virtual void | putData (DtEnvironmentSP, DtEnvValueSP value) const |
| |
| virtual void | putVariableReference (DtEnvironmentSP, DtEnvValueSP value) const |
| |
| virtual void | getSelf (const DtEnvironmentSP, const DtEnvValueSP root, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList()) |
| |
| virtual void | getData (const DtEnvironmentSP, const DtEnvValueSP, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList()) |
| |
| virtual void | unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings) |
| |
| virtual void | getVariableReference (DtEnvironmentSP, DtEnvValueSP value) |
| |
|
| virtual void | processMoveAlong (const DtTaskMessage &msg, DtSimTaskStatePtr taskStatePtr) |
| |
| virtual void | initializeMoveAlongTask (DtIteratorDirection traversalDirection, bool startAtClosestPoint, double speed, DtSimTaskStatePtr taskState) |
| |
| virtual void | processFormationChanged (const DtFormationState &formationState) |
| |
| virtual void | processTaskComplete (DtSimMessage *msg) |
| |
| virtual void | processRouteChanged () |
| |
| virtual void | moveTo (const DtUUID &route, bool traverseForward) |
| |
| virtual void | beginMoveAlong (const DtUUID &route, bool traverseForward, bool startAtClosestPoint, double speed) |
| |
| virtual bool | generateFormationRoutes (const DtSimObject &route, bool reverseDirection) |
| |
| virtual void | buildEntityRouteFollowingMap (std::map< const DtSimObject *, DtEntityRouteFollowingData > &map) |
| |
| virtual void | sendTaskToSubordinate (const DtSimTask &task, const DtUUID &subordinate) const |
| |
| virtual void | sendSetDataToSubordinate (const DtSetDataRequest &setData, const DtUUID &subordinate) const |
| |
| virtual void | deleteFormationRoutes () |
| |
| virtual bool | calculateInitialPositionAndHeadingAlongRoute (const DtSimObject &route, bool traverseForward, DtVector &initialPosition, double &initialHeading) |
| |
| virtual void | sendVrfObjectModifyMsg (const DtUUID &object, DtList *vertices) const |
| |
| virtual void | initializeNextRouteIndex () |
| |
| virtual unsigned int | nextRouteIndex () |
| |
| virtual bool | buildOffsetRoute (const DtList &localRouteVertexList, const DtVector &bodyOffset, bool reverseDirection, bool generateRoutesWithRoundedCorners, double vertexSpacingAlongRoundedCorners, DtList &geocentricOffsetRouteVertexList, bool &dataAvailable) |
| |
| virtual void | initializeMemberDataFromDescriptor (const DtAggregateMoveAlongDescriptor &desc) |
| |
| virtual void | maintainMovementInFormation () |
| |
| virtual void | reevaluateMoveAlongAssignments () |
| |
| virtual void | reevaluateFormationMoveAlongAssignments () |
| |
| virtual void | sendClearTask (const DtUUID &recipient, const DtSimTaskMessageType &taskType) const |
| |
| virtual bool | adjustOffsetRouteStart (std::vector< DtVector > &route, bool &dataAvailable) const |
| |
| virtual bool | adjustOffsetRouteEnd (std::vector< DtVector > &route, bool &dataAvailable) const |
| |
| virtual bool | extendRouteStart (std::vector< DtVector > &route, double distance) const |
| |
| virtual bool | clipRouteEnd (std::vector< DtVector > &route, double distance) const |
| |
virtual
DtMaintainFormationMonitor * | createFormationMonitor (DtLocalObject *entity) const |
| |
| virtual bool | publishFormationRoutes () const |
| |
| virtual bool | shouldGroundClamp () const |
| |
| virtual void | clearPendingSubtasks () |
| |
| virtual void | clearSubtasksByType (const DtSimTaskMessageType &taskType) |
| |
| virtual void | cleanupInactiveSubtaskStatus () |
| |
| virtual void | suspendSubtasksOfTask (int taskId, DtSuspendedTaskInfo *suspendInfo) |
| |
| virtual void | suspendSubtaskOfTask (int taskId, int subtaskId, DtSuspendedTaskInfo *suspendInfo) |
| |
| virtual DtSimTaskMessageType | remapScriptId (const DtSimTaskMessageType &) const |
| |
| | DtControllerComponent () |
| |
| | DtControllerComponent (const DtControllerComponent &orig) |
| |
| const DtControllerComponent & | operator= (const DtControllerComponent &orig) |
| |
| virtual void | onRestore () |
| |
| virtual void | initializeTargetingControlTableFromDescriptor (const DtReaderWriter *) |
| |
| virtual void | sendCapableSetsAndTasks () |
| |
| virtual double | computeCurrentTime () |
| |
| bool | testInvariant () const |
| |
| virtual bool | createPortGroups () |
| |
| virtual bool | createPorts () |
| |
| DtVrfProcessStateRepository * | createComponentPsr (const DtString &defaultPsrType, const DtString &defaultPsrName, bool useDescriptorParams=true) |
| |
| virtual void | updateTaskVisualizations () |
| |
| virtual void | destroyTaskVisualizations () |
| |
| virtual void | destroyTaskVisualization (const DtString &name) |
| |
virtual
makVrf::DtPointTaskVisualizationPtr | pointTaskVisualization (const DtString &name) |
| |
virtual
makVrf::DtLineTaskVisualizationPtr | lineTaskVisualization (const DtString &name) |
| |
virtual
makVrf::DtAreaTaskVisualizationPtr | areaTaskVisualization (const DtString &name) |
| |
virtual
makVrf::DtTextTaskVisualizationPtr | textTaskVisualization (const DtString &name) |
| |
| double | calculateNextTaskVisTickTime () const |
| |
| DtVrfObjectStateRepository * | localStateRepository () |
| |
| const DtVrfObjectStateRepository * | localStateRepository () const |
| |
| void | addSimObjectPredicateCallback (DtSimObjectReference, DtVrfObjectPredicateCallbackFunction function, const DtVrfObjectPredicate &predicate, DtTime evaluationPeriod=0, void *userData=0) |
| |
| void | removeSimObjectPredicateCallback (const DtSimObject *, DtVrfObjectPredicateCallbackFunction function, const DtVrfObjectPredicate &predicate, DtTime evaluationPeriod=0, void *userData=0) |
| |
| void | invokeSimObjectPredicateCallbacks () |
| |
| virtual void | clearPredicateCallbacks () |
| |
| virtual void | bindToRwAsVariable (const DtReaderWriter *rw) |
| |