WSF
WsfDisEmission.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// Updated by Infoscitex, a DCS Company.
13// ****************************************************************************
14
15#ifndef WSFDISEMISSION_HPP
16#define WSFDISEMISSION_HPP
17
18#include "wsf_export.h"
19
20#include <map>
21
22#include "DisEmission.hpp"
23#include "UtCallback.hpp"
24
25// Forward declarations
26class UtInput;
28class WsfDisInterface;
29class WsfEM_Xmtr;
30class WsfEM_XmtrRcvr;
31class WsfPlatform;
32class WsfPlatformPart;
33class WsfSensor;
34class WsfExtEmission;
35
36class WSF_EXPORT WsfDisEmission : public DisEmission
37{
38public:
39 WsfDisEmission(DisPdu& aPdu, GenI& aGenI, WsfDisInterface* aInterfacePtr);
40 WsfDisEmission() = default;
41 ~WsfDisEmission() override = default;
42
43 int Process() override;
44
45 using OverrideTypeAndFunctionCallback = UtCallbackListN<void(WsfPlatformPart*, DisSystem*, DisEnum16&, DisEnum8&)>;
47
49 // WsfDisEmission* GetDisEmission() const;
50
52
53 void UpdateSensor(DisSystem* aSystemPtr, WsfSensor* aSensorPtr);
54
56 void UpdateLocation(DisSystem* aSystemPtr, WsfArticulatedPart* aArticulatedPartPtr);
58
60 void UpdateXmtr(DisBeam* aBeamPtr, WsfEM_Xmtr* aXmtrPtr, bool& aBeamOn);
61
63 void UpdateSysBeamMapping(unsigned int aSysUniqueId, unsigned int aBeamUniqueId, unsigned int aXmtrUniqueId);
64
65private:
66 void UpdateShadowPlatform(WsfPlatform* aShadowPlatformPtr);
67
68 void UpdatePlatform(WsfPlatform* aPlatformPtr);
69
70 void NotifySensorListeners(DisBeam* aBeamPtr, WsfEM_Xmtr* aXmtrPtr);
71
73 WsfDisInterface* mInterfacePtr{nullptr};
74};
75
76#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfArticulatedPart.hpp:36
void UpdateSensor(DisSystem *aSystemPtr, WsfSensor *aSensorPtr)
Definition WsfDisEmission.cpp:234
WsfExtEmission * GetExtEmission() const
Definition WsfDisEmission.cpp:448
void UpdateXmtr(DisBeam *aBeamPtr, WsfEM_Xmtr *aXmtrPtr, bool &aBeamOn)
Updates an EM transmitter using the DIS emission PDU beam data.
Definition WsfDisEmission.cpp:356
UtCallbackListN< void(WsfPlatformPart *, DisSystem *, DisEnum16 &, DisEnum8 &)> OverrideTypeAndFunctionCallback
Definition WsfDisEmission.hpp:45
~WsfDisEmission() override=default
WsfDisEmission()=default
WsfDisEmission(DisPdu &aPdu, GenI &aGenI, WsfDisInterface *aInterfacePtr)
Definition WsfDisEmission.cpp:47
void UpdateSysBeamMapping(unsigned int aSysUniqueId, unsigned int aBeamUniqueId, unsigned int aXmtrUniqueId)
Update the system-beam to xmtr ID mapping.
Definition WsfDisEmission.cpp:437
int Process() override
Process the DIS Emission PDU.
Definition WsfDisEmission.cpp:56
static OverrideTypeAndFunctionCallback OverrideTypeAndFunction
Definition WsfDisEmission.hpp:46
void UpdateLocation(DisSystem *aSystemPtr, WsfArticulatedPart *aArticulatedPartPtr)
Updates the articulated part given the DIS emission PDU location data.
Definition WsfDisEmission.cpp:420
Definition WsfDisInterface.hpp:83
Definition WsfEM_XmtrRcvr.hpp:42
Definition WsfEM_Xmtr.hpp:55
Definition WsfExtEmission.hpp:32
Definition WsfPlatformPart.hpp:61
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
Definition WsfSensor.hpp:92
Copyrights Multiple, All Rights Reserved