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

An implementation of DtWeaponInforInterface that allows for flexible registering of functions from other classes to meet the API.

Inheritance diagram for DtGenericWeaponInfo:
Inheritance graph
[legend]

Public Types

typedef std::function
< DtWeaponInfoInterface::TargetApplicability(const
DtEntityType &)> 
TargetApplicabilityFcn
 
typedef std::function
< DtSimTask *(const
DtRwLocationReference &)> 
FireTaskFcn
 
typedef std::function< bool(const
DtVector &)> 
TargetRegionFcn
 
typedef std::function< double()> RangeFcn
 
typedef std::function< bool(const
DtEntityType &)> 
TargetAmmunitionFcn
 
- Public Types inherited from DtWeaponInfoInterface
enum  TargetApplicability {
  TargetApplicability_Unspecified = 0, TargetApplicability_NotApplicable = 1, TargetApplicability_Overkill = 2, TargetApplicability_Applicable = 3,
  TargetApplicability_Ideal = 4
}
 
enum  WeaponStatus {
  WeaponStatus_Busy = 1, WeaponStatus_Disabled = 2, WeaponStatus_OutOfAmmo = 4, WeaponStatus_Suppressed = 8,
  WeaponStatus_Stowed = 16
}
 

Public Member Functions

 DtGenericWeaponInfo ()
 
virtual ~DtGenericWeaponInfo () override
 
virtual DtString displayName () const override
 
virtual void setDisplayName (const DtString &name)
 
virtual DtU32 status () const override
 
virtual void setStatus (DtU32 s)
 
virtual void addStatus (WeaponStatus s)
 
virtual void removeStatus (WeaponStatus s)
 
virtual std::list
< DtSimTaskMessageType
fireTaskTypes () const override
 
virtual void addFireTaskType (DtSimTaskMessageType taskType)
 
virtual void addFireTaskTypes (const DtRwNLengthStringVector &taskList)
 
virtual DtSimTaskcreateFireTask (const DtRwLocationReference &location) const override
 
virtual void setFireTaskFcn (FireTaskFcn fcn)
 
virtual bool withinTargetRegion (const DtVector &localPosition) const override
 
virtual void setTargetRegionFcn (TargetRegionFcn fcn)
 
virtual double maximumRange () const override
 
virtual void setMaximumRangeFcn (RangeFcn fcn)
 
virtual double minimumRange () const override
 
virtual void setMinimumRangeFcn (RangeFcn fcn)
 
virtual TargetApplicability targetApplicability (const DtEntityType &type) const override
 
virtual void setTargetApplicabilityFcn (TargetApplicabilityFcn fcn)
 
virtual bool targetAmmunition (const DtEntityType &type) const override
 
virtual void setTargetAmmunitionFcn (TargetAmmunitionFcn fcn)
 
virtual const std::list
< DtEntityType > & 
desiredAmmunition () const override
 
virtual void setDesiredAmmunition (const std::list< DtEntityType > &list)
 
virtual const std::list
< DtArtPartType > & 
mountPartList () const override
 
virtual void createMountPartList (const DtArtPartType partType)
 
virtual DtArtPartType systemTurretNumber () const override
 
virtual void setSystemTurretNumber (const DtArtPartType num)
 
virtual bool controlExternalTurret () const override
 
virtual void setControlExternalTurret (bool c)
 
virtual const std::set
< DtString > & 
requiredTokens () const override
 
virtual void setRequiredTokens (const std::set< DtString > &tokens)
 
virtual bool autonomousFire () const override
 
virtual void setAutonomousFire (bool v)
 
virtual const std::list
< DtEntityType > & 
autonomousTargetTypes () const override
 
virtual void setAutonomousTargetTypes (const std::list< DtEntityType > &targetTypes)
 
virtual const DtRwPropertiesweaponProperties () const override
 
virtual void setWeaponProperties (const DtRwProperties *props)
 
virtual int priority () const override
 
virtual void setPriority (int p)
 
- Public Member Functions inherited from DtWeaponInfoInterface
 DtWeaponInfoInterface ()
 
virtual ~DtWeaponInfoInterface ()=0
 
virtual DtString statusString () const
 
virtual bool ready () const
 
virtual bool hasStatus (WeaponStatus testStatus) const
 

Protected Attributes

DtString myWeaponName
 
DtU32 myStatus
 
