WSF
WsfXIO_WeaponObjectInfo.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFXIO_WEAPONOBJECTINFO_HPP
13#define WSFXIO_WEAPONOBJECTINFO_HPP
14
15#include "wsf_mil_export.h"
16
17#include <cassert>
18#include <vector>
19
20class WsfEW_EA_EP;
23class WsfRF_Jammer;
24class WsfWeapon;
26
28
31{
32public:
33 bool mInUse;
35 std::vector<WsfStringId> mEffects;
36
37 template<typename T>
38 void Serialize(T& aBuff)
39 {
41 }
42};
43
46{
47public:
48 template<typename T>
49 void Serialize(T& aBuff)
50 {
51 aBuff& mEW_Techniques;
52 }
53
54 typedef std::map<WsfStringId, WsfXIO_EW_Technique> EW_TechniquesType;
56};
57
59class WSF_MIL_EXPORT WsfXIO_WeaponInfo : public WsfXIO_ModedPartInfo
60{
61public:
63
68
69 template<typename T>
70 void Serialize(T& aBuff)
71 {
73 aBuff& mQuantityRemaining;
74 }
75
78
79 void FireSalvo(const WsfTrackId& aTrackId, int aSalvoSize = 1);
80 void FireSalvo(WsfStringId aTargetNameId, int aSalvoSize = 1);
81
83
84private:
86};
87
89class WSF_MIL_EXPORT WsfXIO_ExplicitWeaponInfo : public WsfXIO_WeaponInfo
90{
91public:
97
98 template<typename T>
99 void Serialize(T& aBuff)
100 {
103 }
104
107
108private:
110};
111
113class WSF_MIL_EXPORT WsfXIO_JammerWeaponInfo : public WsfXIO_WeaponInfo
114{
115public:
121 ~WsfXIO_JammerWeaponInfo() override;
122
123 template<typename T>
124 void Serialize(T& aBuff)
125 {
128 }
129
131 std::vector<WsfXIO_EM_XmtrInfo*> mTransmitters;
132
134 std::vector<WsfXIO_EM_XmtrInfo*> mMasterXmtrs;
135
136private:
138};
139
140#endif
@ cWSF_COMPONENT_WEAPON
Weapon component.
Definition WsfMilComponentRoles.hpp:18
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfEW_EA_EP.hpp:38
A specialization of WsfWeapon for weapons modeled as separate platforms.
Definition WsfExplicitWeapon.hpp:30
Definition WsfRF_Jammer.hpp:37
Definition WsfTrackId.hpp:33
Definition WsfWeapon.hpp:63
The parallel of WsfXIO_ObjectInfo for weapons.
Definition WsfXIO_WeaponObjectInfo.hpp:31
std::vector< WsfStringId > mEffects
Definition WsfXIO_WeaponObjectInfo.hpp:35
void Serialize(T &aBuff)
Definition WsfXIO_WeaponObjectInfo.hpp:38
bool mExternallyControlled
Definition WsfXIO_WeaponObjectInfo.hpp:34
bool mInUse
Definition WsfXIO_WeaponObjectInfo.hpp:33
The set of EW techniques attached to a transmitter/receiver.
Definition WsfXIO_WeaponObjectInfo.hpp:46
void Serialize(T &aBuff)
Definition WsfXIO_WeaponObjectInfo.hpp:49
std::map< WsfStringId, WsfXIO_EW_Technique > EW_TechniquesType
Definition WsfXIO_WeaponObjectInfo.hpp:54
EW_TechniquesType mEW_Techniques
Definition WsfXIO_WeaponObjectInfo.hpp:55
WsfXIO_ExplicitWeaponInfo(ObjectType aType=cPART_INFO_ID)
Definition WsfXIO_WeaponObjectInfo.hpp:93
WsfStringId mLaunchedPlatformType
TypeID of the launched platform type.
Definition WsfXIO_WeaponObjectInfo.hpp:106
static const ObjectType cPART_INFO_ID
Definition WsfXIO_WeaponObjectInfo.hpp:92
void Serialize(T &aBuff)
Definition WsfXIO_WeaponObjectInfo.hpp:99
WsfXIO_ExtraInfo()=default
Provides information about a WsfRF_Jammer.
Definition WsfXIO_WeaponObjectInfo.hpp:114
WsfXIO_JammerWeaponInfo(ObjectType aType=cPART_INFO_ID)
Definition WsfXIO_WeaponObjectInfo.hpp:117
std::vector< WsfXIO_EM_XmtrInfo * > mTransmitters
Active transmitter spot information.
Definition WsfXIO_WeaponObjectInfo.hpp:131
std::vector< WsfXIO_EM_XmtrInfo * > mMasterXmtrs
Master transmitter information for each jammer mode.
Definition WsfXIO_WeaponObjectInfo.hpp:134
static const ObjectType cPART_INFO_ID
Definition WsfXIO_WeaponObjectInfo.hpp:116
void Serialize(T &aBuff)
Definition WsfXIO_WeaponObjectInfo.hpp:124
void UpdateFromStateChange(WsfXIO_PartStateChangePkt &aPkt) override
Definition WsfXIO_ObjectInfo.cpp:268
WsfXIO_ModedPartInfo(ObjectType aType)
Definition WsfXIO_ObjectInfo.hpp:358
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:364
void UpdateFromPartState(WsfXIO_PlatformPartStatePkt &aPkt) override
Definition WsfXIO_ObjectInfo.cpp:276
int32_t ObjectType
Definition WsfXIO_ObjectInfo.hpp:192
@ cDERIVED_TYPE_BEGIN
Definition WsfXIO_ObjectInfo.hpp:207
@ cARTICULATED_PART
Definition WsfXIO_ObjectInfo.hpp:197
Inform other applications about a platform part state change.
Definition WsfXIO_PacketRegistry.hpp:460
Requests that an application begin sending state information for a specified platform part.
Definition WsfXIO_PacketRegistry.hpp:1157
WsfXIO_WeaponInfo(ObjectType aType=cPART_INFO_ID)
Definition WsfXIO_WeaponObjectInfo.hpp:64
static const ObjectType cPART_INFO_ID
Definition WsfXIO_WeaponObjectInfo.hpp:62
double mQuantityRemaining
Definition WsfXIO_WeaponObjectInfo.hpp:82
void Serialize(T &aBuff)
Definition WsfXIO_WeaponObjectInfo.hpp:70
Copyrights Multiple, All Rights Reserved