WSF
WsfFieldOfView Class Referenceabstract

#include <WsfFieldOfView.hpp>

Inheritance diagram for WsfFieldOfView:

Public Member Functions

virtual bool ProcessInput (UtInput &aInput)
virtual bool Initialize (const WsfArticulatedPart &aArticulatedPart)
const char * GetScriptClassName () const override
virtual WsfFieldOfViewClone () const =0

Field-of-regard methods.

virtual bool WithinFieldOfView (double aThisToTgtAz, double aThisToTgtEl)=0
virtual bool WithinFieldOfView (WsfArticulatedPart *aArticulatedPart, double aTgtLocWCS[3], double aEarthRadiusMultiplier, double &aTrueThisToTgtAz, double &aTrueThisToTgtEl, double aApparentThisToTgtLocWCS[3], double &aApparentThisToTgtAz, double &aApparentThisToTgtEl, double aApparentTgtToThisLocWCS[3])
 Compute azimuth and elevation of the target and determine if it is within the field of view.
virtual bool WithinFieldOfView (WsfEM_Antenna *aAntennaPtr, double aTgtLocWCS[3], double aEarthRadiusMultiplier, double &aTrueThisToTgtAz, double &aTrueThisToTgtEl, double aApparentThisToTgtLocWCS[3], double &aApparentThisToTgtAz, double &aApparentThisToTgtEl, double aApparentTgtToThisLocWCS[3])
 Compute azimuth and elevation of the target and determine if it is within the field of view.
virtual bool GetAzimuthFieldOfView (double &aMinAzFOV, double &aMaxAzFOV) const
virtual bool GetElevationFieldOfView (double &aMinElFOV, double &aMaxElFOV) const
virtual bool SetAzimuthFieldOfView (double aMinAzFOV, double aMaxAzFOV)
virtual bool SetElevationFieldOfView (double aMinElFOV, double aMaxElFOV)
const WsfStringIdGetType () const
void SetType (const WsfStringId &aType)
 Set the type corresponding with the type of derived class.
const WsfArticulatedPartGetArticulatedPart () const

Detailed Description

A class that represents a field-of-view / field-of-regard methods. This class is abstract in that the developer is required to implement the WithinFieldOfView(double aThisToTgtAz, double aThisToTgtEl) and Clone(WsfEM_Antenna& aAntenna) methods. Implementations are provided for rectangular, circular, and polygonal fields of view. The WsfAntenna class aggregates the field of view. By default a rectangular field of view is assumed, as this was the only option available prior to AFSIM 2.1.0 Legacy methods for GetAzimuthFieldOfView(), etc. are retained, as some sensors may assume the rectangular FOV.

Member Function Documentation

◆ Clone()

virtual WsfFieldOfView * WsfFieldOfView::Clone ( ) const
pure virtual

Make a copy of this object.

Returns
The copy of "this" object.

Implemented in WsfCircularFieldOfView, WsfEquatorialFieldOfView, WsfPolygonalFieldOfView, and WsfRectangularFieldOfView.

◆ GetArticulatedPart()

const WsfArticulatedPart * WsfFieldOfView::GetArticulatedPart ( ) const
inlineprotected

◆ GetAzimuthFieldOfView()

virtual bool WsfFieldOfView::GetAzimuthFieldOfView ( double & aMinAzFOV,
double & aMaxAzFOV ) const
inlinevirtual

Return the azimuth field of view limits, if applicable.

Parameters
aMinAzFOVThe minimum azimuth field-of-view limit.
aMaxAzFOVThe maximum azimuth field-of-view limit.
Returns
True if the limits apply to the field-of-view type; false otherwise.

Reimplemented in WsfCircularFieldOfView, and WsfRectangularFieldOfView.

◆ GetElevationFieldOfView()

virtual bool WsfFieldOfView::GetElevationFieldOfView ( double & aMinElFOV,
double & aMaxElFOV ) const
inlinevirtual

Return the elevation field of view limits, if applicable.

Parameters
aMinElFOVThe minimum elevation field-of-view limit.
aMaxElFOVThe maximum elevation field-of-view limit.
Returns
True if the limits apply to the field-of-view type; false otherwise.

Reimplemented in WsfCircularFieldOfView, and WsfRectangularFieldOfView.

◆ GetScriptClassName()

const char * WsfFieldOfView::GetScriptClassName ( ) const
inlineoverride

◆ GetType()

const WsfStringId & WsfFieldOfView::GetType ( ) const
inline

Return the type of field of view (i.e., "rectangular", "circular", "polygonal", etc.)

Returns
A string corresponding with the field-of-view type.

◆ Initialize()

bool WsfFieldOfView::Initialize ( const WsfArticulatedPart & aArticulatedPart)
virtual

Provide initialization of the field of view object.

Parameters
aArticulatedPartThe articulated part on which the field of view is being defined.
Returns
Whether the initialization was successful.

Reimplemented in WsfPolygonalFieldOfView.

Referenced by WsfPolygonalFieldOfView::Initialize().

◆ ProcessInput()

bool WsfFieldOfView::ProcessInput ( UtInput & aInput)
virtual

Process input from an input object.

Parameters
aInputThe input source.
Returns
Whether the current input commands were processed in this method.

Reimplemented in WsfCircularFieldOfView, WsfEquatorialFieldOfView, WsfPolygonalFieldOfView, and WsfRectangularFieldOfView.

◆ SetAzimuthFieldOfView()

virtual bool WsfFieldOfView::SetAzimuthFieldOfView ( double aMinAzFOV,
double aMaxAzFOV )
inlinevirtual

Set the azimuth field of view limits, if applicable.

