WSF
WsfBMWeaponInfoRecord.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// The use, dissemination or disclosure of data in this file is subject to
7// limitation or restriction. See accompanying README and LICENSE for details.
8// ****************************************************************************
9// Classification: UNCLASSIFIED
10
11#ifndef WSF_BM_WEAPON_INFO_RECORD_HPP
12#define WSF_BM_WEAPON_INFO_RECORD_HPP
13
14#include <WsfObject.hpp>
15#include <WsfPlatform.hpp>
16#include "WsfBMCommon.hpp"
17#include <iadsLib/weaponRecordInterface.hpp>
18#include <iadsLib/trackRecord.hpp>
19
21class WsfWeapon;
22
23class WSF_IADS_C2_LIB_EXPORT WsfBMWeaponInfoRecord : public WsfObject, public il::weaponRecord
24{
25 public:
26
29 virtual ~WsfBMWeaponInfoRecord();
30
32 virtual WsfBMWeaponInfoRecord* Clone() const;
33
34 void Set(/* const */ WsfSimulation* sim_ptr, WsfBMAssetRecord* asset, tWeaponSysID weapon_sys_id, il::AssetTypeEnum weapon_type); // TTD: We should look at taking in the weapon reference although that is wrought with potential errors like if the platform is deleted, we may have an invalid reference lifetime is an issue for sure.
35 void Set(/* const */ WsfSimulation* sim_ptr, const std::shared_ptr<il::assetRecord>& asset, tWeaponSysID weapon_sys_id, il::AssetTypeEnum weapon_type);
36
37 int GetNumMunitions() const;
39 double GetInterceptSpeed();
40 tWeaponSysID GetWsysID() const;
41 il::unitTypeRecord GetTypeRecord() const;
42
43 // Optionally Abstract interface
44 virtual int GetTruthMunitionsPrepped() const;
45 virtual int GetTruthTotalMunitions() const;
46 virtual int GetTruthAllocatedFireChannels() const;
47
48 // Pure Abstract interface
49 virtual double GetTimeBetweenShots() const;
50 virtual double GetTimeToFire() const;
51 virtual bool HasMinRangeAttribute() const;
52 virtual double GetMinRange() const;
53 virtual bool HasMaxRangeAttribute() const;
54 virtual double GetMaxRange() const;
55 virtual double GetAvgSpeed() const;
56 virtual double GetEstPK() const;
57 virtual std::string GetName() const;
58
59 virtual int GetShotsFiredAtTrack(const il::idRecord& track_id) const;
60 virtual void SetShotsFiredAtTrack(const il::idRecord& track_id, const int fired);
61 virtual int GetShotsPendingForTrack(const il::idRecord& track_id) const;
62 virtual void SetShotsPendingForTrack(const il::idRecord& track_id, const int fired);
63
64 protected:
65 const WsfWeapon* GetWeaponRef() const;
66
68 WsfSimulation* m_sim_ptr; // we don't own this
69};
70
71#endif
int tWeaponSysID
Definition WsfBMCommon.hpp:28
unsigned int tPlatformRef
Definition WsfBMCommon.hpp:27
Definition WsfBMAssetRecord.hpp:32
int GetMaxEngagements()
Definition WsfBMWeaponInfoRecord.cpp:73
double GetInterceptSpeed()
Definition WsfBMWeaponInfoRecord.cpp:84
WsfBMWeaponInfoRecord()
Definition WsfBMWeaponInfoRecord.cpp:21
virtual int GetShotsPendingForTrack(const il::idRecord &track_id) const
Definition WsfBMWeaponInfoRecord.cpp:282
int GetNumMunitions() const
Definition WsfBMWeaponInfoRecord.cpp:62
virtual double GetMinRange() const
Definition WsfBMWeaponInfoRecord.cpp:193
virtual double GetMaxRange() const
Definition WsfBMWeaponInfoRecord.cpp:217
virtual int GetTruthAllocatedFireChannels() const
Definition WsfBMWeaponInfoRecord.cpp:147
virtual void SetShotsPendingForTrack(const il::idRecord &track_id, const int fired)
Definition WsfBMWeaponInfoRecord.cpp:293
virtual double GetEstPK() const
Definition WsfBMWeaponInfoRecord.cpp:243
virtual bool HasMinRangeAttribute() const
Definition WsfBMWeaponInfoRecord.cpp:182
WsfSimulation * m_sim_ptr
Definition WsfBMWeaponInfoRecord.hpp:68
virtual int GetShotsFiredAtTrack(const il::idRecord &track_id) const
Definition WsfBMWeaponInfoRecord.cpp:267
virtual int GetTruthMunitionsPrepped() const
Definition WsfBMWeaponInfoRecord.cpp:125
virtual void SetShotsFiredAtTrack(const il::idRecord &track_id, const int fired)
Definition WsfBMWeaponInfoRecord.cpp:278
virtual double GetTimeToFire() const
Definition WsfBMWeaponInfoRecord.cpp:171
virtual bool HasMaxRangeAttribute() const
Definition WsfBMWeaponInfoRecord.cpp:206
const WsfWeapon * GetWeaponRef() const
Definition WsfBMWeaponInfoRecord.cpp:113
virtual double GetAvgSpeed() const
Definition WsfBMWeaponInfoRecord.cpp:230
void Set(WsfSimulation *sim_ptr, WsfBMAssetRecord *asset, tWeaponSysID weapon_sys_id, il::AssetTypeEnum weapon_type)
Definition WsfBMWeaponInfoRecord.cpp:36
tPlatformRef m_attached_plat
Definition WsfBMWeaponInfoRecord.hpp:67
virtual double GetTimeBetweenShots() const
Definition WsfBMWeaponInfoRecord.cpp:160
virtual int GetTruthTotalMunitions() const
Definition WsfBMWeaponInfoRecord.cpp:136
tWeaponSysID GetWsysID() const
Definition WsfBMWeaponInfoRecord.cpp:97
il::unitTypeRecord GetTypeRecord() const
Definition WsfBMWeaponInfoRecord.cpp:102
const std::string & GetName() const
Definition WsfObject.cpp:235
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
virtual WsfObject * Clone() const =0
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfWeapon.hpp:63
Copyrights Multiple, All Rights Reserved