WSF
WsfOpticalSignature Class Referenceabstract

An object that represents the optical signature of a platform. More...

#include <WsfOpticalSignature.hpp>

Inheritance diagram for WsfOpticalSignature:
Collaboration diagram for WsfOpticalSignature:

Public Types

enum  { cSIGNATURE_INDEX = 1 }
Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.

Public Member Functions

 WsfOpticalSignature ()
WsfOpticalSignatureClone () const override=0
virtual float GetSignature (double aSimTime, WsfStringId aStateId, double aAzimuth, double aElevation)=0
Public Member Functions inherited from WsfSignature
 WsfSignature ()
 WsfSignature (const WsfSignature &aSrc)
WsfSignatureoperator= (const WsfSignature &)=delete
 ~WsfSignature () override=default
virtual bool InitializeType ()
virtual bool Initialize (double aSimTime, WsfPlatform *aPlatformPtr)
virtual bool IsA_ValidState (WsfStringId aId) const
virtual std::vector< WsfStringIdGetStateNames () const
 get the list of all valid states belonging to the signature
bool ProcessInput (UtInput &aInput) override
bool RequiresPlatform () const
 indicates that a signature can be queried without a valid mPlatform
Public Member Functions inherited from WsfObject
 WsfObject ()
 This is the constructor for the WsfObject class.
 ~WsfObject () override
 This is the destructor for the WsfObject class.
const char * GetScriptClassName () const override
const std::string & GetType () const
WsfStringId GetTypeId () const
 Get the string ID of the 'type' of the object.
void SetType (WsfStringId aType)
const std::string & GetBaseType () const
WsfStringId GetBaseTypeId () const
const TypeListGetTypeList () const
bool IsA_TypeOf (WsfStringId aType) const
WsfObjectoperator= (const WsfObject &aRhs)
 Assignment operator.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
const std::string & GetName () const
WsfStringId GetNameId () const
void SetName (WsfStringId aName)

New interface methods to get the projected area and radiant intensity.

These methods may be implemented by derived implementations to provide a more complete implementation of the 'signature' within the optical spectrum.

using BandList = std::vector<WsfEM_Types::OpticalBand>
virtual bool GetProjectedArea (double aSimTime, WsfStringId aStateId, double aAzimuth, double aElevation, double &aProjectedArea)
virtual bool GetRadiantIntensity (double aSimTime, WsfStringId aState, const BandList &aBands, double aAzimuth, double aElevation, double &aRadiantIntensity)
bool UsesInherentContrast () const

Methods to support the actual interface on the platform.

These methods provide the interface from the sensor model to the signature.

The user makes calls like WsfOpticalSignature::GetSignature(...).

static WsfStringId GetInputType (WsfPlatform *aPlatformPtr)
static WsfStringId GetState (WsfPlatform *aPlatformPtr)
static bool SetState (WsfPlatform *aPlatformPtr, WsfStringId aState)
static float GetScaleFactor (WsfPlatform *aPlatformPtr)
static bool SetScaleFactor (WsfPlatform *aPlatformPtr, float aScaleFactor)
static float GetValue (double aSimTime, WsfPlatform *aPlatformPtr, double aAzimuth, double aElevation)
static bool GetProjectedArea (double aSimTime, WsfPlatform *aPlatformPtr, double aAzimuth, double aElevation, double &aProjectedArea)
static bool GetRadiantIntensity (double aSimTime, WsfPlatform *aPlatformPtr, const BandList &aBands, double aAzimuth, double aElevation, double &aRadiantIntensity)
static bool UsesInherentContrast (WsfPlatform *aPlatformPtr)
static void RegisterScriptMethods (UtScriptTypes &aScriptTypes)
static void RegisterInterface (WsfScenario &aScenario)
 Register the platform interface object on the prototype signature list in the specified scenario.
void SetInherentContrast (bool aContrast)

Additional Inherited Members

 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).
Static Protected Member Functions inherited from WsfSignature
template<class SignatureState, WsfStringId SignatureState::* IdMember, typename Iterator>
static std::vector< WsfStringIdGetStateNamesP (Iterator aBegin, Iterator aEnd)
Protected Attributes inherited from WsfSignature
WsfPlatformmPlatformPtr
double mBaseTime
bool mRequiresPlatform {false}

Detailed Description

An object that represents the optical signature of a platform.

