WSF
WsfOpticalSignature.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 WSFOPTICALSIGNATURE_HPP
13#define WSFOPTICALSIGNATURE_HPP
14
15#include "wsf_mil_export.h"
16
17#include <vector>
18
19class UtScriptTypes;
20#include "WsfEM_Types.hpp"
21class WsfPlatform;
22class WsfScenario;
23#include "WsfSignature.hpp"
24
26class WSF_MIL_EXPORT WsfOpticalSignature : public WsfSignature
27{
28public:
29 enum
30 {
32 };
33
35 WsfOpticalSignature* Clone() const override = 0;
36
44 virtual float GetSignature(double aSimTime, WsfStringId aStateId, double aAzimuth, double aElevation) = 0;
45
49
50 virtual bool
51 GetProjectedArea(double aSimTime, WsfStringId aStateId, double aAzimuth, double aElevation, double& aProjectedArea);
52
53 using BandList = std::vector<WsfEM_Types::OpticalBand>;
54
55 virtual bool GetRadiantIntensity(double aSimTime,
56 WsfStringId aState,
57 const BandList& aBands,
58 double aAzimuth,
59 double aElevation,
60 double& aRadiantIntensity);
61
62 bool UsesInherentContrast() const { return mUsesInherentContrast; }
64
69
70 static WsfStringId GetInputType(WsfPlatform* aPlatformPtr);
71
72 static WsfStringId GetState(WsfPlatform* aPlatformPtr);
73
74 static bool SetState(WsfPlatform* aPlatformPtr, WsfStringId aState);
75
76 static float GetScaleFactor(WsfPlatform* aPlatformPtr);
77
78 static bool SetScaleFactor(WsfPlatform* aPlatformPtr, float aScaleFactor);
79
80 static float GetValue(double aSimTime, WsfPlatform* aPlatformPtr, double aAzimuth, double aElevation);
81
82 static bool GetProjectedArea(double aSimTime,
83 WsfPlatform* aPlatformPtr,
84 double aAzimuth,
85 double aElevation,
86 double& aProjectedArea);
87
88 static bool GetRadiantIntensity(double aSimTime,
89 WsfPlatform* aPlatformPtr,
90 const BandList& aBands,
91 double aAzimuth,
92 double aElevation,
93 double& aRadiantIntensity);
94
95 static bool UsesInherentContrast(WsfPlatform* aPlatformPtr);
97
98 static void RegisterScriptMethods(UtScriptTypes& aScriptTypes);
99 static void RegisterInterface(WsfScenario& aScenario);
100
101protected:
102 void SetInherentContrast(bool aContrast) { mUsesInherentContrast = aContrast; }
103
104private:
105 bool mUsesInherentContrast = true;
106};
107
108#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
An object that represents the optical signature of a platform.
Definition WsfOpticalSignature.hpp:27
bool UsesInherentContrast() const
Definition WsfOpticalSignature.hpp:62
void SetInherentContrast(bool aContrast)
Definition WsfOpticalSignature.hpp:102
WsfOpticalSignature * Clone() const override=0
virtual bool GetRadiantIntensity(double aSimTime, WsfStringId aState, const BandList &aBands, double aAzimuth, double aElevation, double &aRadiantIntensity)
Definition WsfOpticalSignature.cpp:97
virtual float GetSignature(double aSimTime, WsfStringId aStateId, double aAzimuth, double aElevation)=0
std::vector< WsfEM_Types::OpticalBand > BandList
Definition WsfOpticalSignature.hpp:53
@ cSIGNATURE_INDEX
Index of signature within WsfSignatureList (must be unique).
Definition WsfOpticalSignature.hpp:31
virtual bool GetProjectedArea(double aSimTime, WsfStringId aStateId, double aAzimuth, double aElevation, double &aProjectedArea)
Definition WsfOpticalSignature.cpp:87
WsfOpticalSignature()
Definition WsfOpticalSignature.cpp:32
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
WsfSignature()
Definition WsfSignature.cpp:19
Copyrights Multiple, All Rights Reserved