|
WSF
|
#include <WsfEM_Attenuation.hpp>


Public Member Functions | |
| WsfEM_Attenuation () | |
| ~WsfEM_Attenuation () override | |
| WsfEM_Attenuation * | Clone () const override=0 |
| virtual bool | Initialize (WsfEM_XmtrRcvr *aXmtrRcvrPtr) |
| virtual bool | Initialize (WsfEM_Xmtr *aXmtrPtr) |
| bool | ProcessInput (UtInput &aInput) override |
| const char * | GetScriptClassName () const override |
| bool | DebugEnabled () const |
| Is 'debug' enabled? | |
| virtual bool | IsNullModel () const |
| virtual bool | AcceptsInlineBlockInput () const |
| virtual double | ComputeAttenuationFactor (WsfEM_Interaction &aInteraction, WsfEnvironment &aEnvironment, WsfEM_Interaction::Geometry aGeometry) |
| 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 TypeList & | GetTypeList () const |
| bool | IsA_TypeOf (WsfStringId aType) const |
| WsfObject & | operator= (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) |
Protected Member Functions | |
| WsfEM_Attenuation (const WsfEM_Attenuation &aSrc) | |
| virtual double | ComputeAttenuationFactorP (double aRange, double aElevation, double aAltitude, double aFrequency) |
| void | GetAltitudesAndGroundRange (WsfEM_Interaction &aInteraction, WsfEM_Interaction::Geometry aGeometry, double &aAltitude1, double &aAltitude2, double &aGroundRange) |
| void | GetRangeElevationAltitude (WsfEM_Interaction &aInteraction, WsfEM_Interaction::Geometry aGeometry, double &aRange, double &aElevation, double &aAltitude) |
| WsfObject (const WsfObject &aSrc) | |
| Copy constructor (for Clone()). | |
Protected Attributes | |
| bool | mDebugEnabled |
| bool | mSortEndPoints |
Additional Inherited Members | |
| Public Types inherited from WsfObject | |
| typedef std::vector< WsfStringId > | TypeList |
| The list of types returned by GetTypeList. | |
Base Class definition for the Atmospheric Attenuation (Absorption) Model. Returns a factor that indicates no attenuation by default.
| WsfEM_Attenuation::WsfEM_Attenuation | ( | ) |
References mDebugEnabled, mSortEndPoints, and WsfObject::WsfObject().
Referenced by Clone(), WsfEM_BlakeAttenuation::Clone(), WsfEM_EARCE_Attenuation::Clone(), WsfEM_ITU_Attenuation::Clone(), WsfEM_RF_Type1Attenuation::Clone(), WsfEM_SimpleAttenuation::Clone(), WsfOpticalAttenuation::Clone(), WsfTabularAttenuation::Clone(), WsfEM_ITU_Attenuation::GetObjectFactory(), WsfOpticalAttenuation::GetObjectFactory(), WsfEM_BlakeAttenuation::ObjectFactory(), WsfEM_EARCE_Attenuation::ObjectFactory(), WsfEM_RF_Type1Attenuation::ObjectFactory(), WsfEM_SimpleAttenuation::ObjectFactory(), WsfTabularAttenuation::ObjectFactory(), WsfEM_BlakeAttenuation::operator=(), WsfEM_ITU_Attenuation::operator=(), WsfEM_RF_Type1Attenuation::operator=(), WsfEM_SimpleAttenuation::operator=(), WsfTabularAttenuation::operator=(), WsfEM_Attenuation(), WsfEM_BlakeAttenuation::WsfEM_BlakeAttenuation(), WsfEM_EARCE_Attenuation::WsfEM_EARCE_Attenuation(), WsfEM_ITU_Attenuation::WsfEM_ITU_Attenuation(), WsfEM_ITU_Attenuation::WsfEM_ITU_Attenuation(), WsfEM_SimpleAttenuation::WsfEM_SimpleAttenuation(), WsfEM_SimpleAttenuation::WsfEM_SimpleAttenuation(), WsfOpticalAttenuation::WsfOpticalAttenuation(), WsfOpticalAttenuation::WsfOpticalAttenuation(), WsfTabularAttenuation::WsfTabularAttenuation(), WsfTabularAttenuation::WsfTabularAttenuation(), WsfEM_SimpleAttenuation::~WsfEM_SimpleAttenuation(), and WsfOpticalAttenuation::~WsfOpticalAttenuation().
|
override |
|
protected |
References mDebugEnabled, mSortEndPoints, WsfEM_Attenuation(), and WsfObject::WsfObject().
|
inlinevirtual |
Does the accept inline block input?
This is called by WsfEM_Attenuation::LoadReference when attempting to load a reference to an attenuation model from within another object (i.e.: a 'transmitter').
When originally developed none of the models required additional input, and the command stream was simply 'attenuation_model <x>'. Some of the newer models however have optional inputs that may be provided and thus require the 'block' input (i.e.: they require a 'end_attenuation_model' terminator. Models that have optional inputs should return 'true'.
Reimplemented in WsfEM_ITU_Attenuation, WsfEM_SimpleAttenuation, and WsfTabularAttenuation.
|
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 WsfEM_BlakeAttenuation, WsfEM_EARCE_Attenuation, WsfEM_ITU_Attenuation, WsfEM_RF_Type1Attenuation, WsfEM_SimpleAttenuation, WsfOpticalAttenuation, and WsfTabularAttenuation.
References Initialize(), and WsfEM_Attenuation().
|
virtual |
Compute the attenuation loss factor along a specified path segment.
| aInteraction | The WsfEM_Interaction object containing all geometry needed to perform the calculation. |
| aEnvironment | The environment object (for future use to determine inhomogeneous conditions). |
| aGeometry | Indicates which segment of the path is to be computed (Xmtr->Tgt, Tgt->Rcvr or Xmtr->Rcvr). |
Reimplemented in WsfEM_ITU_Attenuation, WsfOpticalAttenuation, and WsfTabularAttenuation.
References ComputeAttenuationFactorP(), WsfEM_Rcvr::cRF_PASSIVE_SENSOR, WsfEM_XmtrRcvr::GetFrequency(), WsfEM_Rcvr::GetFunction(), GetRangeElevationAltitude(), WsfEM_Interaction::GetReceiver(), and WsfEM_Interaction::GetTransmitter().
Referenced by WsfEM_ALARM_Attenuation::atmosphere::attenuation().
|
protectedvirtual |
Compute the attenuation loss factor along a specified path.
| aRange | The range over which the signal will travel (meters) |
| aElevation | The elevation angle above the horizontal plane that is tangent to the Earth's surface (radians) |
| aAltitude | The altitude of the lowest point between the two points under consideration. This altitude must be lowest as some models assume it. |
| aFrequency | The frequency of the signal (hertz). |
Reimplemented in WsfEM_BlakeAttenuation, WsfEM_EARCE_Attenuation, and WsfEM_RF_Type1Attenuation.
Referenced by ComputeAttenuationFactor().
|
inline |
Is 'debug' enabled?
References mDebugEnabled.
|
protected |
Get the altitudes and ground range of the objects in an interaction.
| aInteraction | The interaction object. |
| aGeometry | An enum representing the participants. |
| aAltitude1 | [output] The altitude of the observer object (see note below) |
| aAltitude2 | [output] The altitude of the observee object (see note below) |
| aGroundRange | [output] The ground range between the participants. |
This is not important if 'sort_end_points' is 'true' as the first altitude will always be the lower of the two altitudes. 'sort_end_points' is typically false only by explicit user-input in WsfTabularAttenuation when the does not assume that paths are symmetic.
References WsfEM_Interaction::cTARGET_TO_RCVR, WsfEM_Interaction::cXMTR_TO_RCVR, WsfEM_Interaction::cXMTR_TO_TARGET, WsfEM_Interaction::LocationData::mAlt, WsfEM_Interaction::LocationData::mLocWCS, WsfEM_Interaction::mRcvrLoc, mSortEndPoints, WsfEM_Interaction::mTgtLoc, WsfEM_Interaction::mXmtrLoc, and std::swap().
Referenced by WsfOpticalAttenuation::ComputeAttenuationFactor(), and WsfTabularAttenuation::ComputeAttenuationFactor().
|
protected |
Get the slant range, elevation and altitude between an observer and another object.
| aInteraction | The interaction object. |
| aGeometry | An enum representing the participants. |
| aRange | [output] The slant range between the objects. |
| aElevation | [output] The elevation angle from the observer to the object being observed. |
| aAltitude | [output] The altitude of the observer. |
This is not important if 'sort_end_points' is 'true' as the altitude will always be the lower of the two altitudes and the elevation angle will be computed relative to object at the lower altitude. 'sort_end_points' is typically false only by explicit user-input in WsfTabularAttenuation when the table does not assume paths are symmetric.
References WsfEM_Interaction::cTARGET_TO_RCVR, WsfEM_Interaction::cXMTR_TO_RCVR, WsfEM_Interaction::cXMTR_TO_TARGET, WsfEM_XmtrRcvr::GetPlatform(), GetRangeElevationAltitude(), WsfEM_Interaction::GetReceiver(), WsfEM_Interaction::GetTarget(), WsfEM_Interaction::GetTransmitter(), WsfEM_Interaction::mRcvrLoc, WsfEM_Interaction::mRcvrToTgt, WsfEM_Interaction::mRcvrToXmtr, WsfEM_Interaction::mTgtLoc, WsfEM_Interaction::mTgtToRcvr, WsfEM_Interaction::mTgtToXmtr, WsfEM_Interaction::mXmtrLoc, WsfEM_Interaction::mXmtrToRcvr, and WsfEM_Interaction::mXmtrToTgt.
Referenced by ComputeAttenuationFactor(), WsfEM_ITU_Attenuation::ComputeAttenuationFactor(), WsfOpticalAttenuation::ComputeAttenuationFactor(), WsfTabularAttenuation::ComputeAttenuationFactor(), and GetRangeElevationAltitude().
|
inlineoverride |
|
virtual |
Initialize the attenuation object.
| aXmtrPtr | The transmitter to which the attenuation object is attached. |
References Initialize().
|
virtual |
Initialize the attenuation object.
| aXmtrRcvrPtr | The transmitter/receiver to which the attenuation object is attached. |
Reimplemented in WsfEM_RF_Type1Attenuation, WsfOpticalAttenuation, and WsfTabularAttenuation.
Referenced by Clone(), Initialize(), WsfEOIR_IRST_SensorMode::Initialize(), WsfOpticalAttenuation::Initialize(), and WsfTabularAttenuation::Initialize().
|
inlinevirtual |
Is the object a 'null' (no-effect) clutter model? No operational model needs to worry about this method.
|
overridevirtual |
Process input from a generic source.
Examine the current input command. If it is NOT one of the commands recognized by this class then it simply returns 'false'. If it is one of the commands recognized by this class then it processes the command and returns 'true'.
| aInput | a reference to a UtInput object. |
| UtInput::ExceptionBase | (or an object derived from it) if the command was recognized but contains some sort of error. |
Reimplemented from WsfObject.
Reimplemented in WsfEM_ITU_Attenuation, WsfEM_SimpleAttenuation, WsfOpticalAttenuation, and WsfTabularAttenuation.
References mDebugEnabled.
Referenced by WsfEM_ITU_Attenuation::ProcessInput(), WsfEM_SimpleAttenuation::ProcessInput(), WsfOpticalAttenuation::ProcessInput(), and WsfTabularAttenuation::ProcessInput().
|
protected |
Referenced by DebugEnabled(), ProcessInput(), WsfEM_Attenuation(), and WsfEM_Attenuation().
|
protected |
True if the end points of the path should be sorted so the path goes from the lowest to highest point. The default in the base class is 'true' and provides no means for the user to change it. Derived classes may change the default and may provide means for the user to change it.
Referenced by GetAltitudesAndGroundRange(), WsfTabularAttenuation::ProcessInput(), WsfEM_Attenuation(), WsfEM_Attenuation(), and WsfTabularAttenuation::WsfTabularAttenuation().