|
WSF
|
#include <WsfCompositeOpticalSignature.hpp>

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 |
| Surface & | operator= (const Surface &aSrc)=delete |
| virtual Surface * | Clone () 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} |
A 'Surface' represents a surface on the platform. At the current time all surfaces represent 3-dimensional closed surfaces
| WsfCompositeOpticalSignature::Surface::Surface | ( | ) |
References WsfCompositeOpticalSignature::cTT_UNDEFINED, mAftRadius, mDebugLevel, mECS_ToSCS_Transform, mGamma, mLocationECS, mPlumeRadius, mRecoveryFactor, mTemperature, mTemperatureOffset, mTemperaturePtr, mTemperatureType, mUseDefaultLocation, and mWCS_ToSCS_Transform.
Referenced by CheckAdjacency(), Clone(), operator=(), Surface(), and UpdateSharedFaceArea().
|
default |
References Surface().
|
virtualdefault |
|
virtual |
Referenced by operator=(), and UpdateSharedFaceArea().
| bool WsfCompositeOpticalSignature::Surface::AreAdjacent | ( | const UtVec3d & | aOtherFaceLocECS, |
| const UtVec3d & | aOtherFaceNormalECS, | ||
| const UtVec3d & | aMyFaceLocPCS, | ||
| const UtVec3d & | aMyFaceNormalPCS ) const |
References mECS_ToSCS_Transform, and mLocationECS.
|
virtual |
References Surface().
Referenced by operator=().
|
virtual |
References Surface().
Referenced by operator=().
|
virtual |
References WsfCompositeOpticalSignature::cTT_UNDEFINED, mTemperatureType, and ok.
Referenced by operator=().
References AdjacentArea(), CheckAdjacency(), Clone(), InitializeType(), ProcessInput(), ProjectedArea(), RadiantIntensity(), and Surface().
|
virtual |
References WsfCompositeOpticalSignature::cIV_ALTITUDE, WsfCompositeOpticalSignature::cIV_MACH, WsfCompositeOpticalSignature::cIV_SPEED, WsfCompositeOpticalSignature::cIV_THROTTLE, WsfCompositeOpticalSignature::cIV_TIME, WsfCompositeOpticalSignature::cTT_ADIABATIC_WALL, WsfCompositeOpticalSignature::cTT_AMBIENT, WsfCompositeOpticalSignature::cTT_TABLE, mGamma, mLocationECS, mRecoveryFactor, mTemperatureOffset, mTemperaturePtr, mTemperatureType, and mUseDefaultLocation.
Referenced by operator=().
|
virtual |
Compute the projected area of the surface in the direction of the viewer.
| aUnit_v | The WCS unit vector pointing from the platform towards the viewer |
Referenced by operator=(), and RadiantIntensity().
|
virtual |
|
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.
| aInput | The reference data for computing the WCS->SCS transform. |
References WsfCompositeOpticalSignature::MyMat3d::mMat, WsfCompositeOpticalSignature::Surface::UG_Input::mWCS_ToECS_Transform, and mWCS_ToSCS_Transform.
| 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.
| aDefaultLocationECS | On input this is end location (most aft) of the previous surface. On output it will be updated with the end location of this surface. |
| aSizeSCS | The size of the bounding box in the SCS/PCS frame. |
| aOffsetSCS | The offset of the location from the centroid in the SCS/PCS frame. |
References mAftRadius, mDebugLevel, mECS_ToSCS_Transform, mLocationECS, and mUseDefaultLocation.
| 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.
| aArea | current projected area from this surface. |
| aCosTheta | The cosine of the viewing angle. |
References mAftRadius, and mPlumeRadius.
|
inlinevirtual |
References mPlumeRadius.
| bool WsfCompositeOpticalSignature::Surface::UpdateSharedFaceArea | ( | const Surface & | aOther, |
| const UtVec3d & | aMyFaceLocPCS, | ||
| const UtVec3d & | aMyFaceNormalPCS, | ||
| double | aMaxSharedArea, | ||
| double & | aSharedArea ) |
References AdjacentArea(), mECS_ToSCS_Transform, mLocationECS, and Surface().
|
virtual |
References WsfCompositeOpticalSignature::cIV_MACH, WsfCompositeOpticalSignature::cTT_ADIABATIC_WALL, WsfCompositeOpticalSignature::Surface::UT_Input::mAdiabaticAdjustmentFactor, WsfCompositeOpticalSignature::Surface::UT_Input::mAmbientTemperature, mGamma, WsfCompositeOpticalSignature::Surface::UT_Input::mLookupArgs, mRecoveryFactor, mTemperature, mTemperatureOffset, mTemperaturePtr, and mTemperatureType.
| double WsfCompositeOpticalSignature::Surface::mAftRadius {0.0} |
Referenced by Surface(), UpdateLocation(), and UpdatePlumeBlockage().
| int WsfCompositeOpticalSignature::Surface::mDebugLevel {0} |
Referenced by RadiantIntensity(), Surface(), and UpdateLocation().
| MyMat3d WsfCompositeOpticalSignature::Surface::mECS_ToSCS_Transform |
Referenced by AreAdjacent(), Surface(), UpdateLocation(), and UpdateSharedFaceArea().
| double WsfCompositeOpticalSignature::Surface::mGamma {1.4} |
Referenced by ProcessInput(), Surface(), and UpdateTemperature().
| UtVec3d WsfCompositeOpticalSignature::Surface::mLocationECS {0.0, 0.0, 0.0} |
Referenced by AreAdjacent(), ProcessInput(), Surface(), UpdateLocation(), and UpdateSharedFaceArea().
| double WsfCompositeOpticalSignature::Surface::mPlumeRadius {0.0} |
Referenced by Surface(), UpdatePlumeBlockage(), and UpdatePlumeRadius().
| double WsfCompositeOpticalSignature::Surface::mRecoveryFactor {0.85} |
Referenced by ProcessInput(), Surface(), and UpdateTemperature().
| double WsfCompositeOpticalSignature::Surface::mTemperature {0.0} |
Referenced by RadiantIntensity(), Surface(), and UpdateTemperature().
| double WsfCompositeOpticalSignature::Surface::mTemperatureOffset {0.0} |
Referenced by ProcessInput(), Surface(), and UpdateTemperature().
| TablePtr WsfCompositeOpticalSignature::Surface::mTemperaturePtr {nullptr} |
Referenced by ProcessInput(), Surface(), and UpdateTemperature().
| TemperatureType WsfCompositeOpticalSignature::Surface::mTemperatureType {cTT_UNDEFINED} |
Referenced by InitializeType(), ProcessInput(), Surface(), and UpdateTemperature().
| bool WsfCompositeOpticalSignature::Surface::mUseDefaultLocation {true} |
Referenced by ProcessInput(), Surface(), and UpdateLocation().
| MyMat3d WsfCompositeOpticalSignature::Surface::mWCS_ToSCS_Transform |
Referenced by Surface(), and UpdateGeometry().