DtTargetSelectionController is a controller that takes the list know object contacts from the entity's state repository, and from this list of contacts, generates prioritized target lists for any number of weapons.
End User Description: This component receives lists of sensor contacts the entity state repository, and selects appropriate targets from those lists, which are then put out on target lists which can be used by weapon systems. The number of output target lists is variable, and depends on the number of target-output blocks specified in the descriptor. Each target output can have a different set of entity types it targets, as well as different coverage area in relation to the entity. This component also listens for setTarget messages from the GUI, and uses the specified target as highest priority target on the output list. Developer Description: The selectTargets() creates the prioritized target lists from this fused contact list.
Each weapon has its own target selection criteria, specified in the descriptor, which allows different priorities for different weapons.
Prioritizing of targets happens with the use of a DtTargetRankOperator, which defines a comparison operator between two contacts. This may be overridden and replaced with a user-defined ranking operator. By default, targets are ranked first based on the entity-type based target priority (specified in the descriptor), then based on whether they are in the current Sector of Responsibility, and finally on range from the host entity.
Any target specified in a setTarget message sent to this entity will be put as the highest priority target when it is on the input list for any weapon for which it is valid.
- Note
- This controller used to take a list of contacts from one or more sensors (VRF 3.10 and earlier), but was changed to read the list of known sensor contacts from the state repository. A controller such as the DtContactFusionController combines contacts from multiple sensors and populates the list in the state repository.
Uses Descriptor Type: DtComponentDescriptor
|
| | DtTargetSelectionController (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtTargetSelectionController () |
| |
| virtual bool | init () |
| |
| virtual const char * | type () const |
| |
| virtual void | registerTaskMsgCallbacks () |
| |
| virtual void | updateWeaponInterfaceTaskState (DtWeaponComponentInterface *weapIf) |
| |
| virtual void | updateTargetPriorityListState () |
| |
| virtual void | taskComplete (bool success=true) |
| |
| virtual bool | postAddComponentsInit () |
| |
| virtual void | preFirstTickInit () |
| |
| virtual void | tick () |
| |
| | 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 | clearTask () |
| |
| 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 DtSimTaskStatePtr | currentTaskState () 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 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 | 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 | processSimObjectAdded (DtSimObjectReference) |
| |
| virtual bool | createPorts () |
| |
| virtual bool | createOutputPorts () |
| |
| virtual bool | createPSR () |
| |
| virtual void | registerRadioMessageCallbacks () |
| |
| virtual void | processSetTarget (DtSimMessage *msg) |
| |
| virtual void | selectTargets () |
| |
| virtual bool | targetForce (DtForceType force) const |
| |
| virtual bool | validTarget (const DtRwSensorContactInfo &contactInfo, const DtWeaponComponentInterface &weapIf) const |
| |
| virtual DtEntityTargetInformation | targetInfoFromContactInfo (const DtRwSensorContactInfo &contactInfo) const |
| |
| virtual void | updateRegionEvaluators () |
| |
| virtual DtTargetRankOperator * | createTargetRankOperator (const DtTargetSelectionCriteria &criteria) const |
| |
| virtual void | setupDetectableForces (DtForceType) |
| |
| virtual void | clearTargets () |
| |
| virtual bool | isSurrenderedLifeform (const DtSimObject *entity) const |
| |
| virtual bool | findFusedTargets (const std::map< DtUUID, DtRwSensorContactInfo * > &contactList, const DtWeaponComponentInterface &weapIf, DtRwSensorContactInfo &userTargetInfo, DtOrderedTargetSet &orderedTargets) |
| |
virtual const
DtRwSensorContactInfo * | setTargetsToWeaponInterface (DtWeaponComponentInterface &weapIf, DtRwSensorContactInfo &userTargetInfo, DtOrderedTargetSet &orderedTargets) |
| |
| virtual void | findWeaponControlInterfaces () |
| |
| virtual bool | permissionToFire () const |
| |
| virtual bool | canFireAtBasedOnTargetPriorityListRoe (const DtSimObject *entity) const |
| |
| virtual bool | suppressed () const |
| |
| virtual bool | allowedToFire () const |
| |
| virtual bool | haveCommonMount (DtWeaponComponentInterface *weapon1, DtWeaponComponentInterface *weapon2) const |
| |
| virtual bool | yieldsFiringPrecedenceTo (DtWeaponComponentInterface *weapon1, bool weapon1IsBeingTasked, DtWeaponComponentInterface *weapon2) |
| |
| virtual bool | tokenConflict (DtWeaponComponentInterface *weapon1, DtWeaponComponentInterface *weapon2) |
| |
| virtual bool | artPartConflict (DtWeaponComponentInterface *weapon1, DtWeaponComponentInterface *weapon2, DtArtPartType *conflictingPart) |
| |
| virtual bool | otherWeaponBlocksWeapon (DtWeaponComponentInterface *weapon, bool weaponIsBeingTasked, DtWeaponComponentInterface **conflictingWeapon, bool *controlExternalTurret) |
| |
| virtual void | clearLowerPriorityWeaponTargets (DtWeaponComponentInterface *weapon) |
| |
| virtual void | assembleListOfFiredUponTargets (std::set< DtUUID > &targets) |
| |
|
| virtual int | nextPriorityValue () |
| |
| virtual void | setNextPriorityValue (const int val) |
| |
|
| virtual const artPartWeaponMap & | articulatedPartWeapons () const |
| |
| virtual void | addArtPartWeaponToMap (const DtArtPartType part, const DtWeaponComponentInterface *weaponInterface) |
| |
| virtual void | setArticulatedPartWeapons (const artPartWeaponMap &artPartMap) |
| |
| 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 () |
| |
| 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) |
| |