VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
DtWarheadDetonationActuator Class Reference

DtWarheadDetonationActuator is an actuator that simulates the detonation for any type of warhead that may detonate upon impact with another entity, the ground, or the water.

End User Description: It monitors for collisions between the entity on which it is mounted and any of the applicable surfaces (ground, water, other entities). When a collision is detected, it will create a detonation. This actuator can be associated with any vrfObject that can detonate. For example, this actuator is used for representing IED–improvised explosive devices.

Parameters can be supplied to the warhead through the setWarheadInfo set data request, including Attacker ID, Event ID, Warhead and Fuze type. If an attacker ID is specified, collisions with the attacker entity will not be reported as entity collision.

Warhead will check for a firepower kill of its parent entity when it collides with something. If it has been firePowerKilled, no detonation is created.

Uses Descriptor Type: DtWarheadDetonationActuatorDescriptor

Inheritance diagram for DtWarheadDetonationActuator:
Inheritance graph
[legend]

Public Member Functions

 DtWarheadDetonationActuator (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
virtual ~DtWarheadDetonationActuator ()
 
virtual bool init ()
 
virtual bool registerRadioMessageCallbacks ()
 
virtual bool createPSR ()
 
virtual void setComponentDescriptor (DtComponentDescriptor *componentDescriptor)
 
virtual const chartype () const
 
virtual void tick ()
 
virtual void processWarheadInfoCallback (DtSimMessage *msg)
 
virtual void processSetLocationCallback (DtSimMessage *msg)
 
virtual void processLaserDesignatorRemoved (const makVrf::DtFrameStateInterface *designator)
 
- Public Member Functions inherited from DtActuatorComponent
virtual ~DtActuatorComponent ()
 
virtual DtSimRadioradio ()
 
virtual bool tickWhileDestroyed () const
 
- Public Member Functions inherited from DtSimComponent
 DtSimComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
virtual ~DtSimComponent ()
 
virtual void setParentSystem (DtComponentSystem *system)
 
DtComponentSystemparentSystem () const
 
virtual bool postAddComponentsInit ()
 
virtual void registerAttributeFunctions ()
 
virtual void preFirstTickInit ()
 
virtual void postTick ()
 
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 DtSimComponentnextComponent ()
 
virtual DtSimComponentprevComponent ()
 
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 DtInputPortlookupInputPort (const DtString &portName)
 
virtual DtList inputPortList () const
 
virtual void addOutputPort (DtOutputPort *port)
 
virtual void removeOutputPort (DtOutputPort *port)
 
virtual DtOutputPortlookupOutputPort (const DtString &portName)
 
virtual DtList outputPortList () const
 
virtual void addInputPortGroup (DtInputPortGroup *group)
 
virtual void removeInputPortGroup (DtInputPortGroup *group)
 
virtual DtInputPortGrouplookupInputPortGroup (const DtString &groupName)
 
virtual DtList inputPortGroupList () const
 
virtual void addOutputPortGroup (DtOutputPortGroup *group)
 
virtual void removeOutputPortGroup (DtOutputPortGroup *group)
 
virtual DtOutputPortGrouplookupOutputPortGroup (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 const
DtComponentDescriptor
componentDescriptor () const
 
DtVrfProcessStateRepositoryManagerpsrManager ()
 
virtual const DtSymbolStringcomponentFullName () const
 
DtPhysicalWorldphysicalWorld ()
 
const DtPhysicalWorldphysicalWorld () const
 
const DtAttachedTerrainterrainAttachedTo () const
 
DtLocalObjectentity ()
 
const DtLocalObjectentity () const
 
DtSimulationServicessimulationServices ()
 
const DtSimulationServicessimulationServices () const
 
const Coordinate_SystemcoordinateSystem () const
 
virtual bool taskVisualizationsActive () const
 
virtual bool taskVisualizationsEnabled () const
 
virtual void onRestore ()
 
makVrf::DtTaskVisualizationMaptaskVisualizations ()
 
virtual void enable ()
 
virtual void disable ()
 
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 DtSimResourceManagerresourceManager ()
 
virtual const
DtSimResourceManager
resourceManager () const
 
VRF4API_METHOD const
DtSimulationServices
simManager () const
 
- Public Member Functions inherited from DtReaderWriter
 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 DtReaderWriteroperator= (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 aliasContaineraliases () 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 charreaderWriterType () const
 
virtual const charxmlType () 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 DtReaderWriterdefaultRWValue () const
 
virtual DtReaderWriterdefaultRWValue ()
 
virtual void setDefaultRWValue (DtReaderWriter *)
 
virtual bool checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 
const DtReaderWriterRegistryregistry () const
 
DtReaderWriterRegistryregistry ()
 
virtual DtPropertyInterfaceproperty ()
 
virtual const DtPropertyInterfaceproperty () const
 
virtual DtString toXml () const
 
virtual DtRwVariableBindingsgenerateVariableBindings () 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)
 

Static Public Member Functions

static void setWarheadInfoCallback (DtSimMessage *msg, void *usr)
 
static void setLocationCallback (DtSimMessage *msg, void *usrData)
 
static DtSimComponentcreator (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
- Static Public Member Functions inherited from DtSimComponent
static DtSimComponentFactoryfactory ()
 
static void setFactory (DtSimComponentFactory *factory)
 
static DtSimComponentcreateComponent (const DtString &name, const DtString &type, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentSystem *parentSystem, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
static void addSimComponentCreatorFcn (const DtString &type, DtSimComponentCreatorFcn fcn)
 
static VRF4API_METHOD
DtSimComponent
MarkThreadSafe (DtSimComponent *comp)
 
- Static Public Member Functions inherited from DtReaderWriter
static void putIndent (std::string &fp, int indentLevel)
 
static const
DtVariableBindingsList
nullVariableReference ()
 
static void setPostGetSelfCallback (DtGetSelfCallbackFcn fcn, void *usrData)
 
static void setPrePutSelfCallback (DtPutSelfCallbackFcn fcn, void *usrData)
 
static void setPutIndent (bool)
 
static bool putIndent ()
 
static const chartheXmlType ()
 
static const DtFilename & appPath ()
 
static void setFactoryCreatorFunction (DtReaderWriterFactoryCreatorFcn fcn)
 
static void createReaderWriterFactory ()
 
static void cleanupFactory ()
 
static DtReaderWriterFactoryfactory ()
 
static void setOutputStream (DtOutputStream *stream)
 
static DtOutputStream & outputStream ()
 
static DtReaderWritercreateFromXmlFile (const DtFilename &, bool createAsProperty=false)
 
static DtReaderWritercreateFromXml (const DtString &, bool createAsProperty=false)
 
static DtReaderWritercreateFromEnvironment (DtEnvironmentSP, bool createAsProperty=false)
 
static DtString getAttribute (DtEnvironmentSP env, const DtString &name, DtEnvValueSP root)
 

Protected Member Functions

virtual bool createPorts ()
 
virtual bool checkAlive ()
 
virtual bool checkTrigger ()
 
virtual bool checkArmed ()
 
virtual bool checkProximityDetonate (DtVector &detonationLocation)
 
virtual bool checkTargetMiss ()
 
virtual void checkMissileDetonation ()
 
virtual const DtSimObjectdetectCollision (double &distToImpactSqrd, DtVector &detonLocationOut)
 
virtual bool preventCollisionsWithMatchingTypes ()
 
virtual bool checkEntityForCollision (const DtSimObject *collidee, const DtVector &missilePath, const DtVector &missileBoxCenter, DtVector &detonLocationOut, double &distToImpactSqrd)
 
virtual bool checkForGroundImpact (double &distToImpactSqrd, DtVector &impactPoint, DtDetonationResult &result, bool &dataAvailable)
 
virtual void sendDetonation (const DtSimObject *impactedEntity, const DtVector &detonLocation)
 
virtual void sendDetonation (DtDetonationResult result, const DtVector &collisionPt)
 
virtual void destroyAndRemoveEntity ()
 
bool detonationInAir (const DtVector &localPosition) const
 
- Protected Member Functions inherited from DtActuatorComponent
 DtActuatorComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
virtual void setRadio (DtSimRadio *radio)
 
 DtActuatorComponent ()
 
- Protected Member Functions inherited from DtSimComponent
virtual double computeCurrentTime ()
 
bool testInvariant () const
 
virtual bool createPortGroups ()
 
DtVrfProcessStateRepositorycreateComponentPsr (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
 
DtVrfObjectStateRepositorylocalStateRepository ()
 
const DtVrfObjectStateRepositorylocalStateRepository () 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 ()
 
- Protected Member Functions inherited from DtReaderWriter
virtual void bindToRwAsVariable (const DtReaderWriter *rw)
 

Protected Attributes

DtBooleanInputPortmyTriggerInputPort
 
DtBooleanInputPortmyArmedInputPort
 
DtVrfObjectStateRepositorymyStateRep
 
Dt3dBoundingVolume * myCollisionBV
 
DtVector myLastPosition
 
bool myStartPositionInited
 
DtWarheadDetonationActuatorPSRmyProcessState
 
DtWarheadDetonationActuatorDescriptormyWarheadDescriptor
 
DtString myEventId
 
DtSimObjectReference myTargetObject
 
const
makVrf::DtLaserDesignatorStateComponent
myLaserDesignator
 
boost::signals2::scoped_connection myLaserDesignatorRemovedConnection
 
bool myNeedToDisplayTargetNotFoundWarning
 
bool myAmMissile
 
bool myHavePrintedTerrainWarning
 
DtManagedObjectListConstPtr myPlatformsList
 
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
 
bool mySetDestroyed
 
bool myRecievedSetLocationMessage
 
- Protected Attributes inherited from DtActuatorComponent
DtSimRadiomyRadio
 
- Protected Attributes inherited from DtSimComponent
DtLocalObjectmyEntity
 
DtComponentSystemmySystem
 
DtListItem * myListItem
 
DtInputPortMap myInputPortList
 
DtOutputPortMap myOutputPortList
 
DtInputPortGroupMap myInputPortGroupList
 
DtOutputPortGroupMap myOutputPortGroupList
 
int myPriority
 
double myMinTickPeriod
 
double myMinTickPeriodVariance
 
double myNextTickTime
 
double myLastTickSimTime
 
double myDT
 
bool myIsEnabled
 
bool myFirstTick
 
const DtComponentDescriptormyComponentDescriptor
 
std::list
< DtVrfProcessStateRepository * > 
myComponentPsrs
 
bool myTickEveryFrame
 
makVrf::DtTaskVisualizationMap myTaskVisualizations
 
double myNextTaskVisTickTime
 
DtSymbolString myFullComponentName
 
DtSimulationServicesmySimServices
 
DtPredicateCallbackManager myPredicateCallbackManager
 
- Protected Attributes inherited from DtReaderWriter
const DtSymbolString myName
 
DtReaderWriterRegistry myRegistry
 
DtReaderWriterRegistrymyParentRegistry
 
bool myValueSpecified
 
bool myReadOnlyFlag
 
bool myIsVariableReference
 
DtSymbolString myVariableName
 
bool myVariableIsBound
 
DtReaderWritermyDefaultValue
 
aliasContainer myAliases
 
bool myInvalid
 
bool myChangedFlag
 

Private Member Functions

 DtWarheadDetonationActuator ()
 
 DtWarheadDetonationActuator (const DtWarheadDetonationActuator &orig)
 
const DtWarheadDetonationActuatoroperator= (const DtWarheadDetonationActuator &orig)
 
virtual void processObjectAboutToBeRemoved (const DtLocalObject *object)
 
static void objectAboutToBeRemovedCallback (const DtLocalObject *object, void *usr)
 

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::vector< DtFilename > SearchPaths
 
typedef std::pair
< DtSymbolString, DtString
DtVariableNameType
 
typedef DtReaderWriterFactory *(* DtReaderWriterFactoryCreatorFcn )()
 
- 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
 
- Static Protected Attributes inherited from DtReaderWriter
static DtString theUnspecifiedValue
 
static DtGetSelfCallbackInfo thePostGetSelfCallback
 
static DtPutSelfCallbackInfo thePrePutSelfCallback
 
static const DtVariableBindingsList theEmptyVariableBindingsList
 
static bool theCreatorFcnSet
 
static DtReaderWriterFactorytheFactory
 
static
DtReaderWriterFactoryCreatorFcn 
theFactoryCreatorFcn
 
static bool thePutIndent
 
static DtOutputStream * theOutputStream
 

Constructor & Destructor Documentation

DtWarheadDetonationActuator::DtWarheadDetonationActuator ( const DtString name,
DtLocalObject owner,
DtSimulationServices simManager,
DtComponentDescriptor desc = 0,
DtReaderWriterRegistry parentRegistry = 0 
)

Parameters
nameReader writer name of this component.
ownerThe DtLocalObject 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).
virtual DtWarheadDetonationActuator::~DtWarheadDetonationActuator ( )
virtual

destructor

DtWarheadDetonationActuator::DtWarheadDetonationActuator ( )
private

Default constructor; should not be called. Here because the compiler will generate an unprotected one otherwise.

DtWarheadDetonationActuator::DtWarheadDetonationActuator ( const DtWarheadDetonationActuator orig)
private

copy constructor; shallow copy - timers not copied

Member Function Documentation

virtual bool DtWarheadDetonationActuator::init ( )
virtual

Overridden to cache a pointer to the entity's radio in this class.

Reimplemented from DtActuatorComponent.

Reimplemented in DtSpawnObjectWarheadActuator.

virtual bool DtWarheadDetonationActuator::registerRadioMessageCallbacks ( )
virtual

Registers for DtSetWarheadInfo messages.

virtual bool DtWarheadDetonationActuator::createPSR ( )
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 void DtWarheadDetonationActuator::setComponentDescriptor ( DtComponentDescriptor componentDescriptor)
virtual

Overridden to get the DtWarheadDetonationActuatorDescriptor.

Reimplemented from DtSimComponent.

virtual const char* DtWarheadDetonationActuator::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. Warning: this function should always return the same pointer and it should be valid forever. This means the data should be static.

Returns
DtWarheadDetonationActuatorType

Implements DtSimComponent.

Reimplemented in DtSpawnObjectWarheadActuator.

virtual void DtWarheadDetonationActuator::tick ( )
virtual

Checks for any collisions, and creates detonation if they are detected.

Reimplemented from DtSimComponent.

virtual bool DtWarheadDetonationActuator::createPorts ( )
protectedvirtual

Called by init to create the input ports.

Reimplemented from DtSimComponent.

virtual bool DtWarheadDetonationActuator::checkAlive ( )
protectedvirtual

Returns true if the warhead is armed and capable of detonating. This returns true if the firepowerKilled appearance bit is false for the parent entity.

virtual bool DtWarheadDetonationActuator::checkTrigger ( )
protectedvirtual
Returns
True if the trigger port has indicated a trigger pull.
virtual bool DtWarheadDetonationActuator::checkArmed ( )
protectedvirtual
Returns
True if the armed.
virtual bool DtWarheadDetonationActuator::checkProximityDetonate ( DtVector detonationLocation)
protectedvirtual

If there is currently a proximity target and distance set in the PSR, this function checks to see if the current position is within the proximity detonate distance of the target. If so returns true. Otherwise return false.

Parameters
detonationLocationis the location at which the object should detonate. This may be different than the actual entity position for some cases to increase precision where the warhead would have detonated at a time between two frames.
virtual bool DtWarheadDetonationActuator::checkTargetMiss ( )
protectedvirtual

Checks if the missile has flown passed the target, missing it.

virtual void DtWarheadDetonationActuator::checkMissileDetonation ( )
protectedvirtual

Impacting missiles are treated differently given their kinematic characteristics.

virtual const DtSimObject* DtWarheadDetonationActuator::detectCollision ( double distToImpactSqrd,
DtVector detonLocationOut 
)
protectedvirtual

Looks for possible entities for impact, and calls checkEntityForCollision when it finds a candidate. Iterates through the list of physical entities in the DtSimObjectManager. For each test entity, it performs a rough exclusion check by computing a ‘miss radius’ and eliminating the entity if it lies outside of a test radius equal to the ‘miss radius’ plus the entity’s bounding volume radius. The miss radius is a distance between the missile’s position in the previous frame (myLastPosition) and its current position. If the test entity is within this test radius, it calls checkEntityForCollision() to determine if an actual collision took place. As soon as a call to checkEntityForCollision() returns true, the pointer to the entity involved in the collision is returned. If no entities meet the criteria for collision, the function returns 0.

virtual bool DtWarheadDetonationActuator::preventCollisionsWithMatchingTypes ( )
protectedvirtual

In order to prevent munitions such as missiles and torpedoes from colliding with one another as they are spawned from their launchers, detectCollision calls this function to determine if matching entity types should be checked for collisions. This function returns true if the host entity type has its kind field set to DtMunition. This function can be overridden to change this behavior if it's not desired.

virtual bool DtWarheadDetonationActuator::checkEntityForCollision ( const DtSimObject collidee,
const DtVector missilePath,
const DtVector missileBoxCenter,
DtVector detonLocationOut,
double distToImpactSqrd 
)
protectedvirtual

Checks to see if we've impacted with an entity. Tests whether the missile intersects with the bounding volume of a target entity. A chord, defined by the position of the missile in the previous frame (myLastPosition) and the current missile position, is tested to see if it intersects with the bounding volume of the target entity. The test is made by calling Dt3dBoundingVolume::intersectsLineOfChord(), in the target entity’s bounding volume member. If intersectsLineOfChord() returns true, the distance to the impact location is returned in a function call parameter, and the checkEntityForCollision() returns true. If not, it returns false.

virtual bool DtWarheadDetonationActuator::checkForGroundImpact ( double distToImpactSqrd,
DtVector impactPoint,
DtDetonationResult &  result,
bool dataAvailable 
)
protectedvirtual

All parameters are "out" params. A return of true means there was an impact and the out values are all valid. Tests for the intersection of the missile with the terrain. Specifically, it checks to see if a chord formed by the position the missile in the previous frame (myLastPosition) and the current missile position, intersects with the terrain skin. It calls DtSimTerrain::groundIntersection() to make this test. If that function returns true, it computes the distance to the impact and sets the detonation result type to DtDetResGroundImpact (both items are returned in function call parameters), and returns true. If groundIntersection() returns false, it does some additional checking to see if it flew off or under the terrain database. It checks to see if the missile lies outside of a bounding box encompassing the terrain database. If so, it sets the impact point to the location of the missile, sets the detonation result type to DtDetResAirBurst, and returns true. If the missile has not intersected with the terrain skin and it has not left the database, the function returns false.

virtual void DtWarheadDetonationActuator::sendDetonation ( const DtSimObject impactedEntity,
const DtVector detonLocation 
)
protectedvirtual

Creates, fills out, and sends a DtDetonation interaction as a result of an entity collision. This method also forces an update of the missile at the location of the impactedEntity. The detonation itself is created at detonLocation.

Reimplemented in DtSpawnObjectWarheadActuator.

virtual void DtWarheadDetonationActuator::sendDetonation ( DtDetonationResult  result,
const DtVector collisionPt 
)
protectedvirtual

Creates, fills out, and sends a DtDetonation interaction for terrain impacts using the given DtDetonationResult. This method also forces an update of the missile at the collisionPt.

Reimplemented in DtSpawnObjectWarheadActuator.

virtual void DtWarheadDetonationActuator::destroyAndRemoveEntity ( )
protectedvirtual

Called after it detonates. Sets the parent entity to destroyed and queues it for removal from the simulation if the remove-on-destroy parameter is set.

bool DtWarheadDetonationActuator::detonationInAir ( const DtVector localPosition) const
protected

Returns true if the entity location is > 5 meters above terrain and a proximity hit to get the mid air detonation type.

static void DtWarheadDetonationActuator::setWarheadInfoCallback ( DtSimMessage msg,
void *  usr 
)
static

Static callback function which calls use->processWarheadInfoCallback().

static void DtWarheadDetonationActuator::setLocationCallback ( DtSimMessage msg,
void *  usrData 
)
static

Static callback function which calls use->processSetLocationCallback().

virtual void DtWarheadDetonationActuator::processWarheadInfoCallback ( DtSimMessage msg)
virtual

Processes an incoming SetWarheadInfo message by setting the fuze, warhead, attacker ID, and event ID.

virtual void DtWarheadDetonationActuator::processSetLocationCallback ( DtSimMessage msg)
virtual

Processes an incoming setLocation message so that we don't fail the terrain intersection check between last position and current position when determining terrain hits.

virtual void DtWarheadDetonationActuator::processLaserDesignatorRemoved ( const makVrf::DtFrameStateInterface designator)
virtual

Process laser designation removal.

static void DtWarheadDetonationActuator::objectAboutToBeRemovedCallback ( const DtLocalObject object,
void *  usr 
)
static

Process object removal.

virtual void DtWarheadDetonationActuator::processObjectAboutToBeRemoved ( const DtLocalObject object)
virtual

Process object removal.

static DtSimComponent* DtWarheadDetonationActuator::creator ( const DtString name,
DtLocalObject owner,
DtSimulationServices simManager,
DtComponentDescriptor desc = 0,
DtReaderWriterRegistry parentRegistry = 0 
)
static

Parameters
nameReader writer name of this component.
ownerThe DtLocalObject 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).
Returns
New instance of this class.
const DtWarheadDetonationActuator& DtWarheadDetonationActuator::operator= ( const DtWarheadDetonationActuator orig)
private

assignment operator; see comments on copy constructor!

Member Data Documentation

DtBooleanInputPort* DtWarheadDetonationActuator::myTriggerInputPort
protected

Input Port Name: trigger
Input Port Description: Checks to see if the trigger was set.
Input Port Range:
Input Port Default Value: false
.

DtBooleanInputPort* DtWarheadDetonationActuator::myArmedInputPort
protected

Input Port Name: armed
Input Port Description: Check to see if warhead is armed. If port is not connected assume is armed.
Input Port Range:
Input Port Default Value: false
.

DtVrfObjectStateRepository* DtWarheadDetonationActuator::myStateRep
protected
Dt3dBoundingVolume* DtWarheadDetonationActuator::myCollisionBV
protected
DtVector DtWarheadDetonationActuator::myLastPosition
protected
bool DtWarheadDetonationActuator::myStartPositionInited
protected
DtWarheadDetonationActuatorPSR* DtWarheadDetonationActuator::myProcessState
protected

Container for state data associated with this component. This state is saved and restored as part of a scenario (or checkpoint).

DtWarheadDetonationActuatorDescriptor* DtWarheadDetonationActuator::myWarheadDescriptor
protected
DtString DtWarheadDetonationActuator::myEventId
protected
DtSimObjectReference DtWarheadDetonationActuator::myTargetObject
protected

This is here for performance – the real target is specified by the name in the PSR. We don't want to look up that name every tick.

const makVrf::DtLaserDesignatorStateComponent* DtWarheadDetonationActuator::myLaserDesignator
protected

Cached pointer to the designator specified in the PSR, prevents a lookup each tick when a detonation proximity is specified.

boost::signals2::scoped_connection DtWarheadDetonationActuator::myLaserDesignatorRemovedConnection
protected
bool DtWarheadDetonationActuator::myNeedToDisplayTargetNotFoundWarning
protected

Flag to indicate we need to display a warning message for target not found condition. Only needs to be displayed once. Displaying every time its ticked can generate a slew of warnings in the console.

bool DtWarheadDetonationActuator::myAmMissile
protected

Flag to let us know this is a missile or a bomb and hence collision impacts will be treated differently from non missile warheads.

bool DtWarheadDetonationActuator::myHavePrintedTerrainWarning
protected

a little bool here so that you only see the warning about terrain not paged in yet once as opposed to 5000 times while terrain is paging in I do like the idea of see those messages so I know when terrain is paged in so the rest will be printed at the verbose level after the first is printed to warn level.

DtManagedObjectListConstPtr DtWarheadDetonationActuator::myPlatformsList
protected
DtPlatformLocalObjectFacade DtWarheadDetonationActuator::myPlatformLocalObjectFacade
protected
bool DtWarheadDetonationActuator::mySetDestroyed
protected
bool DtWarheadDetonationActuator::myRecievedSetLocationMessage
protected

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

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)