WSF
WsfLASER_XmtrComponent.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 2018 Infoscitex, a DCS 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 WSFLASER_XMTRCOMPONENT_HPP
13#define WSFLASER_XMTRCOMPONENT_HPP
14
15#include "WsfEM_Xmtr.hpp"
17
22{
23public:
27
29
30 WsfStringId GetComponentName() const override;
31 WsfComponent* CloneComponent() const override;
32 const int* GetComponentRoles() const override;
33 void* QueryInterface(int aRole) override;
35
37
38 void ComponentParentChanged(WsfEM_Xmtr* aXmtr) override;
39 bool Initialize(double aSimTime) override;
40 bool ProcessInput(UtInput& aInput) override;
42
44 double GetApertureDiameter() const { return mApertureDiameter; }
45
46 double GetApertureArea() const;
47
50 double GetTransmitAntennaGain() const { return mTransmitAntennaGain; }
51
54 double GetAntennaGain() const { return mAntennaGain; }
55
57 double GetBeamwidth() const { return mBeamwidth; }
58
60 double GetOpticsTransmissionFactor() const { return mOpticsTransmissionFactor; }
61
63 double GetWavefrontTransmissionFactor() const { return mWavefrontTransmissionFactor; }
64
65private:
66 double mApertureDiameter;
67 double mOpticsTransmissionFactor;
68 double mBeamwidth;
69 double mWavefrontError;
70 double mWavefrontTransmissionFactor;
71 double mTransmitAntennaGain;
72 double mAntennaGain;
73 double mObscurationTruncationFactor;
74};
75
77
78#endif
#define WSF_DECLARE_COMPONENT_ROLE_TYPE(TYPE, ROLE)
Definition WsfComponentRoles.hpp:44
WsfComponentT< WsfEM_Xmtr > WsfEM_XmtrComponent
Definition WsfEM_Xmtr.hpp:36
@ cWSF_COMPONENT_LASER_XMTR
LASER extension for WsfEM_Xmtr.
Definition WsfMilComponentRoles.hpp:36
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfComponent.hpp:39
Definition WsfEM_Xmtr.hpp:55
Definition WsfLASER_XmtrComponent.hpp:22
double GetBeamwidth() const
Return the angular width of the transmitted beam.
Definition WsfLASER_XmtrComponent.hpp:57
double GetApertureArea() const
Get the aperture area, assumed circular.
Definition WsfLASER_XmtrComponent.cpp:199
WsfStringId GetComponentName() const override
Definition WsfLASER_XmtrComponent.cpp:52
double GetTransmitAntennaGain() const
Definition WsfLASER_XmtrComponent.hpp:50
double GetWavefrontTransmissionFactor() const
Return the fraction of laser light that passes through a the transmitter optical path as a function o...
Definition WsfLASER_XmtrComponent.hpp:63
WsfComponent * CloneComponent() const override
Definition WsfLASER_XmtrComponent.cpp:46
double GetOpticsTransmissionFactor() const
Return the fraction of the transmitted laser light that passes through the transmitter optics.
Definition WsfLASER_XmtrComponent.hpp:60
void ComponentParentChanged(WsfEM_Xmtr *aXmtr) override
The default earth radius multiplier should be 1.0 (optical).
Definition WsfLASER_XmtrComponent.cpp:76
void * QueryInterface(int aRole) override
Definition WsfLASER_XmtrComponent.cpp:65
WsfLASER_XmtrComponent & operator=(const WsfLASER_XmtrComponent &)=delete
WsfLASER_XmtrComponent()
Definition WsfLASER_XmtrComponent.cpp:32
bool Initialize(double aSimTime) override
Definition WsfLASER_XmtrComponent.cpp:83
double GetAntennaGain() const
Definition WsfLASER_XmtrComponent.hpp:54
double GetApertureDiameter() const
Return the receiver's aperture diameter.
Definition WsfLASER_XmtrComponent.hpp:44
WsfLASER_XmtrComponent(const WsfLASER_XmtrComponent &aSrc)=default
const int * GetComponentRoles() const override
Definition WsfLASER_XmtrComponent.cpp:58
bool ProcessInput(UtInput &aInput) override
Definition WsfLASER_XmtrComponent.cpp:142
Copyrights Multiple, All Rights Reserved