12#ifndef WSFDISWEAPONEVENTS_HPP
13#define WSFDISWEAPONEVENTS_HPP
15#include "wsf_mil_export.h"
20class DisDirectedEnergyFire;
23#include "DisEntityId.hpp"
24#include "DisEntityType.hpp"
25#include "DisEventId.hpp"
28#include "UtCallback.hpp"
73 DisEntityId& aEntityId,
74 DisEntityType& aEntityType);
96 int GetWarheadEnum(
const WsfWeapon* aWeaponPtr);
99 using CategoryToWarheadMap = std::map<int, int>;
104 DisEventId mDisEventId;
105 DisEntityId mFiringDisEntityId;
106 DisEntityId mWeaponDisEntityId;
107 DisEntityType mWeaponDisEntityType;
108 DisEntityId mTargetDisEntityId;
111 using WeaponEventList = std::map<unsigned int, WeaponEvent>;
114 struct PendingTransfer
116 double mFiringStartTime;
117 size_t mFiringPlatformIndex;
120 DisEntityId mWeaponDisEntityId;
121 DisEntityType mWeaponDisEntityType;
124 using PendingTransferList = std::list<PendingTransfer>;
126 WsfDisInterface* mInterfacePtr;
127 WsfMilDisInterface* mMilPtr;
128 WsfMilExtInterface* mExtMilPtr;
131 WeaponEventList mWeaponEventList;
134 PendingTransferList mPendingTransferList;
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfDirectedEnergyWeapon.hpp:27
Definition WsfDisInterface.hpp:83
WsfDisWeaponEvents(WsfMilDisInterface *aInterfacePtr)
Definition WsfDisWeaponEvents.cpp:57
UtCallbackListN< void(WsfPlatform *, const WsfWeapon *, const WsfWeaponEngagement *, DisEntityId &)> UpdateFiringPlatformSystems
Definition WsfDisWeaponEvents.hpp:90
void DirectedEnergyWeaponHit(double aSimTime, const WsfDirectedEnergyWeapon *aWeaponPtr, const WsfWeaponEngagement *aEngagementPtr)
Definition WsfDisWeaponEvents.cpp:498
void WeaponFired(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, const WsfTrack *aTrackPtr)
Definition WsfDisWeaponEvents.cpp:73
UtCallbackListN< void(WsfDisPlatform *, DisEntityId &)> ProcessWeaponTerminated
Definition WsfDisWeaponEvents.hpp:84
WsfSimulation * GetSimulation() const
Definition WsfDisWeaponEvents.cpp:1296
UtCallbackListN< void(DisFire &)> ProcessFirePDU
Definition WsfDisWeaponEvents.hpp:78
UtCallbackListN< void(DisDetonation &)> ProcessDetonationPDU
Definition WsfDisWeaponEvents.hpp:80
UtCallbackListN< void(WsfGeoPoint &, int)> SetTrackLocationData
Definition WsfDisWeaponEvents.hpp:88
UtCallbackListN< void(const WsfWeapon *, WsfPlatform *, WsfDisPlatform *, DisEntityId &, bool &)> ProcessWeaponPrelaunchStatus
Definition WsfDisWeaponEvents.hpp:82
void DirectedEnergyWeaponFired(double aSimTime, const WsfDirectedEnergyWeapon *aWeaponPtr, const WsfWeaponEngagement *aEngagementPtr)
Definition WsfDisWeaponEvents.cpp:307
bool TransferPlatformToExternalControl(double aSimTime, WsfPlatform *aPlatformPtr)
Definition WsfDisWeaponEvents.cpp:1155
UtCallbackListN< void(std::string)> ReportErrorMessage
Definition WsfDisWeaponEvents.hpp:86
void WeaponTerminated(double aSimTime, const WsfWeaponEngagement *aEngagementPtr)
Definition WsfDisWeaponEvents.cpp:579
virtual ~WsfDisWeaponEvents()=default
bool IsOutgoingWeaponTransfer(double aSimTime, WsfPlatform *aPlatformPtr)
Definition WsfDisWeaponEvents.cpp:1255
bool TransferPlatformToInternalControl(double aSimTime, WsfPlatform *aPlatformPtr, DisEntityId &aEntityId, DisEntityType &aEntityType)
Definition WsfDisWeaponEvents.cpp:1191
bool InitiateWeaponTransfer(double aSimTime, DisFire *aPduPtr)
Definition WsfDisWeaponEvents.cpp:821
void ImplicitWeaponEndEngagement(double aSimTime, WsfImplicitWeapon *aImplicitWeapon, const WsfWeaponEngagement *aEngagementPtr)
Definition WsfDisWeaponEvents.cpp:566
Definition WsfGeoPoint.hpp:29
Definition WsfImplicitWeapon.hpp:31
Definition WsfMilDisInterface.hpp:42
Definition WsfMilExtInterface.hpp:23
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfTrackId.hpp:33
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfWeaponEngagement.hpp:43
Definition WsfWeapon.hpp:63