12#ifndef WSFMILDISINTERFACE_HPP
13#define WSFMILDISINTERFACE_HPP
15#include "wsf_mil_export.h"
20#include "DisEntityId.hpp"
21#include "DisEntityType.hpp"
22#include "DisEventId.hpp"
23#include "UtCallbackHolder.hpp"
74 DisEntityId& aEntityId,
75 DisEntityType& aEntityType)
override;
117 void UpdateSystemFromWeapon(
WsfWeapon* aWeaponPtr, DisSystem* aSystemPtr);
118 void UpdateBeamFromXmtr(
WsfEM_Xmtr& aXmtr, DisBeam* aBeamPtr,
double aMinAz,
double aMaxAz,
double aMinEl,
double aMaxEl);
124 void AddDirectedEnergyWeapon(std::unique_ptr<WsfDirectedEnergyWeapon> aWeaponPtr,
const DisEventId& aId);
128 void DeleteDirectedEnergyWeapon(
const DisEventId& aId);
133 void DirectedEnergyWeaponBeginShot(
double aSimTime,
137 void DirectedEnergyWeaponUpdateShot(
double aSimTime,
141 void DirectedEnergyWeaponEndShot(
double aSimTime,
145 void ImplicitWeaponEndEngagement(
double aSimTime,
151 void WeaponTurnedOff(
double aSimTime,
WsfWeapon* aWeaponPtr);
153 void WeaponTurnedOn(
double aSimTime,
WsfWeapon* aWeaponPtr);
155 void JammingRequestCanceled(
double aSimTime,
WsfWeapon* aWeaponPtr,
double aFrequency,
double aBandwidth,
size_t aTargetIndex);
157 void JammingRequestInitiated(
double aSimTime,
162 size_t aTargetIndex);
164 void JammingRequestUpdated(
double aSimTime,
169 size_t aTargetIndex);
171 bool mSuppressDirectedEnergyData;
179 IncomingTransferList sIncomingTransferList;
182 OutgoingTransferList sOutgoingTransferList;
184 using ImplicitWeaponEngagementMap = std::map<DisEventId, WsfWeaponEngagement*>;
185 using DirectedEnergyWeaponMap = std::map<DisEventId, std::unique_ptr<WsfDirectedEnergyWeapon>>;
187 ImplicitWeaponEngagementMap mImplicitWeaponEngagementMap;
188 DirectedEnergyWeaponMap mDirectedEnergyWeaponMap;
190 UtCallbackHolder mCallbacks;
#define WSF_DECLARE_COMPONENT_ROLE_TYPE(TYPE, ROLE)
Definition WsfComponentRoles.hpp:44
@ cWSF_COMPONENT_MIL_DIS_EXTENSION
Definition WsfMilComponentRoles.hpp:22
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfComponent.hpp:39
virtual bool Initialize(double aSimTime)
Definition WsfComponent.cpp:45
virtual bool ProcessInput(UtInput &aInput)
Definition WsfComponent.cpp:100
virtual WsfComponent * CloneComponent() const =0
virtual void * QueryInterface(int aRole)=0
Definition WsfDirectedEnergyWeapon.hpp:27
Definition WsfDisInput.hpp:42
virtual void PrepareComponent(double aSimTime)
Definition WsfDisInput.hpp:44
virtual void AddedToDisInterface(WsfDisInterface *aDisInterfacePtr)
Definition WsfDisInput.hpp:45
virtual bool AddEmissionSystem(WsfPlatform *aPlatformPtr, WsfDisEmission *aEmissionPtr, DisSystem *aSystemPtr)
Definition WsfDisInput.hpp:61
virtual bool TransferPlatformToExternalControl(double aSimTime, WsfPlatform *aPlatformPtr)
Definition WsfDisInput.hpp:53
virtual bool UpdateXmtrFromBeam(WsfDisEmission *aEmissionPtr, DisBeam *aBeamPtr, WsfEM_Xmtr *aXmtrPtr, bool &aBeamOn)
Definition WsfDisInput.hpp:66
virtual bool TransferPlatformToInternalControl(double aSimTime, WsfPlatform *aPlatformPtr, DisEntityId &aEntityId, DisEntityType &aEntityType)
Definition WsfDisInput.hpp:46
virtual void PlatformCreated(WsfDisPlatform *aPlatformPtr)
Definition WsfDisInput.hpp:54
virtual bool UpdateEmissionSystem(WsfPlatform *aPlatformPtr, WsfDisEmission *aEmissionPtr, DisSystem *aSystemPtr)
Definition WsfDisInput.hpp:56
Definition WsfDisEmission.hpp:37
Definition WsfDisInterface.hpp:83
Definition WsfDisLaserDesignations.hpp:34
A Helper class for WsfDisInterface to process weapon launch and termination events.
Definition WsfDisWeaponEvents.hpp:46
Definition WsfEM_Xmtr.hpp:55
Definition WsfImplicitWeapon.hpp:31
Definition WsfMilDisInterface.hpp:42
static WsfMilDisInterface * Find(const WsfDisInterface &aDisInterface)
Definition WsfMilDisInterface.cpp:474
WsfMilDisInterface(WsfMilExtension *aMilExtensionPtr)
Definition WsfMilDisInterface.cpp:47
WsfDisWeaponEvents * GetWeaponEvents() const
Definition WsfMilDisInterface.hpp:53
std::vector< IncomingTransfer > IncomingTransferList
Definition WsfMilDisInterface.hpp:101
WsfMilExtension * GetMilExtension() const
Definition WsfMilDisInterface.hpp:114
WsfMilDisInterface(WsfMilDisInterface &&)=default
WsfDisInterface * GetDis() const
Definition WsfMilDisInterface.hpp:113
WsfMilDisInterface & operator=(const WsfMilDisInterface &)=delete
WsfStringId GetComponentName() const override
Definition WsfMilDisInterface.hpp:58
std::vector< OutgoingTransfer > OutgoingTransferList
Definition WsfMilDisInterface.hpp:107
const IncomingTransferList & GetIncomingTransferList() const
Definition WsfMilDisInterface.hpp:109
const OutgoingTransferList & GetOutgoingTransferList() const
Definition WsfMilDisInterface.hpp:111
WsfMilDisInterface & operator=(WsfMilDisInterface &&)=default
const int * GetComponentRoles() const override
Definition WsfMilDisInterface.hpp:59
Definition WsfMilExtInterface.hpp:23
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfWeaponEngagement.hpp:43
Definition WsfWeapon.hpp:63
Incoming weapon transfer definition.
Definition WsfMilDisInterface.hpp:95
DisEntityId mFiringDisEntityId
Definition WsfMilDisInterface.hpp:97
DisEntityType mWeaponDisEntityType
Definition WsfMilDisInterface.hpp:98
WsfStringId mWeaponSystemType
Definition WsfMilDisInterface.hpp:99
Definition WsfMilDisInterface.hpp:103
WsfStringId mWeaponSystemType
Definition WsfMilDisInterface.hpp:105