std::list< DtSimTaskMessageTypemyFireTaskTypes
 
std::list< DtEntityType > myDesiredAmmunition
 
std::list< DtArtPartType > myMountPartList
 
DtArtPartType myTurretNumber
 
bool myControlExternalTurret
 
std::set< DtStringmyRequiredTokens
 
bool myAutonomousFire
 
std::list< DtEntityType > myAutonomousTargetTypes
 
const DtRwPropertiesmyProperties
 
int myPriority
 
TargetApplicabilityFcn myTargetApplicabilityFcn
 
FireTaskFcn myFireTaskFcn
 
TargetRegionFcn myTargetRegionFcn
 
RangeFcn myMinimumRangeFcn
 
RangeFcn myMaximumRangeFcn
 
TargetAmmunitionFcn myTargetAmmunitionFcn
 

Additional Inherited Members

- Static Public Member Functions inherited from DtWeaponInfoInterface
static std::string targetApplicabilityString (TargetApplicability app)
 

Member Typedef Documentation

typedef std::function<bool(const DtVector&)> DtGenericWeaponInfo::TargetRegionFcn
typedef std::function<double()> DtGenericWeaponInfo::RangeFcn
typedef std::function<bool(const DtEntityType&)> DtGenericWeaponInfo::TargetAmmunitionFcn

Constructor & Destructor Documentation

DtGenericWeaponInfo::DtGenericWeaponInfo ( )
virtual DtGenericWeaponInfo::~DtGenericWeaponInfo ( )
overridevirtual

Member Function Documentation

virtual DtString DtGenericWeaponInfo::displayName ( ) const
overridevirtual

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setDisplayName ( const DtString name)
virtual
virtual DtU32 DtGenericWeaponInfo::status ( ) const
overridevirtual

Weapon status bitfield. 0 indicates the weapon is in the "ready" state. For any non-0 value, the details of the status can be checked using the WeaponStatus bitfields on this return value.

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setStatus ( DtU32  s)
virtual

Sets the entire status bitfield.

virtual void DtGenericWeaponInfo::addStatus ( WeaponStatus  s)
virtual

Turns on a specific status bit in the status field.

virtual void DtGenericWeaponInfo::removeStatus ( WeaponStatus  s)
virtual

Turns off a specific status bit in the status field.

virtual std::list<DtSimTaskMessageType> DtGenericWeaponInfo::fireTaskTypes ( ) const
overridevirtual

Task types that can be used to fire this weapon.

Reimplemented from DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::addFireTaskType ( DtSimTaskMessageType  taskType)
virtual

Adds a fire task to the list of fire task types.

virtual void DtGenericWeaponInfo::addFireTaskTypes ( const DtRwNLengthStringVector taskList)
virtual

Convince function for adding multiple fire task types that are stored as strings in a DtRwNLengthStringVector.

virtual DtSimTask* DtGenericWeaponInfo::createFireTask ( const DtRwLocationReference location) const
overridevirtual
Returns
a new task to fire on the specified location.
Note
This may return null if a task cannot be generated for any reason.

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setFireTaskFcn ( FireTaskFcn  fcn)
virtual
virtual bool DtGenericWeaponInfo::withinTargetRegion ( const DtVector &  localPosition) const
overridevirtual
Returns
True if the provided local coordinate is within the defined target region for this weapon.

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setTargetRegionFcn ( TargetRegionFcn  fcn)
virtual
virtual double DtGenericWeaponInfo::maximumRange ( ) const
overridevirtual
Returns
the maximum range of the weapon.

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setMaximumRangeFcn ( RangeFcn  fcn)
virtual
virtual double DtGenericWeaponInfo::minimumRange ( ) const
overridevirtual
Returns
the minimum range of the weapon.

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setMinimumRangeFcn ( RangeFcn  fcn)
virtual
virtual TargetApplicability DtGenericWeaponInfo::targetApplicability ( const DtEntityType &  type) const
overridevirtual
Returns
A general applicability of this weapon for the specified target type.

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setTargetApplicabilityFcn ( TargetApplicabilityFcn  fcn)
virtual
virtual bool DtGenericWeaponInfo::targetAmmunition ( const DtEntityType &  type) const
overridevirtual
Returns
Check if this weapon has ammunition for the specified target type.

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setTargetAmmunitionFcn ( TargetAmmunitionFcn  fcn)
virtual
virtual const std::list<DtEntityType>& DtGenericWeaponInfo::desiredAmmunition ( ) const
overridevirtual

