WSF
WsfSensorBeam.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 WSFSENSORBEAM_HPP
13#define WSFSENSORBEAM_HPP
14
15#include "wsf_export.h"
16
17#include <cstddef> // for size_t
18
19class UtInput;
20class WsfEM_Clutter;
21class WsfEM_Rcvr;
22class WsfEM_Xmtr;
23class WsfSensor;
24class WsfSensorMode;
26
27
58{
59 friend class WsfSensor;
60 friend class WsfSensorMode;
61 friend class WsfSensorModeList;
62
63public:
65 WsfSensorBeam(const WsfSensorBeam& aSrc) = default;
66 WsfSensorBeam& operator =(const WsfSensorBeam& aRhs);
67 virtual ~WsfSensorBeam() = default;
68
73
74 virtual WsfEM_Rcvr* GetEM_Rcvr() { return nullptr; }
75 virtual WsfEM_Xmtr* GetEM_Xmtr() { return nullptr; }
77
78 virtual bool ProcessInput(UtInput& aInput);
79 virtual bool Initialize(double aSimTime);
80
82 void SetBeamOwner(WsfSensorMode* aSensorModePtr) { mSensorModePtr = aSensorModePtr; }
83
86 void SetBeamIndex(size_t aBeamIndex) { mBeamIndex = aBeamIndex; }
87
88 // NOTE: Do not add a GetSensor method as it would require sensor modes that derive
89 // from both WsfSensorMode and WsfSensorBeam to have a 'using' directive to
90 // resolve the ambiguity.
91
92 WsfSensorMode* GetSensorMode() const { return mSensorModePtr; }
93 size_t GetBeamIndex() const { return mBeamIndex; }
94
95 WsfSensorSignalProcessor::List& GetSignalProcessors() { return mSignalProcessors; }
96
99
100 virtual int GetNumberOfPulsesIntegrated() const;
101 virtual double GetIntegrationGain() const;
102 virtual void SetIntegrationGain(double aIntegrationGain);
103 virtual WsfEM_Clutter* GetClutter() const { return nullptr; };
105
106private:
107 WsfSensorMode* mSensorModePtr;
108 size_t mBeamIndex;
109
112 WsfSensorSignalProcessor::List mSignalProcessors;
113};
114
115#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
An abstract class for computing clutter power.
Definition WsfEM_Clutter.hpp:25
Definition WsfEM_Rcvr.hpp:68
Definition WsfEM_Xmtr.hpp:55
virtual ~WsfSensorBeam()=default
WsfSensorSignalProcessor::List & GetSignalProcessors()
Definition WsfSensorBeam.hpp:95
virtual WsfEM_Rcvr * GetEM_Rcvr()
Definition WsfSensorBeam.hpp:74
friend class WsfSensor
Definition WsfSensorBeam.hpp:59
WsfSensorBeam()
Definition WsfSensorBeam.cpp:20
friend class WsfSensorModeList
Definition WsfSensorBeam.hpp:61
WsfSensorMode * GetSensorMode() const
Definition WsfSensorBeam.hpp:92
friend class WsfSensorMode
Definition WsfSensorBeam.hpp:60
void SetBeamIndex(size_t aBeamIndex)
Definition WsfSensorBeam.hpp:86
virtual WsfEM_Clutter * GetClutter() const
Definition WsfSensorBeam.hpp:103
void SetBeamOwner(WsfSensorMode *aSensorModePtr)
Set the beam owner (the parent mode).
Definition WsfSensorBeam.hpp:82
WsfSensorBeam(const WsfSensorBeam &aSrc)=default
virtual WsfEM_Xmtr * GetEM_Xmtr()
Definition WsfSensorBeam.hpp:75
size_t GetBeamIndex() const
Definition WsfSensorBeam.hpp:93
Definition WsfSensorMode.hpp:36
A convenience class to support attaching a list of signal processors to a sensor.
Definition WsfSensorSignalProcessor.hpp:42
Definition WsfSensor.hpp:92
Copyrights Multiple, All Rights Reserved