12#ifndef WSFOPTICALBACKGROUND_HPP
13#define WSFOPTICALBACKGROUND_HPP
15#include "wsf_mil_export.h"
20#include "UtCalendar.hpp"
36 using BandList = std::vector<WsfEM_Types::OpticalBand>;
49 const UtVec3d& aViewerLoc,
50 const UtVec3d& aViewerDir,
51 const UtVec3d& aSunLoc,
52 const UtVec3d& aMoonLoc,
67 void UpdateSunMoonData(
double aSimTime);
69 double ReadRadianceValue(UtInput& aInput);
71 static void ComputeAndPrintBandData(
const char* aName,
72 double aLowerWavelength,
73 double aUpperWavelength,
76 ut::log::MessageStream& aStream);
81 double mBackgroundRadianceAboveHorizon;
84 double mBackgroundRadianceBelowHorizon;
87 double mLowerTransitionAngle;
90 double mUpperTransitionAngle;
96 bool mUseDynamicModel;
101 std::recursive_mutex mSunMoonUpdateMutex;
102 double mLastSunMoonUpdateTime;
103 UtCalendar mCurrentTime;
bool ProcessInput(UtInput &aInput)
Definition WsfOpticalEnvironment.cpp:211
double ComputePathRadiance(double aSimTime, const BandList &aBand, WsfSensorResult &aResult)
Definition WsfOpticalEnvironment.cpp:325
static double GetBlackbodyRadiance(const BandList &aBands, double aTemperature)
Definition WsfOpticalEnvironment.cpp:467
std::vector< WsfEM_Types::OpticalBand > BandList
Definition WsfOpticalEnvironment.hpp:36
static void GetWavelengthLimits(WsfEM_Types::OpticalBand aBand, double &aLowerWavelength, double &aUpperWavelength)
Definition WsfOpticalEnvironment.cpp:512
WsfOpticalEnvironment & operator=(const WsfOpticalEnvironment &)=delete
static double GetSolarRadiantIntensity(const BandList &aBands)
Definition WsfOpticalEnvironment.cpp:485
WsfOpticalEnvironment()
Definition WsfOpticalEnvironment.cpp:168
double ComputeBackgroundRadiance(double aSimTime, const BandList &aBands, WsfSensorResult &aResult, double &aSolarNoise)
Definition WsfOpticalEnvironment.cpp:265
static void PrintComputedData()
Definition WsfOpticalEnvironment.cpp:577
double ComputeDynamicBackgroundRadiance(const BandList &aBands, const UtVec3d &aViewerLoc, const UtVec3d &aViewerDir, const UtVec3d &aSunLoc, const UtVec3d &aMoonLoc, double &aSolarNoise)
Definition WsfOpticalEnvironment.cpp:331
bool Initialize(double aSimTime, WsfPlatform *aPlatformPtr)
Definition WsfOpticalEnvironment.cpp:202
Definition WsfSensorResult.hpp:27
OpticalBand
Definition WsfEM_Types.hpp:48