List of the available munition resources. Only resources with non zero amounts are on this list.

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setDesiredAmmunition ( const std::list< DtEntityType > &  list)
virtual
virtual const std::list<DtArtPartType>& DtGenericWeaponInfo::mountPartList ( ) const
overridevirtual

A list of articulated parts to which this weapon is attached. That is, its parent part, that parent's part, etc. Used to determine when different weapons are dependent on the same part. The list contains articulated part type numbers.

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::createMountPartList ( const DtArtPartType  partType)
virtual
virtual DtArtPartType DtGenericWeaponInfo::systemTurretNumber ( ) const
overridevirtual

The articulated part corresponding to the turret in this gun system (as opposed to an ancestor part).

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setSystemTurretNumber ( const DtArtPartType  num)
virtual
virtual bool DtGenericWeaponInfo::controlExternalTurret ( ) const
overridevirtual

Indicates that this weapon is controlling parent parts outside of the system to turn the gun. I.e., a tank MG is controlling the main turret in order to reach targets outside the normal slew range of the MG.

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setControlExternalTurret ( bool  c)
virtual
virtual const std::set<DtString>& DtGenericWeaponInfo::requiredTokens ( ) const
overridevirtual

List of resources required to operate the weapon; these are tokens that are reserved when the weapon operates, but are not consumed. There is no token reservation system; other components just check to see if their tokens against this set to see if there is a conflict. These tokens may represent crew members, for example.

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setRequiredTokens ( const std::set< DtString > &  tokens)
virtual
virtual bool DtGenericWeaponInfo::autonomousFire ( ) const
overridevirtual

Indicates whether on not this weapon should be used by VR-Forces autonomous fire controllers.

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setAutonomousFire ( bool  v)
virtual
virtual const std::list<DtEntityType>& DtGenericWeaponInfo::autonomousTargetTypes ( ) const
overridevirtual

Returns the entity types which this weapon would be used against for autonomous fire.

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setAutonomousTargetTypes ( const std::list< DtEntityType > &  targetTypes)
virtual
virtual const DtRwProperties* DtGenericWeaponInfo::weaponProperties ( ) const
overridevirtual

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setWeaponProperties ( const DtRwProperties props)
virtual

Set the properties pointer that will be returned to consumers of the weapon info. Note: This class does not assume ownership of this class.

virtual int DtGenericWeaponInfo::priority ( ) const
overridevirtual

Priority of this weapon. Used to compare to other weapons on this platform if there are conflicts.

Note
Lower numbers indicate higher priority.

Implements DtWeaponInfoInterface.

virtual void DtGenericWeaponInfo::setPriority ( int  p)
virtual

Member Data Documentation

DtString DtGenericWeaponInfo::myWeaponName
protected
DtU32 DtGenericWeaponInfo::myStatus
protected
std::list<DtSimTaskMessageType> DtGenericWeaponInfo::myFireTaskTypes
protected
std::list<DtEntityType> DtGenericWeaponInfo::myDesiredAmmunition
protected
std::list<DtArtPartType> DtGenericWeaponInfo::myMountPartList
protected
DtArtPartType DtGenericWeaponInfo::myTurretNumber
protected
bool DtGenericWeaponInfo::myControlExternalTurret
protected
std::set<DtString> DtGenericWeaponInfo::myRequiredTokens
protected
bool DtGenericWeaponInfo::myAutonomousFire
protected
std::list<DtEntityType> DtGenericWeaponInfo::myAutonomousTargetTypes
protected
const DtRwProperties* DtGenericWeaponInfo::myProperties
protected
int DtGenericWeaponInfo::myPriority
protected
TargetApplicabilityFcn DtGenericWeaponInfo::myTargetApplicabilityFcn
protected
FireTaskFcn DtGenericWeaponInfo::myFireTaskFcn
protected
TargetRegionFcn DtGenericWeaponInfo::myTargetRegionFcn
protected
RangeFcn DtGenericWeaponInfo::myMinimumRangeFcn
protected
RangeFcn DtGenericWeaponInfo::myMaximumRangeFcn
protected
TargetAmmunitionFcn DtGenericWeaponInfo::myTargetAmmunitionFcn
protected

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

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)