Member Typedef Documentation

◆ BandList

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
cSIGNATURE_INDEX 

Index of signature within WsfSignatureList (must be unique).

Constructor & Destructor Documentation

◆ WsfOpticalSignature()

Member Function Documentation

◆ Clone()

WsfOpticalSignature * WsfOpticalSignature::Clone ( ) const
overridepure virtual

Return a copy of this object. Must be implemented by all derived types. If cloning is impossible, a WsfUncloneableException should be thrown.

Implements WsfObject.

Implemented in WsfCompositeOpticalSignature, WsfSpaceOpticalSignature, and WsfStandardOpticalSignature.

References WsfOpticalSignature().

◆ GetInputType()

WsfStringId WsfOpticalSignature::GetInputType ( WsfPlatform * aPlatformPtr)
static

Get the input type of the signature.

Parameters
aPlatformPtr[input] The pointer to the platform containing the signature.
Returns
The current signature state.

References cSIGNATURE_INDEX, WsfSignatureList::GetInputType(), and WsfPlatform::GetSignatureList().

◆ GetProjectedArea() [1/2]

bool WsfOpticalSignature::GetProjectedArea ( double aSimTime,
WsfPlatform * aPlatformPtr,
double aAzimuth,
double aElevation,
double & aProjectedArea )
static

Get the projected area of the platform from a specified aspect angle.

Parameters
aSimTime[input] The current simulation time.
aPlatformPtr[input] The platform from which the projected area is to be retrieved.
aAzimuth[input] azimuth of the observer with respect to this platform (radians).
aElevation[input] elevation of the observer with respect to this platform (radians).
aProjectedArea[output] The projected area of platform (m^2).
Returns
true if successful, false if not.

References cSIGNATURE_INDEX, GetProjectedArea(), WsfPlatform::GetSignatureList(), GetValue(), and WsfOpticalSignature().

◆ GetProjectedArea() [2/2]

bool WsfOpticalSignature::GetProjectedArea ( double aSimTime,
WsfStringId aStateId,
double aAzimuth,
double aElevation,
double & aProjectedArea )
virtual

◆ GetRadiantIntensity() [1/2]

bool WsfOpticalSignature::GetRadiantIntensity ( double aSimTime,
WsfPlatform * aPlatformPtr,
const BandList & aBands,
double aAzimuth,
double aElevation,
double & aRadiantIntensity )
static

Get the radiant intensity of the platform within a specified band from a specified aspect angle.

Parameters
aSimTime[input] The current simulation time.
aPlatformPtr[input] The platform from which the radiant intensity is to be retrieved.
aBands[input] The list of bands that represent the region of interest within the the optical spectrum.
aAzimuth[input] azimuth of the observer with respect to this platform (radians).
aElevation[input] elevation of the observer with respect to this platform (radians).
aRadiantIntensity[output] The radiant intensity of platform (W/sr).
Returns
true if successful, false if not.

References cSIGNATURE_INDEX, GetRadiantIntensity(), WsfPlatform::GetSignatureList(), ok, and WsfOpticalSignature().

◆ GetRadiantIntensity() [2/2]

bool WsfOpticalSignature::GetRadiantIntensity ( double aSimTime,
WsfStringId aState,
const BandList & aBands,
double aAzimuth,
double aElevation,
double & aRadiantIntensity )
virtual

◆ GetScaleFactor()

float WsfOpticalSignature::GetScaleFactor ( WsfPlatform * aPlatformPtr)
static

Get the signature scale factor.

Parameters
aPlatformPtr[input] The pointer to the platform containing the signature.
Returns
The signature scale factor.

References cSIGNATURE_INDEX, WsfSignatureList::GetScaleFactor(), and WsfPlatform::GetSignatureList().

◆ GetSignature()

virtual float WsfOpticalSignature::GetSignature ( double aSimTime,
WsfStringId aStateId,
double aAzimuth,
double aElevation )
pure virtual

Get the optical signature for a given set of conditions.

Parameters
aSimTime[input] The current simulation time.
aStateId[input] The string ID representing the signature state to be used.
aAzimuth[input] The azimuth of the observer with respect to the target.
aElevation[input] The elevation of the observer with respect to the target.
Returns
The optical cross section (m^2)

Implemented in WsfCompositeOpticalSignature, WsfSpaceOpticalSignature, and WsfStandardOpticalSignature.

