![]() |
VR-Forces 4.0.4 Class Documentation
|
DtObjectSensor is a base level sensor component. More...

Public Member Functions | |
| DtObjectSensor (const DtString &name, DtVrfObject *owner, DtSimManager *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) | |
| (const DtString&,DtVrfObject*,DtSimManager*, | |
| virtual | ~DtObjectSensor () |
| destructor | |
| virtual bool | init () |
| Calls createPSR(), createDetectableObjectList(), createAndInitSensorMonitor() and initSensorGeometry(). | |
| virtual DtString | type () const |
| Returns a string identifies the class type of component. | |
| virtual void | tick () |
| Processes only if the simulation is not paused. | |
| virtual bool | tickWhileDestroyed () const |
| virtual int | sensorType () const |
Static Public Member Functions | |
| static DtSimComponent * | creator (const DtString &name, DtVrfObject *owner, DtSimManager *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) |
| (const DtString&,DtVrfObject*,DtSimManager*, | |
Protected Member Functions | |
| virtual bool | createPortGroups () |
| Creates and initializes port groups. | |
| virtual bool | createPorts () |
| Creates the target list port. | |
| virtual DtObjectSensorPSR * | createPSR () |
| Creates myProcessState data member, and adds it to our process state repository manager. | |
| virtual const char * | defaultPSRType () const |
| virtual void | updateDetectableObjectsList () |
| Sets up myDetectableObjectList as a list that contains all entity types/forces specified in both the descriptor and the myObjectsToDetectInputPort input port. | |
| virtual bool | initSensorGeometry () |
| Creates the geometry evaluator based on the sensor-geometry entry in the descriptor, and the sensor geometry evaluator factory. | |
| virtual void | setupGeometryForDetection () |
| Sets up the current sensor geometry evaluator with the current position and orientation of the sensor. | |
| virtual DtVector | localSensorPosition () const |
| virtual DtTaitBryan | localSensorOrientation () const |
| virtual bool | processObjects () |
| Checks detectability of each of the detectable objects. | |
| virtual bool | detectObject (DtVrfObject *object, DtRwSensorContactInfo *contactInfo) |
| virtual bool | continueDetectingObject (DtVrfObject *object, DtRwSensorContactInfo *contactInfo, bool &contactInfoModified) |
| virtual bool | objectWithinSensorGeometry (DtVrfObject *object) const |
| virtual double | rangeSquaredToObject (const DtVrfObject *object) const |
| virtual double | rangeToObject (const DtVrfObject *object) const |
| virtual void | clearObjectRangeCache () const |
| Invalidates the current object range cache. | |
| virtual void | printTargets () const |
| Prints the current target list to the console. | |
| virtual void | updateDetectedObjectListPort () |
| Clears the list port, then adds all target infos from the previous target list in the PSR, and sends the data. | |
| virtual bool | createAndInitSensorMonitor () |
| Creates a DtObjectSensorMonitor, and calls init() on it. | |
| virtual bool | objectInDetectableList (DtVrfObject *) const |
| Returns true if the object is in the myDetectableObjectList. | |
| virtual void | processHostilitiesChanged (DtU8 force) |
| DtCompositePredicate | objectTypeForcePredicate (const DtObjectType &, const DtNLengthIntegerVector &forceTypes) |
| Specifies force types as s DtNLenghtIntegerVector. | |
| DtCompositePredicate | objectTypeForcePredicate (const DtObjectType &, const std::list< DtU8 > &forceTypes) |
| Specifies force types as a std::list. | |
Static Protected Member Functions | |
| static void | hostilitiesChangedCallback (DtU8 force, void *usr) |
| If who were hostile towards has changed we will need to update our myDetectableObjectList. | |
Protected Attributes | |
| DtManagedObjectListConstPtr | myDetectableObjectList |
| const DtObjectSensorDescriptor * | myObjectSensorDescriptor |
| DtObjectSensorPSR * | myProcessState |
| Container for state data associated with this component. | |
| DtObjectSensorMonitor * | myMonitor |
| Sends out sensor contact information to the GUI if the GUI or other application has requested the information. | |
| DtSpatialFilterEvaluator * | mySensorGeometryEvaluator |
| const DtVrfObject * | myMutableObjectCached |
| The VrfObject whose range is currently cached. | |
| bool | myMutableObjectRangeCalculated |
| Keeps track of whether the range has been calculated for the current cached object. | |
| double | myMutableObjectRangeCache |
| The current range to the cached object, if calculated. | |
| bool | myMutableObjectRangeSquaredCalculated |
| Keeps track of whether the range squared has been calculated for the current cached object. | |
| double | myMutableObjectRangeSquaredCache |
| The current range squared to the cached object, if calculated. | |
Ports and Port Groups | |
| DtSensorContactListOutputPort * | myDetectedObjectListPort |
| Outputs: Output Port Name: detected-objects Output Port Description: The list of contacts detected by this sensor. | |
| DtObjectTypesListMultiInputPort * | myObjectsToDetectInputPort |
| Inputs: DtObjectTypesListMultiInputPort : object-types-to-detect Input Port Name: object-types-to-detect Input Port Description: List of contacts to be considered for target selection. | |
| DtInputPortGroup * | mySensorOffsetInputPortGroup |
| Input Port Group Name: sensor-offset Input Port Group Description: Allows an external controller to provide position and orientation of the sensor relative to the entity's position. | |
| DtOrientationInputPort * | myOrientationInputPort |
| Input Port Name: orientation Input Port Description: Specifies the orientation of the sensor relative to the entity on which it is mounted. | |
| DtVectorInputPort * | myPositionInputPort |
| Input Port Name: position Input Port Description: Specifies the position of the sensor in body coordinates relative to the entity which it is mounted on. | |
Private Member Functions | |
| DtObjectSensor () | |
| default constructor; not implemented | |
| DtObjectSensor (const DtObjectSensor &orig) | |
| copy constructor; not implemented | |
| const DtObjectSensor & | operator= (const DtObjectSensor &orig) |
| assignment operator; not implemented | |
DtObjectSensor is a base level sensor component.
End User Description: Manages a filtered list of detectable targets, as specified in the descriptor, and sets up infrastructure for specific sensor types to run their algorithms on the list. Manages sending of sensor data to the GUI though messages. Manages sensor geometry. Configuring a DtObjectSensor on an entity will cause it to detect all entities of types specified in the descriptor within the geometric region specified by the sensor geometry. No tests for terrain obstruction or sensor signatures will be done. For this functionality, use a DtSignatureObjectSensor.
Uses Descriptor Type: DtObjectSensorDescriptor.
| DtObjectSensor::DtObjectSensor | ( | ) | [private] |
default constructor; not implemented
| DtObjectSensor::DtObjectSensor | ( | const DtObjectSensor & | orig | ) | [private] |
copy constructor; not implemented
| DtObjectSensor::DtObjectSensor | ( | const DtString & | name, |
| DtVrfObject * | owner, | ||
| DtSimManager * | simManager, | ||
| DtComponentDescriptor * | desc = 0, |
||
| DtReaderWriterRegistry * | parentRegistry = 0 |
||
| ) |
(const DtString&,DtVrfObject*,DtSimManager*,
| name | Reader writer name of this component. |
| owner | The DtVrfObject that owns this component |
| simManager | The simulation manager (provides access to terrain, message interface, simulation clock). |
| desc | The component descriptor used to initialize this component. |
| parentRegistry | Pointer to the parent reader writer registry (the containing object that reads/writes this object). |
| virtual DtObjectSensor::~DtObjectSensor | ( | ) | [virtual] |
destructor
| const DtObjectSensor& DtObjectSensor::operator= | ( | const DtObjectSensor & | orig | ) | [private] |
assignment operator; not implemented
| virtual bool DtObjectSensor::init | ( | ) | [virtual] |
Calls createPSR(), createDetectableObjectList(), createAndInitSensorMonitor() and initSensorGeometry().
This must be called after construction and before the sensor is used on an entity.
Reimplemented from DtSimComponent.
Reimplemented in DtRadarObjectSensor, and DtSignatureObjectSensor.
| virtual DtString DtObjectSensor::type | ( | ) | const [virtual] |
Returns a string identifies the class type of component.
Type values are defined in compTypes.h. DtSimComponent creation functions are registered with the DtSimComponentFactory using the type values as the key.
Reimplemented from DtSimComponent.
Reimplemented in DtRadarObjectSensor, and DtSignatureObjectSensor.
| virtual void DtObjectSensor::tick | ( | ) | [virtual] |
Processes only if the simulation is not paused.
Calls attemptToActivate() on myDetectedObjectListPort. Calls clearObjectRangeCache(). Calls setupGeometryForDetection() Calls processObjects(). When processObjects() returns true, calls notifyTargetsChanged() on the DtObjectSensorModitor. Calls updateDetectedObjectListPort().
Reimplemented from DtSimComponent.
Reimplemented in DtSignatureObjectSensor, and DtRadarObjectSensor.
| virtual bool DtObjectSensor::tickWhileDestroyed | ( | ) | const [virtual] |
Reimplemented from DtSimComponent.
| virtual int DtObjectSensor::sensorType | ( | ) | const [virtual] |
Reimplemented in DtSignatureObjectSensor, and DtRadarObjectSensor.
| static DtSimComponent* DtObjectSensor::creator | ( | const DtString & | name, |
| DtVrfObject * | owner, | ||
| DtSimManager * | simManager, | ||
| DtComponentDescriptor * | desc = 0, |
||
| DtReaderWriterRegistry * | parentRegistry = 0 |
||
| ) | [static] |
(const DtString&,DtVrfObject*,DtSimManager*,
| name | Reader writer name of this component. |
| owner | The DtVrfObject that owns this component |
| simManager | The simulation manager (provides access to terrain, message interface, simulation clock). |
| desc | The component descriptor used to initialize this component. |
| parentRegistry | Pointer to the parent reader writer registry (the containing object that reads/writes this object). |
Reimplemented in DtSignatureObjectSensor, and DtRadarObjectSensor.
| virtual bool DtObjectSensor::createPortGroups | ( | ) | [protected, virtual] |
Creates and initializes port groups.
Reimplemented from DtSimComponent.
| virtual bool DtObjectSensor::createPorts | ( | ) | [protected, virtual] |
Creates the target list port.
Reimplemented from DtSimComponent.
| virtual DtObjectSensorPSR* DtObjectSensor::createPSR | ( | ) | [protected, virtual] |
Creates myProcessState data member, and adds it to our process state repository manager.
Passes in the name and type specified in the component descriptor (if they exist) to the DtVrfProcessStateRepository::createRepository factory method. If name and/or type is not specified, uses the appropriate default strings defined in procSRTypes.h.
| virtual const char* DtObjectSensor::defaultPSRType | ( | ) | const [protected, virtual] |
Reimplemented in DtRadarObjectSensor.
| virtual void DtObjectSensor::updateDetectableObjectsList | ( | ) | [protected, virtual] |
Sets up myDetectableObjectList as a list that contains all entity types/forces specified in both the descriptor and the myObjectsToDetectInputPort input port.
DtTargetSelectionController and DtSpotReportGeneratorController are examples of controllers that provide lists of types of objects to detect. Uses objectTypeForcePredicate() to create the predicate for each type/force specified.
| DtCompositePredicate DtObjectSensor::objectTypeForcePredicate | ( | const DtObjectType & | , |
| const DtNLengthIntegerVector & | forceTypes | ||
| ) | [protected] |
Specifies force types as s DtNLenghtIntegerVector.
| DtCompositePredicate DtObjectSensor::objectTypeForcePredicate | ( | const DtObjectType & | , |
| const std::list< DtU8 > & | forceTypes | ||
| ) | [protected] |
Specifies force types as a std::list.
| virtual bool DtObjectSensor::initSensorGeometry | ( | ) | [protected, virtual] |
Creates the geometry evaluator based on the sensor-geometry entry in the descriptor, and the sensor geometry evaluator factory.
| virtual void DtObjectSensor::setupGeometryForDetection | ( | ) | [protected, virtual] |
Sets up the current sensor geometry evaluator with the current position and orientation of the sensor.
Called once per detection cycle.
| virtual DtVector DtObjectSensor::localSensorPosition | ( | ) | const [protected, virtual] |
Reimplemented in DtSignatureObjectSensor.
| virtual DtTaitBryan DtObjectSensor::localSensorOrientation | ( | ) | const [protected, virtual] |
| virtual bool DtObjectSensor::processObjects | ( | ) | [protected, virtual] |
Checks detectability of each of the detectable objects.
This is done by calling continueDetectingObject() for all objects previously detected. For any that return false, they are removed from the list. For all objects that weren't previously detected, detectObject() is called. For any where the return value is true, they are added to the detected objects list in the PSR.
| virtual bool DtObjectSensor::detectObject | ( | DtVrfObject * | object, |
| DtRwSensorContactInfo * | contactInfo | ||
| ) | [protected, virtual] |
Reimplemented in DtSignatureObjectSensor, and DtRadarObjectSensor.
| virtual bool DtObjectSensor::continueDetectingObject | ( | DtVrfObject * | object, |
| DtRwSensorContactInfo * | contactInfo, | ||
| bool & | contactInfoModified | ||
| ) | [protected, virtual] |
Reimplemented in DtSignatureObjectSensor, and DtRadarObjectSensor.
| virtual bool DtObjectSensor::objectWithinSensorGeometry | ( | DtVrfObject * | object | ) | const [protected, virtual] |
| virtual double DtObjectSensor::rangeSquaredToObject | ( | const DtVrfObject * | object | ) | const [protected, virtual] |
| virtual double DtObjectSensor::rangeToObject | ( | const DtVrfObject * | object | ) | const [protected, virtual] |
| virtual void DtObjectSensor::clearObjectRangeCache | ( | ) | const [protected, virtual] |
Invalidates the current object range cache.
| virtual void DtObjectSensor::printTargets | ( | ) | const [protected, virtual] |
Prints the current target list to the console.
| virtual void DtObjectSensor::updateDetectedObjectListPort | ( | ) | [protected, virtual] |
Clears the list port, then adds all target infos from the previous target list in the PSR, and sends the data.
| virtual bool DtObjectSensor::createAndInitSensorMonitor | ( | ) | [protected, virtual] |
Creates a DtObjectSensorMonitor, and calls init() on it.
| virtual bool DtObjectSensor::objectInDetectableList | ( | DtVrfObject * | ) | const [protected, virtual] |
Returns true if the object is in the myDetectableObjectList.
| static void DtObjectSensor::hostilitiesChangedCallback | ( | DtU8 | force, |
| void * | usr | ||
| ) | [static, protected] |
If who were hostile towards has changed we will need to update our myDetectableObjectList.
| virtual void DtObjectSensor::processHostilitiesChanged | ( | DtU8 | force | ) | [protected, virtual] |
Outputs: Output Port Name: detected-objects
Output Port Description: The list of contacts detected by this sensor.
Output Port Range:
Output Port Default Value:
Output Group Parent:
Inputs: DtObjectTypesListMultiInputPort : object-types-to-detect Input Port Name: object-types-to-detect
Input Port Description: List of contacts to be considered for target selection.
As many contact lists as desired can be connected and work simultaneously.
Input Port Range:
Input Port Default Value:
Input Group Parent: object-types-to-detect
Input Port Group Name: sensor-offset
Input Port Group Description: Allows an external controller to provide position and orientation of the sensor relative to the entity's position.
Input Port Name: orientation
Input Port Description: Specifies the orientation of the sensor relative to the entity on which it is mounted.
Input Port Range:
Input Port Default Value: 0,0,0
Input Group Parent: sensor-offset
DtVectorInputPort* DtObjectSensor::myPositionInputPort [protected] |
Input Port Name: position
Input Port Description: Specifies the position of the sensor in body coordinates relative to the entity which it is mounted on.
If this port is not connected localSensorPosition() simply returns the local position of the entity.
Input Port Range:
Input Port Default Value: 0,0,0
Input Group Parent: sensor-offset
const DtObjectSensorDescriptor* DtObjectSensor::myObjectSensorDescriptor [protected] |
DtObjectSensorPSR* DtObjectSensor::myProcessState [protected] |
Container for state data associated with this component.
This state is saved and restored as part of a scenario (or checkpoint).
DtObjectSensorMonitor* DtObjectSensor::myMonitor [protected] |
Sends out sensor contact information to the GUI if the GUI or other application has requested the information.
const DtVrfObject* DtObjectSensor::myMutableObjectCached [mutable, protected] |
The VrfObject whose range is currently cached.
bool DtObjectSensor::myMutableObjectRangeCalculated [mutable, protected] |
Keeps track of whether the range has been calculated for the current cached object.
double DtObjectSensor::myMutableObjectRangeCache [mutable, protected] |
The current range to the cached object, if calculated.
bool DtObjectSensor::myMutableObjectRangeSquaredCalculated [mutable, protected] |
Keeps track of whether the range squared has been calculated for the current cached object.
double DtObjectSensor::myMutableObjectRangeSquaredCache [mutable, protected] |
The current range squared to the cached object, if calculated.