Parameters
aMinAzFOVThe minimum azimuth field-of-view limit.
aMaxAzFOVThe maximum azimuth field-of-view limit.
Returns
True if the limits apply to the field-of-view type; false otherwise.

Reimplemented in WsfRectangularFieldOfView.

Referenced by UT_DEFINE_SCRIPT_METHOD().

◆ SetElevationFieldOfView()

virtual bool WsfFieldOfView::SetElevationFieldOfView ( double aMinElFOV,
double aMaxElFOV )
inlinevirtual

Set the elevation field of view limits, if applicable.

Parameters
aMinElFOVThe minimum elevation field-of-view limit.
aMaxElFOVThe maximum elevation field-of-view limit.
Returns
True if the limits apply to the field-of-view type; false otherwise.

Reimplemented in WsfRectangularFieldOfView.

◆ SetType()

void WsfFieldOfView::SetType ( const WsfStringId & aType)
inlineprotected

◆ WithinFieldOfView() [1/3]

virtual bool WsfFieldOfView::WithinFieldOfView ( double aThisToTgtAz,
double aThisToTgtEl )
pure virtual

Is the target within the field-of-view?

Parameters
aThisToTgtAz[input] Azimuth of the target with respect to the device (radians).
aThisToTgtEl[input] Elevation of the target with respect to the device (radians).
Returns
'true' if within the field of view or 'false' if not.

Implemented in WsfCircularFieldOfView, WsfEquatorialFieldOfView, WsfPolygonalFieldOfView, and WsfRectangularFieldOfView.

References WithinFieldOfView().

Referenced by WithinFieldOfView(), WithinFieldOfView(), and WithinFieldOfView().

◆ WithinFieldOfView() [2/3]

bool WsfFieldOfView::WithinFieldOfView ( WsfArticulatedPart * aArticulatedPartPtr,
double aTgtLocWCS[3],
double aEarthRadiusMultiplier,
double & aTrueThisToTgtAz,
double & aTrueThisToTgtEl,
double aApparentThisToTgtLocWCS[3],
double & aApparentThisToTgtAz,
double & aApparentThisToTgtEl,
double aApparentTgtToThisLocWCS[3] )
virtual

Compute azimuth and elevation of the target and determine if it is within the field of view.

This method computes the azimuth and elevation angles for a target wrt to the articulated part. The 'true' values are computed using the actual geometric coordinates. The 'apparent' values are those computed using the 'Earth Radius Multiplier', which simulates the effects of atmospheric refraction.

Parameters
aArticulatedPartPtr[input] The source articulated part.
aTgtLocWCS[input] A target WCS position.
aEarthRadiusMultiplier[input] A scale factor to be applied to the Earth's radius to simulate the effect of atmospheric refraction.
aTrueThisToTgtAz[output] The true (geometric) azimuth of the target with respect to the antenna coordinate system (radians).
aTrueThisToTgtEl[output] The true (geometric) elevation of the target with respect to the antenna coordinate system (radians).
aApparentThisToTgtLocWCS[output] The WCS vector from the antenna to the apparent position of the target (meters).
aApparentThisToTgtAz[output] The azimuth of the apparent target with respect to the antenna coordinate system (radians).
aApparentThisToTgtEl[output] The elevation of the apparent target with respect to the antenna coordinate system (radians).
aApparentTgtToThisLocWCS[output] The WCS vector from the target to the apparent position of the antenna (meters).
Returns
'true' if within the field of view or 'false' if not.
Note
Sorry this has so many arguments, but various routine need these values and they are too expensive to recompute.

References WsfEM_Util::ComputeApparentPosition(), and WithinFieldOfView().

◆ WithinFieldOfView() [3/3]

bool WsfFieldOfView::WithinFieldOfView ( WsfEM_Antenna * aAntennaPtr,
double aTgtLocWCS[3],
double aEarthRadiusMultiplier,
double & aTrueThisToTgtAz,
double & aTrueThisToTgtEl,
double aApparentThisToTgtLocWCS[3],
double & aApparentThisToTgtAz,
double & aApparentThisToTgtEl,
double aApparentTgtToThisLocWCS[3] )
virtual

Compute azimuth and elevation of the target and determine if it is within the field of view.

This method computes the azimuth and elevation angles for a target wrt to the antenna. The 'true' values are computed using the actual geometric coordinates. The 'apparent' values are those computed using the 'Earth Radius Multiplier', which simulates the effects of atmospheric refraction.

Parameters
aAntennaPtr[input] A source antenna.
aTgtLocWCS[input] A target WCS position.
aEarthRadiusMultiplier[input] A scale factor to be applied to the Earth's radius to simulate the effect of atmospheric refraction.
aTrueThisToTgtAz[output] The true (geometric) azimuth of the target with respect to the antenna coordinate system (radians).
aTrueThisToTgtEl[output] The true (geometric) elevation of the target with respect to the antenna coordinate system (radians).
aApparentThisToTgtLocWCS[output] The WCS vector from the antenna to the apparent position of the target (meters).
aApparentThisToTgtAz[output] The azimuth of the apparent target with respect to the antenna coordinate system (radians).
aApparentThisToTgtEl[output] The elevation of the apparent target with respect to the antenna coordinate system (radians).
aApparentTgtToThisLocWCS[output] The WCS vector from the target to the apparent position of the antenna (meters).
Returns
'true' if within the field of view or 'false' if not.
Note
Sorry this has so many arguments, but various routine need these values and they are too expensive to recompute.

References WsfEM_Util::ComputeApparentPosition(), WsfEM_Antenna::ComputeAspect(), WsfEM_Antenna::GetLocationLLA(), WsfEM_Antenna::GetLocationWCS(), and WithinFieldOfView().


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