12#ifndef WSFSTANDARDOPTICALREFLECTIVITY_HPP
13#define WSFSTANDARDOPTICALREFLECTIVITY_HPP
20#include "wsf_mil_export.h"
22#include "UtAzElTypes.hpp"
48 double aTgtToRcvrEl)
override;
54 Table(
double aWavelengthLimit, UtAzElTable* aTablePtr);
80 using InterpolationType = ut::azel::InterpolationType;
83 SharedData() =
default;
92 bool AddTable(UtAzElTable* aTablePtr,
WsfStringId aStateId,
double aWavelengthLimit);
94 void SelectTable(UtAzElLookup& aContext,
WsfStringId aState,
double aWavelength);
99 double mCurrentWavelengthLimit{1.0E+30};
102 size_t mDefaultStateIndex{0};
105 bool mInterpolateTables{
true};
106 InterpolationType mInterpolationType{InterpolationType::cLinear};
110 void ProcessInputState(UtInput& aInput, WsfStandardOpticalReflectivity& aObject);
112 void ProcessInputWavelengthLimit(UtInput& aInput, WsfStandardOpticalReflectivity& aObject);
114 void ProcessInputQuery(UtInput& aInput, WsfStandardOpticalReflectivity& aObject);
116 bool ProcessInputTableData(UtInput& aInput, WsfStandardOpticalReflectivity& aObject);
119 std::shared_ptr<SharedData> mSharedDataPtr{
new SharedData()};
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
virtual float GetOpticalReflectivity(double aSimTime, WsfStringId aStateId, double aWavelength, double aTgtToXmtrAz, double aTgtToXmtrEl, double aTgtToRcvrAz, double aTgtToRcvrEl)=0
WsfOpticalReflectivity * Clone() const override=0
WsfOpticalReflectivity()
Definition WsfOpticalReflectivity.cpp:22
bool ProcessInput(UtInput &aInput) override
Definition WsfSignature.cpp:74
virtual bool InitializeType()
Definition WsfSignature.cpp:40
virtual std::vector< WsfStringId > GetStateNames() const
get the list of all valid states belonging to the signature
Definition WsfSignature.hpp:43
virtual bool IsA_ValidState(WsfStringId aId) const
Definition WsfSignature.cpp:62
WsfStringId mStateId
Definition WsfStandardOpticalReflectivity.hpp:69
TableSet mTables
Definition WsfStandardOpticalReflectivity.hpp:70
State(WsfStringId aStateId)
Definition WsfStandardOpticalReflectivity.cpp:436
UtAzElTable * mTablePtr
A pointer to the actual table data for this table.
Definition WsfStandardOpticalReflectivity.hpp:57
double mWavelengthLimit
The upper wavelength to which this table applies.
Definition WsfStandardOpticalReflectivity.hpp:56
Table(double aWavelengthLimit, UtAzElTable *aTablePtr)
Definition WsfStandardOpticalReflectivity.cpp:429
const States & GetStates() const
Definition WsfStandardOpticalReflectivity.cpp:99
WsfStandardOpticalReflectivity()=default
bool InitializeType() override
Definition WsfStandardOpticalReflectivity.cpp:47
static WsfOpticalReflectivity * ObjectFactory(const std::string &aTypeName)
Factory method called by WsfOpticalReflectivityTypes.
Definition WsfStandardOpticalReflectivity.cpp:28
bool ProcessInput(UtInput &aInput) override
Definition WsfStandardOpticalReflectivity.cpp:64
std::vector< State > States
Definition WsfStandardOpticalReflectivity.hpp:73
std::vector< Table > TableSet
A 'TableSet' is just a collection of 'Table's.
Definition WsfStandardOpticalReflectivity.hpp:61