VR-Forces 4.1 Class Documentation
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
DtMissileDistractionController Class Reference

DtMissileDistractionController is a component that looks for objects that could potentially distract the missile. More...

Inheritance diagram for DtMissileDistractionController:
Inheritance graph
[legend]

Public Member Functions

 DtMissileDistractionController (const DtString &name, DtVrfObject *owner, DtSimManager *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 (const DtString&,DtVrfObject*,DtSimManager*,
virtual ~DtMissileDistractionController ()
 destructor
virtual bool init ()
 Calls createPSR(), and initTargetConeGeometry().
virtual DtString type () const
 Returns a string identifies the class type of component.
virtual void tick ()
 Processes only if the simulation is not paused.
- Public Member Functions inherited from DtControllerComponent
 DtControllerComponent (const DtString &name, DtVrfObject *owner, DtSimManager *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 (const DtString& name,
virtual ~DtControllerComponent ()
 destructor
virtual DtSimBaseRadioradio ()
 The radio this component is listening to.
virtual void taskNotify (const DtSimTask &task)
 This is used by the entity to notify all controllers that a new task has been received.
virtual void clearTask ()
 Called when you want to clear out this component's task state.
- Public Member Functions inherited from DtSimComponent
 DtSimComponent (const DtString &name, DtVrfObject *owner, DtSimManager *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
virtual ~DtSimComponent ()
 destructor
void setParentSystem (DtComponentSystem *system)
 Sets the parent system of this component.
virtual bool postAddComponentsInit ()
 Called after all components have been created, initialized and added to the component manager.
virtual void preFirstTickInit ()
 This function can be overridden to initialize a component before it is ticked for the first time.
virtual void postTick ()
 This function is called immediately after tick() is called.
virtual void timedTick ()
 This version of tick checks to see if the time to tick has arrived.
virtual void setMinTickPeriod (double minTickPeriod)
 specifies a minimum tick period (which can also be thought of as
virtual double minTickPeriod () const
 access the minimum tick period
virtual void setMinTickPeriodVariance (double minTickPeriodVariance)
 set the variance in the minimum tick time
virtual double minTickPeriodVariance () const
 access the variance in the minimum tick period
virtual void setNextTickTime (double nextTickTime)
 The next tick time is normally calculated internally.
virtual double nextTickTime () const
 access the next tick time
virtual double calculateNextTickTime () const
 The next tick time is equal to mySimManager->exerciseClock()-> approximateElapsedRealTime() + myMinTickPeriod + a random # between -myMinTickPeriodVariance/2.
virtual double calculateFirstTickTime () const
 Returns the first time value that the component should tick at.
virtual void setEntity (DtVrfObject *entity)
 The entity's state repository is the place that actuator components make updates and other components look to see our current state.
virtual DtSimComponentnextComponent ()
 List management functions.
virtual DtSimComponentprevComponent ()
virtual void setListItem (DtListItem *item)
 Used by DtComponentList.
virtual DtListItem * listItem ()
virtual void putData (FILE *fp, int indentLevel=0)
 putData writes our type, which is provided by the virtual type accessor of the deriving class.
virtual DtlObjPtr getData (DtlObjPtr args, const DtFilename &searchPath, const DtVariableBindingsList &variableBindings)
 getData is just used to get us past the type in the data stream, since it's not actual stored.
virtual void addInputPort (DtInputPort *port)
 Adds this input port to the components input port list so that other components can look it up and attach to it.
virtual void removeInputPort (DtInputPort *port)
virtual DtInputPortlookupInputPort (const DtString &portName)
 Returns a pointer to the input port registered on this component with the specified name.
virtual DtList inputPortList () const
 Returns the list of DtInputPorts registered on this component.
virtual void addOutputPort (DtOutputPort *port)
 Adds this output port to the components output port list so that other components can look it up and attach to it.
virtual void removeOutputPort (DtOutputPort *port)
virtual DtOutputPortlookupOutputPort (const DtString &portName)
 Returns a pointer to the output port registered on this component with the specified name.
virtual DtList outputPortList () const
 Returns the list of DtOutputPorts registered on this component.
virtual void addInputPortGroup (DtInputPortGroup *group)
 Adds this input port to the components input port list so that other components can look it up and attach to it.
virtual void removeInputPortGroup (DtInputPortGroup *group)
virtual DtInputPortGrouplookupInputPortGroup (const DtString &groupName)
 Returns a pointer the input port group registered on this component with the specified name.
virtual DtList inputPortGroupList () const
 Returns the list of DtInputPortGroups registered on this component.
virtual void addOutputPortGroup (DtOutputPortGroup *group)
 Adds this output port group to the components output port group list so that other components can look it up and attach to it.
virtual void removeOutputPortGroup (DtOutputPortGroup *group)
virtual DtOutputPortGrouplookupOutputPortGroup (const DtString &groupName)
 Returns a pointer the output port group registered on this component with the specified name.
virtual DtList outputPortGroupList () const
 Returns the list of DtOutputPortGroups registered on this component.
virtual int priority () const
 Return the current connection priority for this component.
virtual void setPriority (int priority)
 Sets a new connection priority for this component, and changes all current outgoing connections from this component to the new value.
double dT () const
 This is the delta-t for this component, which may or may not be the same as the exerciseClock dT.
virtual void setDT (double deltaT)
 Note that while dT is calculated internally, this makes it possible to 'lie' to the component about dT if necessary.
virtual void setComponentDescriptor (DtComponentDescriptor *componentDescriptor)
 The component descriptor specified in the order of battle file or parameter file that was used to create this component.
virtual const
DtComponentDescriptor
componentDescriptor () const
virtual bool tickWhileDestroyed () const
 If the component returns true here, it will be ticked regardless of the destroyed state of the host entity.
DtVrfProcessStateRepositoryManagerpsrManager ()
virtual DtString componentFullName () const
virtual void enable ()
 Is this component enabled or not.
virtual void disable ()
 Is this component enabled or not.
virtual bool isEnabled ()
 Is this component enabled or not.
virtual void setIsEnabled (bool yesNo)
 Is this component enabled or not.
virtual DtOutputStream & objectConsoleDebug () const
virtual DtOutputStream & objectConsoleVerbose () const
virtual DtOutputStream & objectConsoleInfo () const
virtual DtOutputStream & objectConsoleWarn () const
virtual DtOutputStream & objectConsoleError () const
virtual DtSimResourceManagerresourceManager ()
virtual const
DtSimResourceManager
resourceManager () const
- Public Member Functions inherited from DtReaderWriter
 DtReaderWriter ()
 default constructor
 DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 real constructor Setting the readonly flag prevents object from writing itself to the stream.
 DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 copy constructor
 DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
const DtReaderWriteroperator= (const DtReaderWriter &orig)
 assignment operator
virtual ~DtReaderWriter ()
 destructor
virtual void putSelf (FILE *fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 Top level call to write itself to file.
virtual void getSelf (DtlObjPtr args, const DtFilename &searchPath=DtFilename::nullFilename(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 Top level to read itself from an input stream.
virtual void writeSelf (FILE *fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 Called from putSelf, calls myRegistry.putSelf which in turn calls putSelf on each reader/writer in the registry.
virtual DtSymbolString name () const
 Accessor for name of this readable/writable object.
virtual void addAlias (const DtSymbolString &alias)
 Add an alias as an alternative name for this object.
virtual bool hasAlias (const DtSymbolString &alias)
virtual const aliasContaineraliases () const
virtual void setReadonly (bool flag)
 Set read-only flag.
virtual bool isReadonly () const
virtual bool variableIsBound () const
virtual void unbindVariable ()
 Sets the myVariableIsBound flag to false.
virtual void setName (const DtString &)
 Set the name of the object.
virtual const char * readerWriterType () const
 Used to supply a string type that this reader writer type is.
virtual DtString prettyPrint () const
 Routine to return a human readable form of the reader/writer variable.
virtual void bindVariables (DtVariableBindingsList variableBindings)
 Runs a variable binding pass on this reader writer and any of its children.
virtual std::list
< DtVariableNameType
unboundVariables () const
bool invalid () const
virtual bool hasChild (const DtReaderWriter *p) const
 Returns true if this variable has a child p in it's chain.
virtual void setValueSpecified (bool specified, bool recurse=false)
 The specified flags are used for optional values.
virtual bool valueSpecified () const
 The specified flags are used for optional values.
virtual bool isVariableReference () const
 Specifies whether or not this reader writer is really a variable that is specified elsewhere.
virtual void setIsVariableReference (bool value)
virtual DtSymbolString variableName () const
 The variable name, if this object is a variable reference.
virtual void setVariableName (const DtSymbolString variableName)
 The variable name, if this object is a variable reference.
const DtReaderWriterRegistryregistry () const
 Collection of child DtReaderWriter nodes owned by this object.
DtReaderWriterRegistryregistry ()
 Collection of child DtReaderWriter nodes owned by this object.

Static Public Member Functions

static DtSimComponentcreator (const DtString &name, DtVrfObject *owner, DtSimManager *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 (const DtString&,DtVrfObject*,DtSimManager*,

Protected Member Functions

virtual DtMissileDistractionPSRcreatePSR ()
 Creates myProcessState data member, and adds it to our process state repository manager.
virtual const char * defaultPSRType () const
virtual bool initTargetConeGeometry ()
 Creates the geometry evaluator based on the target-cone-geometry entry in the descriptor, and the geometry evaluator factory.
virtual void setupGeometryForDetection ()
 Sets up the current target cone geometry evaluator with the current position and orientation of the missile.
virtual void setUpDistractingObjectsList ()
 Reads in the countermeasure types we are looking for from the descriptor and creates a search predicate that is passed to the vrfobjectmanager.
virtual DtVector localTargetConePosition () const
 Uses the front of the missile as the apex for the target cone Frustrum will start from this point and extend out from the missile.
virtual bool processObjects ()
 Checks detectability of each of the detectable objects.
virtual bool detectObject (DtVrfObject *object, DtCounterMeasureDistractionEntry *entry)
virtual bool objectWithinTargetConeGeometry (DtVrfObject *object) const
virtual bool isMissileDistracted (DtCounterMeasureDistractionEntry *entry) const
- Protected Member Functions inherited from DtControllerComponent
 DtControllerComponent ()
 default constructor
 DtControllerComponent (const DtControllerComponent &orig)
 copy constructor
const DtControllerComponentoperator= (const DtControllerComponent &orig)
 assignment operator
virtual void setRadio (DtSimBaseRadio *radio)
- Protected Member Functions inherited from DtSimComponent
bool testInvariant () const
virtual bool createPortGroups ()
 Called by init.
virtual bool createPorts ()
 Called by init.
virtual DtPhysicalWorldphysicalWorld ()
 Gets the physical world that this component's entity exists in.
virtual const DtPhysicalWorldphysicalWorld () const
virtual DtAttachedTerrainterrainAttachedTo ()
 Gets the terrain that this component's entity is attached to, if any.
virtual const DtAttachedTerrainterrainAttachedTo () const
virtual DtVrfObjectentity ()
 Gets the entity.
virtual const DtVrfObjectentity () const
virtual DtSimManagersimManager ()
 Gets the sim manager.
virtual const DtSimManagersimManager () const
virtual const Coordinate_SystemcoordinateSystem () const
 Gets the coordinate system, as it should always exist if the physical world is in a valid state!
virtual Coordinate_SystemcoordinateSystem ()
virtual
DtVrfObjectStateRepository
localStateRepository ()
 Gets the local state repository.
virtual const
DtVrfObjectStateRepository
localStateRepository () const
- Protected Member Functions inherited from DtReaderWriter
virtual void bindToRwAsVariable (const DtReaderWriter *rw)
 Copies values from the specified DtReaderWriter.
virtual void bindLocalVariables (const DtVariableBindingsList &variableBindings)
 Checks to see if this RW object is a variable reference that can be bound using the provided bindings.

Protected Attributes

DtManagedObjectListConstPtr myDistractingObjectList
const
DtMissileDistractionControllerDescriptor
myMissileDistractionControllerDescriptor
DtMissileDistractionPSRmyProcessState
 Container for state data associated with this component.
DtMissileStateRepositorymyLocalSR
DtSpatialFilterEvaluatormyTargetConeGeometryEvaluator
DtVector myTargetConeApex
- Protected Attributes inherited from DtControllerComponent
DtSimBaseRadiomyRadio
 Controller components can send messages.
- Protected Attributes inherited from DtSimComponent
DtVrfObjectmyEntity
DtVrfObjectStateRepositorymyLocalStateRepository
DtSimManagermySimManager
DtComponentSystemmySystem
 Pointer to the DtComponentSystem that this component belongs.
DtListItem * myListItem
DtInputPortMap myInputPortList
DtOutputPortMap myOutputPortList
DtInputPortGroupMap myInputPortGroupList
DtOutputPortGroupMap myOutputPortGroupList
int myPriority
double myMinTickPeriod
double myMinTickPeriodVariance
double myNextTickTime
double myLastTickSimTime
double myDT
bool myIsEnabled
 Indicates whether this component should be enabled for ticking or not.
bool myFirstTick
 Initialized to true in the constructor, set to false by the first call to postTick.
const DtComponentDescriptormyComponentDescriptor
- Protected Attributes inherited from DtReaderWriter
const DtSymbolString myName
DtReaderWriterRegistry myRegistry
bool myValueSpecified
bool myReadOnlyFlag
bool myIsVariableReference
DtSymbolString myVariableName
bool myVariableIsBound
aliasContainer myAliases
 Container for the aliases which represent alternative names for the object.
bool myInvalid
 Set to true if there is a problem reading this item.

Private Member Functions

 DtMissileDistractionController ()
 default constructor; not implemented
 DtMissileDistractionController (const DtMissileDistractionController &orig)
 copy constructor; not implemented
const
DtMissileDistractionController
operator= (const DtMissileDistractionController &orig)
 assignment operator; not implemented

Additional Inherited Members

- Public Types inherited from DtReaderWriter
typedef std::vector
< DtSymbolString
aliasContainer
typedef std::vector
< DtSymbolString >::iterator 
aliasIter
typedef std::vector
< DtSymbolString >
::const_iterator 
aliasConstIter
typedef std::pair
< DtSymbolString, DtString
DtVariableNameType
- Protected Types inherited from DtSimComponent
typedef std::map< DtString,
DtInputPort * > 
DtInputPortMap
typedef std::map< DtString,
DtOutputPort * > 
DtOutputPortMap
typedef std::map< DtString,
DtInputPortGroup * > 
DtInputPortGroupMap
typedef std::map< DtString,
DtOutputPortGroup * > 
DtOutputPortGroupMap
- Static Protected Attributes inherited from DtSimComponent
static DtSimComponentFactorymyFactory

Detailed Description

DtMissileDistractionController is a component that looks for objects that could potentially distract the missile.

End User Description: Manages a filtered list of detectable countermeasures. Only looks for the types of counter measures specified in the descriptor. Checks if any are in the target cone of the missile, i.e. close enough to the target to confuse the missile. This target cone is configured in the descriptor and should define the cone within which the missile can redirect itself and still hit the new target. If within this cone will check if the signature of the counter measure is strong enough to confuse, and finally it will do a probability check to determine if in fact the missile will be confused and if so will reset the missile's target. Once the missile has changed targets it will stop looking since presumably the entity that launched the countermeasure has performed its evasive manuevers. This is configurable in the descriptor however. Default is to stop looking once fooled.

Uses Descriptor Type: DtMissileDistractionControllerDescriptor.

Constructor & Destructor Documentation

DtMissileDistractionController::DtMissileDistractionController ( )
private

default constructor; not implemented

DtMissileDistractionController::DtMissileDistractionController ( const DtMissileDistractionController orig)
private

copy constructor; not implemented

DtMissileDistractionController::DtMissileDistractionController ( const DtString name,
DtVrfObject owner,
DtSimManager simManager,
DtComponentDescriptor desc = 0,
DtReaderWriterRegistry parentRegistry = 0 
)

(const DtString&,DtVrfObject*,DtSimManager*,

Parameters
nameReader writer name of this component.
ownerThe DtVrfObject that owns this component
simManagerThe simulation manager (provides access to terrain, message interface, simulation clock).
descThe component descriptor used to initialize this component.
parentRegistryPointer to the parent reader writer registry (the containing object that reads/writes this object).
(const DtString&,DtVrfObject*,DtSimManager*, DtComponentDescriptor*,DtReaderWriterRegistry* parentRegistry)

virtual DtMissileDistractionController::~DtMissileDistractionController ( )
virtual

destructor

Member Function Documentation

const DtMissileDistractionController& DtMissileDistractionController::operator= ( const DtMissileDistractionController orig)
private

assignment operator; not implemented

virtual bool DtMissileDistractionController::init ( )
virtual

Calls createPSR(), and initTargetConeGeometry().

This must be called after construction and before the controller is used on an entity.

Reimplemented from DtControllerComponent.

virtual DtString DtMissileDistractionController::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.

Returns
DtMissileDistractionControllerType

Reimplemented from DtControllerComponent.

virtual void DtMissileDistractionController::tick ( )
virtual

Processes only if the simulation is not paused.

Calls clearObjectRangeCache(). Calls setupGeometryForDetection() Calls processObjects().

Reimplemented from DtSimComponent.

static DtSimComponent* DtMissileDistractionController::creator ( const DtString name,
DtVrfObject owner,
DtSimManager simManager,
DtComponentDescriptor desc = 0,
DtReaderWriterRegistry parentRegistry = 0 
)
static

(const DtString&,DtVrfObject*,DtSimManager*,

Parameters
nameReader writer name of this component.
ownerThe DtVrfObject that owns this component
simManagerThe simulation manager (provides access to terrain, message interface, simulation clock).
descThe component descriptor used to initialize this component.
parentRegistryPointer to the parent reader writer registry (the containing object that reads/writes this object).
(const DtString&,DtVrfObject*,DtSimManager*, DtComponentDescriptor*,DtReaderWriterRegistry* parentRegistry)

Returns
New instance of this class.
virtual DtMissileDistractionPSR* DtMissileDistractionController::createPSR ( )
protectedvirtual

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* DtMissileDistractionController::defaultPSRType ( ) const
protectedvirtual
Returns
DtVrfMissileDistractionControllerProcessStateRepositoryType. Derived classes may override this to return their own default PSR type, if a different PSR type is desired.
virtual bool DtMissileDistractionController::initTargetConeGeometry ( )
protectedvirtual

Creates the geometry evaluator based on the target-cone-geometry entry in the descriptor, and the geometry evaluator factory.

Can use range, frustrum or both

virtual void DtMissileDistractionController::setupGeometryForDetection ( )
protectedvirtual

Sets up the current target cone geometry evaluator with the current position and orientation of the missile.

Called once per detection cycle.

virtual void DtMissileDistractionController::setUpDistractingObjectsList ( )
protectedvirtual

Reads in the countermeasure types we are looking for from the descriptor and creates a search predicate that is passed to the vrfobjectmanager.

It will then return a list of all the objects that match our predicate that exist in the simulation.

virtual DtVector DtMissileDistractionController::localTargetConePosition ( ) const
protectedvirtual

Uses the front of the missile as the apex for the target cone Frustrum will start from this point and extend out from the missile.

virtual bool DtMissileDistractionController::processObjects ( )
protectedvirtual

Checks detectability of each of the detectable objects.

First checks if this object has already been check to see if it could distract the missile. The process state keeps a list of all the objects that have already been checked. If the object is on the list there's nothing more to be done. We move on to the next object. If it is not on the list, call detectObject. If the object is detected it will be then be checked to see if the object will distract the missile. If so we reset our missile's target to the object and set the process state's amDistracted parameter. Once the missile is distracted we don't need to keep checking. After the distraction check is made we add the object to the process state's verified checked list.

virtual bool DtMissileDistractionController::detectObject ( DtVrfObject object,
DtCounterMeasureDistractionEntry entry 
)
protectedvirtual
Returns
true if the specified object should be detected by the sensor, when it has not been detected on the previous detection cycle. Deriving classes should override this to implement their own detection constraints. This implementation returns true if objectWithinSensorGeometry() returns true, and the entity meets the detectDestroyedObjects criteria.
virtual bool DtMissileDistractionController::objectWithinTargetConeGeometry ( DtVrfObject object) const
protectedvirtual
Returns
true only if the specified object is within the defined geometry of the sensor. Uses the sensor geometry evaluator.
virtual bool DtMissileDistractionController::isMissileDistracted ( DtCounterMeasureDistractionEntry entry) const
protectedvirtual

Member Data Documentation

DtManagedObjectListConstPtr DtMissileDistractionController::myDistractingObjectList
protected
const DtMissileDistractionControllerDescriptor* DtMissileDistractionController::myMissileDistractionControllerDescriptor
protected
DtMissileDistractionPSR* DtMissileDistractionController::myProcessState
protected

Container for state data associated with this component.

This state is saved and restored as part of a scenario (or checkpoint).

DtMissileStateRepository* DtMissileDistractionController::myLocalSR
protected
DtSpatialFilterEvaluator* DtMissileDistractionController::myTargetConeGeometryEvaluator
protected
DtVector DtMissileDistractionController::myTargetConeApex
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)