References GetProjectedArea().

Referenced by GetValue().

◆ GetState()

WsfStringId WsfOpticalSignature::GetState ( WsfPlatform * aPlatformPtr)
static

Get the current signature state.

Parameters
aPlatformPtr[input] The pointer to the platform containing the signature.
Returns
The current signature state.

References cSIGNATURE_INDEX, WsfPlatform::GetSignatureList(), and WsfSignatureList::GetState().

◆ GetValue()

float WsfOpticalSignature::GetValue ( double aSimTime,
WsfPlatform * aPlatformPtr,
double aAzimuth,
double aElevation )
static

Get the signature value for a set of conditions.

Parameters
aSimTime[input] The current simulation time.
aPlatformPtr[input] The platform from which the signature is to be retrieved.
aAzimuth[input] azimuth of the observer with respect to this platform (radians).
aElevation[input] elevation of the observer with respect to this platform (radians).
Returns
The optical signature.

References cSIGNATURE_INDEX, WsfPlatform::GetHeight(), WsfPlatform::GetLength(), WsfObject::GetName(), GetSignature(), WsfPlatform::GetSignatureList(), WsfObject::GetType(), WsfPlatform::GetWidth(), and WsfOpticalSignature().

Referenced by WsfBeamDirector::WsfBeamDirectorMode::AttemptToDetect(), WsfEOIR_Sensor::EOIR_Mode::AttemptToDetect(), WsfLADAR_Sensor::LADAR_Mode::AttemptToDetect(), WsfOpticalSensor::OpticalMode::AttemptToDetect(), WsfSAR_Sensor::SAR_Mode::AttemptToDetect(), WsfEOIR_IRST_SensorMode::AttemptToDetectInfrared(), WsfEOIR_IRST_SensorMode::AttemptToDetectVisual(), and GetProjectedArea().

◆ RegisterInterface()

void WsfOpticalSignature::RegisterInterface ( WsfScenario & aScenario)
static

Register the platform interface object on the prototype signature list in the specified scenario.

References WsfSignatureList::AddInterface(), cSIGNATURE_INDEX, and WsfScenario::GetSignatureListPrototype().

Referenced by WsfOpticalSignatureTypes::WsfOpticalSignatureTypes().

◆ RegisterScriptMethods()

void WsfOpticalSignature::RegisterScriptMethods ( UtScriptTypes & aScriptTypes)
static

Register the script methods associated with this class.

Note
The WsfPlatform script class must be defined before calling this method.

Referenced by WsfMilScriptExtensions::ExtendScriptClasses().

◆ SetInherentContrast()

void WsfOpticalSignature::SetInherentContrast ( bool aContrast)
inlineprotected

◆ SetScaleFactor()

bool WsfOpticalSignature::SetScaleFactor ( WsfPlatform * aPlatformPtr,
float aScaleFactor )
static

Set the signature scale factor.

Parameters
aPlatformPtr[input] The pointer to the platform containing the signature.
aScaleFactor[input] The new signature scale factor.
Returns
true if successful, false if and error occurred.

References cSIGNATURE_INDEX, WsfPlatform::GetSignatureList(), and WsfSignatureList::SetScaleFactor().

◆ SetState()

bool WsfOpticalSignature::SetState ( WsfPlatform * aPlatformPtr,
WsfStringId aState )
static

Set the signatures state

Parameters
aPlatformPtr[input] The pointer to the platform containing the signature.
aState[input] The new signatures state.
Returns
true if successful, false if and error occurred.

References cSIGNATURE_INDEX, WsfPlatform::GetSignatureList(), and WsfSignatureList::SetState().

◆ UsesInherentContrast() [1/2]

bool WsfOpticalSignature::UsesInherentContrast ( ) const
inline

◆ UsesInherentContrast() [2/2]

bool WsfOpticalSignature::UsesInherentContrast ( WsfPlatform * aPlatformPtr)
static

Returns whether the signature of the platform uses inherent_contrast, or ignores it.

Parameters
aPlatformPtr[input] The platform from which the signature is pulled.
Returns
true if the signature uses inherent_contrast

References cSIGNATURE_INDEX, WsfSignatureList::GetInterface(), WsfPlatform::GetSignatureList(), and WsfOpticalSignature().


The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved