WSF
WsfCompositeOpticalSignature::Surface Class Reference

#include <WsfCompositeOpticalSignature.hpp>

Collaboration diagram for WsfCompositeOpticalSignature::Surface:

Classes

struct  RI_Input
 Input data to 'RadiantIntensity'. More...
struct  UG_Input
 Input data for 'UpdateGeometry'. More...
struct  UT_Input
 Input data for 'UpdateTemperature'. More...

Public Types

using MyMat3d = WsfCompositeOpticalSignature::MyMat3d

Public Member Functions

 Surface ()
 Surface (const Surface &aSrc)=default
virtual ~Surface ()=default
Surfaceoperator= (const Surface &aSrc)=delete
virtual SurfaceClone () const
virtual bool InitializeType (UtVec3d &aDefaultLocationECS)
virtual bool ProcessInput (UtInput &aInput)
virtual double ProjectedArea (const UtVec3d &aUnit_v) const
virtual double RadiantIntensity (const RI_Input &aInput) const
virtual double AdjacentArea (const UtVec3d &aOtherFaceLocECS, const UtVec3d &aOtherFaceNormalECS) const
virtual void CheckAdjacency (const Surface &aOther)
virtual void UpdatePlumeRadius (double aPlumeRadius)
virtual void UpdateGeometry (const UG_Input &aInput)
virtual void UpdateTemperature (const UT_Input &aInput)
bool AreAdjacent (const UtVec3d &aOtherFaceLocECS, const UtVec3d &aOtherFaceNormalECS, const UtVec3d &aMyFaceLocPCS, const UtVec3d &aMyFaceNormalPCS) const
bool UpdateSharedFaceArea (const Surface &aOther, const UtVec3d &aMyFaceLocPCS, const UtVec3d &aMyFaceNormalPCS, double aMaxSharedArea, double &aSharedArea)
void UpdateLocation (UtVec3d &aDefaultLocationECS, const UtVec3d &aSizeSCS, const UtVec3d &aOffsetSCS)
double UpdatePlumeBlockage (double aArea, double aCosTheta) const

Public Attributes

TemperatureType mTemperatureType {cTT_UNDEFINED}
TablePtr mTemperaturePtr {nullptr}
double mTemperatureOffset {0.0}
double mRecoveryFactor {0.85}
double mGamma {1.4}
UtVec3d mLocationECS {0.0, 0.0, 0.0}
bool mUseDefaultLocation {true}
MyMat3d mECS_ToSCS_Transform
double mTemperature {0.0}
MyMat3d mWCS_ToSCS_Transform
double mAftRadius {0.0}
double mPlumeRadius {0.0}
int mDebugLevel {0}

Detailed Description

A 'Surface' represents a surface on the platform. At the current time all surfaces represent 3-dimensional closed surfaces

Note
An implementation of a 'Surface' must not contain any data that can be modified after it is defined. Instances of these are shared between all instances of a particular signature type (hence the 'const' on ProjectedArea and ComputeTemperature'.)

Member Typedef Documentation

◆ MyMat3d

Constructor & Destructor Documentation

◆ Surface() [1/2]

◆ Surface() [2/2]

WsfCompositeOpticalSignature::Surface::Surface ( const Surface & aSrc)
default

References Surface().

◆ ~Surface()

virtual WsfCompositeOpticalSignature::Surface::~Surface ( )
virtualdefault

Member Function Documentation

◆ AdjacentArea()

double WsfCompositeOpticalSignature::Surface::AdjacentArea ( const UtVec3d & aOtherFaceLocECS,
const UtVec3d & aOtherFaceNormalECS ) const
virtual

Referenced by operator=(), and UpdateSharedFaceArea().

◆ AreAdjacent()

bool WsfCompositeOpticalSignature::Surface::AreAdjacent ( const UtVec3d & aOtherFaceLocECS,
const UtVec3d & aOtherFaceNormalECS,
const UtVec3d & aMyFaceLocPCS,
const UtVec3d & aMyFaceNormalPCS ) const

◆ CheckAdjacency()

void WsfCompositeOpticalSignature::Surface::CheckAdjacency ( const Surface & aOther)
virtual

References Surface().

Referenced by operator=().

◆ Clone()

WsfCompositeOpticalSignature::Surface * WsfCompositeOpticalSignature::Surface::Clone ( ) const
virtual

References Surface().

Referenced by operator=().

◆ InitializeType()

bool WsfCompositeOpticalSignature::Surface::InitializeType ( UtVec3d & aDefaultLocationECS)
virtual

◆ operator=()

Surface & WsfCompositeOpticalSignature::Surface::operator= ( const Surface & aSrc)
delete

◆ ProcessInput()

◆ ProjectedArea()

double WsfCompositeOpticalSignature::Surface::ProjectedArea ( const UtVec3d & aUnit_v) const
virtual

Compute the projected area of the surface in the direction of the viewer.

Parameters
aUnit_vThe WCS unit vector pointing from the platform towards the viewer
Returns
The projected area (m^2)

Referenced by operator=(), and RadiantIntensity().

◆ RadiantIntensity()

◆ UpdateGeometry()

void WsfCompositeOpticalSignature::Surface::UpdateGeometry ( const UG_Input & aInput)
virtual

Update the geometry of the surface. This updates the WCS->SCS transform. Derived classes may also update their shape definition, but they also have to make sure the WCS->SCS transform is updated.

Parameters
aInputThe reference data for computing the WCS->SCS transform.

References WsfCompositeOpticalSignature::MyMat3d::mMat, WsfCompositeOpticalSignature::Surface::UG_Input::mWCS_ToECS_Transform, and mWCS_ToSCS_Transform.

◆ UpdateLocation()

void WsfCompositeOpticalSignature::Surface::UpdateLocation ( UtVec3d & aDefaultLocationECS,
const UtVec3d & aSizeSCS,
const UtVec3d & aOffsetSCS )

Update the default location. If the surface did not have a location defined, this will set it to a default that uses the previous surface. It also updates the default location for the next surface.

The default works under the assumption that surfaces stack from +X to -X.

Parameters
aDefaultLocationECSOn input this is end location (most aft) of the previous surface. On output it will be updated with the end location of this surface.
aSizeSCSThe size of the bounding box in the SCS/PCS frame.
aOffsetSCSThe offset of the location from the centroid in the SCS/PCS frame.

References mAftRadius, mDebugLevel, mECS_ToSCS_Transform, mLocationECS, and mUseDefaultLocation.

◆ UpdatePlumeBlockage()

double WsfCompositeOpticalSignature::Surface::UpdatePlumeBlockage ( double aArea,
double aCosTheta ) const

Update the projected area of this surface to include blockage by the plume.

If the viewing angle is from the rear hemisphere then the plume blocks some of the surface before. Typically a plume surface is preceded by a cylinder surface. If the plume is active then the rear surface of the cylinder should not be included in the area. If the viewing angle is from the rear then the projected area will be updated to exclude the plume area.

Note that the plume may be of bigger or smaller radius than the rear of this surface.

Parameters
aAreacurrent projected area from this surface.
aCosThetaThe cosine of the viewing angle.
Returns
The updated area.

References mAftRadius, and mPlumeRadius.

◆ UpdatePlumeRadius()

virtual void WsfCompositeOpticalSignature::Surface::UpdatePlumeRadius ( double aPlumeRadius)
inlinevirtual

References mPlumeRadius.

◆ UpdateSharedFaceArea()

bool WsfCompositeOpticalSignature::Surface::UpdateSharedFaceArea ( const Surface & aOther,
const UtVec3d & aMyFaceLocPCS,
const UtVec3d & aMyFaceNormalPCS,
double aMaxSharedArea,
double & aSharedArea )

◆ UpdateTemperature()

Member Data Documentation

◆ mAftRadius

double WsfCompositeOpticalSignature::Surface::mAftRadius {0.0}

◆ mDebugLevel

int WsfCompositeOpticalSignature::Surface::mDebugLevel {0}

◆ mECS_ToSCS_Transform

MyMat3d WsfCompositeOpticalSignature::Surface::mECS_ToSCS_Transform

◆ mGamma

double WsfCompositeOpticalSignature::Surface::mGamma {1.4}

◆ mLocationECS

UtVec3d WsfCompositeOpticalSignature::Surface::mLocationECS {0.0, 0.0, 0.0}

◆ mPlumeRadius

double WsfCompositeOpticalSignature::Surface::mPlumeRadius {0.0}

◆ mRecoveryFactor

double WsfCompositeOpticalSignature::Surface::mRecoveryFactor {0.85}

◆ mTemperature

double WsfCompositeOpticalSignature::Surface::mTemperature {0.0}

◆ mTemperatureOffset

double WsfCompositeOpticalSignature::Surface::mTemperatureOffset {0.0}

◆ mTemperaturePtr

TablePtr WsfCompositeOpticalSignature::Surface::mTemperaturePtr {nullptr}

◆ mTemperatureType

TemperatureType WsfCompositeOpticalSignature::Surface::mTemperatureType {cTT_UNDEFINED}

◆ mUseDefaultLocation

bool WsfCompositeOpticalSignature::Surface::mUseDefaultLocation {true}

◆ mWCS_ToSCS_Transform

MyMat3d WsfCompositeOpticalSignature::Surface::mWCS_ToSCS_Transform

Referenced by Surface(), and UpdateGeometry().


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