|
WSF
|
#include <WsfChaffParcel.hpp>


Public Member Functions | |
| WsfChaffParcel () | |
| WsfChaffParcel (const WsfChaffParcel &aSrc) | |
| WsfChaffParcel & | operator= (const WsfChaffParcel &aSrc)=delete |
| ~WsfChaffParcel () override=default | |
| Public Member Functions inherited from WsfChaffParcelInterface | |
| virtual | ~WsfChaffParcelInterface ()=default |
| 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) |
| Public Member Functions inherited from WsfSimpleComponentT< WsfPlatformComponent > | |
| WsfSimpleComponentT ()=default | |
| Empty constructor for serialization. | |
| WsfSimpleComponentT (int aRole, WsfStringId aName) | |
| WsfSimpleComponentT (int aRole) | |
| WsfSimpleComponentT (WsfStringId aName) | |
| WsfSimpleComponentT (const WsfSimpleComponentT &aSrc) | |
| WsfSimpleComponentT & | operator= (const WsfSimpleComponentT &aRhs) |
| ~WsfSimpleComponentT () override=default | |
| WsfStringId | GetComponentName () const override |
| const int * | GetComponentRoles () const override |
| Public Member Functions inherited from WsfComponentT< WsfPlatform > | |
| WsfComponentT () | |
| WsfComponentT (const WsfComponentT &) noexcept | |
| WsfComponentT & | operator= (const WsfComponentT &) noexcept |
| ~WsfComponentT () override=default | |
| virtual void | ComponentParentChanged (ParentType *aParentPtr) |
| ParentType * | GetComponentParent () const |
| void | SetComponentParent (ParentType *aParentPtr) |
| Public Member Functions inherited from WsfComponent | |
| virtual | ~WsfComponent ()=default |
| virtual int | GetComponentInitializationOrder () const |
| template<typename T> | |
| bool | QueryInterfaceT (T *&aRolePtr) |
| bool | ComponentHasRole (int aRole) |
| Returns true if the component has the specified role. | |
| virtual bool | PreInitialize (double aSimTime) |
| virtual bool | Initialize2 (double aSimTime) |
| virtual void | PreInput () |
| Public Member Functions inherited from WsfNamed | |
| WsfNamed () | |
| WsfNamed (WsfStringId aName) | |
| WsfNamed (const WsfNamed &)=default | |
| WsfNamed & | operator= (const WsfNamed &)=default |
| virtual | ~WsfNamed ()=default |
| const std::string & | GetName () const |
| WsfStringId | GetNameId () const |
| void | SetName (WsfStringId aName) |
Component infrastructure methods | |
| WsfComponent * | CloneComponent () const override |
| void * | QueryInterface (int aRole) override |
| bool | Initialize (double aSimTime) override |
| virtual double | GetMaximumRCS (double aFrequency) const |
WsfObject overrides | |
| WsfObject * | Clone () const override |
| bool | ProcessInput (UtInput &aInput) override |
WsfChaffParcelInterface overrides | |
| WsfPlatform * | GetPlatform () const override |
| double | GetRadialSize () const override |
| void | GetDropLocationWCS (double aDropLocationWCS[3]) const override |
| double | GetRadarCrossSection (double aFrequency, const double aXmtrLocationWCS[3], const double aRcvrLocationWCS[3]) const |
| virtual bool | InitializeType () const |
| void | Update (double aSimTime) |
| bool | IsExpired (double aSimTime) |
| void | AddToCloud (std::shared_ptr< WsfChaffCloudInterface > &aCloudPtr) |
| virtual double | GetMaximumRCS () const |
| static bool | Find (WsfChaffParcel *&aParcelPtr, const WsfPlatform &aPlatform) |
| static void | ClearMaxRcsCache () |
Additional Inherited Members | |
| Public Types inherited from WsfObject | |
| typedef std::vector< WsfStringId > | TypeList |
| The list of types returned by GetTypeList. | |
| Public Types inherited from WsfComponentT< WsfPlatform > | |
| typedef WsfPlatform | ParentType |
| This is needed to support the WsfComponentList template. | |
| WsfObject (const WsfObject &aSrc) | |
| Copy constructor (for Clone()). | |
| int | mRoles [2] |
Object that represents a parcel or cannister of chaff that is dispensed and forms a chaff cloud. Chaff parcels are treated as spherical, with a radius that grows exponentially to a max bloom diameter.
| WsfChaffParcel::WsfChaffParcel | ( | ) |
References WsfChaffParcel(), and WsfObject::WsfObject().
Referenced by Clone(), Find(), operator=(), WsfChaffParcel(), and WsfChaffParcel().
| WsfChaffParcel::WsfChaffParcel | ( | const WsfChaffParcel & | aSrc | ) |
References WsfChaffParcel(), and WsfObject::WsfObject().
|
overridedefault |
References WsfObject::WsfObject().
| void WsfChaffParcel::AddToCloud | ( | std::shared_ptr< WsfChaffCloudInterface > & | aCloudPtr | ) |
|
static |
Referenced by WsfChaffParcelTypes::~WsfChaffParcelTypes().
|
overridevirtual |
Return a copy of this object. Must be implemented by all derived types. If cloning is impossible, a WsfUncloneableException should be thrown.
Implements WsfObject.
References WsfChaffParcel(), and WsfObject::WsfObject().
|
overrideprotectedvirtual |
Clones a component. May return null if component does not support clone.
Implements WsfComponent.
|
static |
References WsfComponentList::FindByRole(), and WsfChaffParcel().
Referenced by WsfChaffMover::Initialize(), and WsfChaffRadarSignature::Initialize().
|
overridevirtual |
Implements WsfChaffParcelInterface.
|
virtual |
Referenced by GetRadarCrossSection().
|
protectedvirtual |
|
inlineoverridevirtual |
Implements WsfChaffParcelInterface.
References WsfComponentT< WsfPlatform >::GetComponentParent().
Referenced by Initialize(), IsExpired(), and Update().
| double WsfChaffParcel::GetRadarCrossSection | ( | double | aFrequency, |
| const double | aXmtrLocationWCS[3], | ||
| const double | aRcvrLocationWCS[3] ) const |
Calculates the chaff parcel RCS based on the maximum scatterer RCS for a dispersed cloud viewed broadside (defined in mFreqMaxRCS_Table) and the bistatic presented area of the chaff cloud as seen by the transmitter and receiver. References: Schleher, Introduction to Electronic Warfare, pp 185-191
| aFrequency | The frequency of the transmitter (in Hz) |
| aXmtrLocationWCS | Location of the transmitter in WCS frame |
| aRcvrLocationWCS | Location of the receiver in WCS frame |
References GetMaximumRCS(), and WsfObject::GetTypeId().
|
inlineoverridevirtual |
Implements WsfChaffParcelInterface.
|
overrideprotectedvirtual |
Perform phase 1 initialization. This is called by WsfPlatform::Initialize() during phase 1 initialization of the platform. The component should complete validation of input data that could not be done by ProcessInput, as well as any other functions to prepare for simulation use (subject to the next paragraph).
The order in which components are initialized is defined by GetComponentInitializationOrder. In general a component implementation of this method should not be dependent on the state of another component, i.e.: it should not assume that the other components Initialize() method has been called. If such a dependency exists one should use Initialize2() if possible, or specify a value GetComponentInitializationOrder to force things to initialize in a particular order.
| aSimTime | The current simulation time. |
Reimplemented from WsfComponent.
References GetPlatform(), and WsfComponent::Initialize().
|
virtual |
References WsfObject::GetType().
Referenced by WsfChaffParcelTypes::InitializeType().
| bool WsfChaffParcel::IsExpired | ( | double | aSimTime | ) |
To improve run time performance, chaff parcels are removed from the simulation once they are no longer needed. Parcels are removed if they hit the ground. Otherwise, they are retained for a maximum time given by mExpirationTime
References WsfObject::GetName(), GetPlatform(), and WsfObject::GetType().
|
delete |
References WsfChaffParcel().
|
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.
|
overrideprotectedvirtual |
Requests a component's role interface. A component can support one or more roles.
| aRole | The role whose interface is to be returned. |
Implements WsfComponent.
| void WsfChaffParcel::Update | ( | double | aSimTime | ) |
Chaff physical parameters are computed as follows:
References GetPlatform().