|
WSF
|
#include <WsfZone.hpp>


Classes | |
| struct | Point |
Public Member Functions | |
| WsfZone () | |
| WsfZone & | operator= (const WsfZone &)=delete |
| ~WsfZone () override=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 WsfComponentT< WsfPlatform > | |
| WsfComponentT () | |
| WsfComponentT (const WsfComponentT &) noexcept | |
| WsfComponentT & | operator= (const WsfComponentT &) noexcept |
| ~WsfComponentT () override=default | |
| ParentType * | GetComponentParent () const |
| void | SetComponentParent (ParentType *aParentPtr) |
| Public Member Functions inherited from WsfComponent | |
| virtual | ~WsfComponent ()=default |
| 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 WsfAuxDataEnabled | |
| WsfAuxDataEnabled ()=default | |
| WsfAuxDataEnabled (const WsfAuxDataEnabled &aSrc)=default | |
| WsfAuxDataEnabled & | operator= (const WsfAuxDataEnabled &aRhs) |
| WsfAuxDataEnabled (WsfAuxDataEnabled &&)=default | |
| WsfAuxDataEnabled & | operator= (WsfAuxDataEnabled &&)=default |
| virtual | ~WsfAuxDataEnabled () noexcept |
| void | SetAuxData (const WsfAttributeContainer &aAuxData) |
| void | DeleteAuxData () |
| Delete the aux data container from the object. | |
| void | MergeAuxData (const WsfAuxDataEnabled &aSrc) |
| Merge the object's aux data with aux data from an existing object. | |
| void | UpdateAuxData (const WsfAuxDataEnabled &aSrc) |
| Update the object's aux data with aux data from an existing object. | |
| bool | HasAuxData () const |
| Returns true if this object has aux data. | |
| bool | ProcessInput (UtInput &aInput) |
| template<typename T> | |
| void | Serialize (T &aBuff) |
| (De)serialization for XIO | |
| WsfAttributeContainer & | GetAuxData () |
| const WsfAttributeContainer & | GetAuxData () const noexcept |
| const WsfAttributeContainer & | GetAuxDataConst () const noexcept |
Static Public Attributes | |
| static constexpr const char * | cTYPE_KIND = "zone" |
| static constexpr double | cUNSPECIFIED = 1.0E20 |
| static constexpr double | cHUGE = 9.9E20 |
| static constexpr double | cSMALL = -9.9E20 |
| Static Public Attributes inherited from WsfAuxDataEnabled | |
| static UtCallbackListN< void(const WsfAuxDataEnabled *)> | AuxDataAccessed |
| static UtCallbackListN< void(const WsfAuxDataEnabled *)> | AuxDataDestroyed |
Component infrastructure methods | |
| WsfPlatform * | mPlatformPtr |
| std::map< WsfStringId, double > | mModifierList |
| double | mMinAlt |
| double | mMaxAlt |
| double | mMinX |
| double | mMaxX |
| double | mMinY |
| double | mMaxY |
| double | mArea |
| Point | mCentroid |
| bool | mIsInitialized |
| WsfComponent * | CloneComponent () const override |
| int | GetComponentInitializationOrder () const override |
| WsfStringId | GetComponentName () const override |
| const int * | GetComponentRoles () const override |
| void * | QueryInterface (int aRole) override |
| void | ComponentParentChanged (WsfPlatform *aPlatformPtr) override |
| WsfPlatform * | GetPlatform () const |
| WsfZone * | Clone () const override=0 |
| The standard Clone() method (virtual copy constructor). | |
| bool | ProcessInput (UtInput &aInput) override |
| bool | Initialize (double aSimTime) override |
| virtual void | Initialize (const WsfScenario &aScenario) |
| virtual bool | PointIsInside (WsfSimulation *aSimulationPtr, const double aViewedPointWCS[3], const double aEyePointWCS[3], const double aLookHeading, const double aDeltaDownRange=0.0) |
| virtual double | CheckIntersections (const double aLLA1[3], const double aLLA2[3]) |
| virtual bool | GetLatLonExtrema (double &aSouthernLat, double &aWesternLon, double &aNorthernLat, double &aEasternLon) const |
| void | SetGlobalName (WsfStringId aGlobalName) |
| Set the global model that this zone was cloned from. | |
| WsfStringId | GetGlobalName () const |
| virtual double | Area () |
| virtual WsfGeoPoint | Reference ()=0 |
| virtual WsfGeoPoint | Centroid () |
| virtual void | MaxPoint (double &aX, double &aY, double &aAlt) |
| virtual void | MinPoint (double &aX, double &aY, double &aAlt) |
| virtual void | DrawBounds (WsfDraw &aDraw) |
| virtual void | DrawCentroid (WsfDraw &aDraw) |
| virtual void | Draw (WsfDraw &aDraw) |
| virtual void | DrawRelative (WsfDraw &aDraw, const double aEyePointWCS[3], const double aLookHeading) |
| virtual void | DebugDrawBounds (WsfDraw &aDraw) |
| virtual void | DebugDrawCentroid (WsfDraw &aDraw) |
| virtual void | DebugDrawZone (WsfDraw &aDraw) |
| virtual void | DebugDrawZoneRelative (WsfDraw &aDraw, const double aEyePointWCS[3], const double aLookHeading) |
| virtual const std::map< WsfStringId, double > & | GetModifierList () const |
| Get the modifier list for WsfZoneAttenuation. | |
| virtual double | ModifierValue (const std::string &aModifierName) const |
| returns the value of the modifier matching the given name | |
| bool | IsInitialized () const |
| void | SetFillColor (const std::string &aColor) |
| void | SetFillColor (const UtColor &aColor) |
| void | SetLineColor (const std::string &aColor) |
| void | SetLineColor (const UtColor &aColor) |
| virtual ut::optional< UtColor > | GetFillColor () const |
| virtual ut::optional< UtColor > | GetLineColor () const |
| WsfZone (const WsfZone &aSrc) | |
| Copy constructor (for Clone()). | |
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()). | |
An abstract base class for a zone.
Zones represent an volume that is formed either by extruding a polygon or other geometric shape in the vertical direction, or specifying a 3-D spherical radius. The key run-time function for a Zone is the determination of whether a point of interest lies within the Zone or not. A Zone must be specified relative to some point of reference. There are two possibilities – relative to:
One Zone may be created referencing another. This will result in a geometric- ally similar volume, but translated and (heading) rotated to another position. If the original Zone was defined with a (Lat, Lon) polygon, the new Zone will use (X, Y) relative offsets, but will NOT account for earth's curvature, and so may contain vertical distortions as the size grows.
A polygonal Zone must be defined in a clockwise fashion, as viewed from above.
| WsfZone::WsfZone | ( | ) |
References cHUGE, cSMALL, cUNSPECIFIED, mArea, mCentroid, mIsInitialized, mMaxAlt, mMaxX, mMaxY, mMinAlt, mMinX, mMinY, mModifierList, mPlatformPtr, and WsfObject::WsfObject().
Referenced by WsfCodedZone::Clone(), Clone(), WsfZoneDefinition::Clone(), WsfZoneReference::Clone(), WsfZoneSet::Clone(), WsfZoneSet::GetExclusionZoneAtIndex(), WsfZoneReference::GetReferencedZone(), WsfZoneSet::GetZoneAtIndex(), operator=(), WsfZoneSet::operator=(), WsfZone(), WsfZoneDefinition::WsfZoneDefinition(), WsfZoneDefinition::WsfZoneDefinition(), WsfZoneReference::WsfZoneReference(), WsfZoneReference::WsfZoneReference(), WsfZoneSet::WsfZoneSet(), WsfZoneSet::WsfZoneSet(), WsfCodedZone::~WsfCodedZone(), WsfZoneDefinition::~WsfZoneDefinition(), and WsfZoneReference::~WsfZoneReference().
|
overridedefault |
|
protected |
Copy constructor (for Clone()).
References mArea, mCentroid, mIsInitialized, mMaxAlt, mMaxX, mMaxY, mMinAlt, mMinX, mMinY, mModifierList, mPlatformPtr, WsfAuxDataEnabled::WsfAuxDataEnabled(), WsfObject::WsfObject(), and WsfZone().
|
virtual |
Reimplemented in WsfZoneReference.
References mArea.
|
virtual |
Reimplemented in WsfZoneReference.
References mCentroid.
Referenced by ZoneUtils::GetZoneCentroid(), and Reference().
|
inlinevirtual |
Reimplemented in WsfZoneDefinition, and WsfZoneSet.
|
overridepure virtual |
The standard Clone() method (virtual copy constructor).
Implements WsfObject.
Implemented in WsfCodedZone, WsfZoneDefinition, WsfZoneReference, and WsfZoneSet.
References PointIsInside(), and WsfZone().
Referenced by WsfATG_WeaponLAR::WsfATG_WeaponLAR().
|
inlineoverridevirtual |
Clones a component. May return null if component does not support clone.
Implements WsfComponent.
References WsfObject::Clone().
|
inlineoverridevirtual |
The parent to which the component is attached has been updated. This virtual method is called whenever the components parent attachment has been changed. This is provided so derived class receives notification of the change.
| aParentPtr | Pointer to the new parent. The new parent may be null if the attachment was severed. |
Reimplemented from WsfComponentT< WsfPlatform >.
References mPlatformPtr.
|
inlinevirtual |
Reimplemented in WsfZoneDefinition, WsfZoneReference, and WsfZoneSet.
|
inlinevirtual |
Reimplemented in WsfZoneDefinition, WsfZoneReference, and WsfZoneSet.
|
inlinevirtual |
Reimplemented in WsfZoneDefinition, WsfZoneReference, and WsfZoneSet.
|
inlinevirtual |
Reimplemented in WsfZoneDefinition.
|
inlinevirtual |
Reimplemented in WsfZoneDefinition.
|
inlinevirtual |
Reimplemented in WsfZoneDefinition.
|
inlinevirtual |
Reimplemented in WsfZoneDefinition.
|
inlinevirtual |
Reimplemented in WsfZoneDefinition.
|
inlineoverridevirtual |
Forces a specific initialization order. Components are initialized in increasing initialization order value.
Reimplemented from WsfComponent.
References cWSF_INITIALIZE_ORDER_ZONE.
|
inlineoverridevirtual |
Returns the component's name. Each component in a component list has a unique name. Names are usually defined by the user, but they may also be generated by code and prefixed with a '#' to guarantee no collisions with user-defined names.
Implements WsfComponent.
References WsfObject::GetNameId().
|
overridevirtual |
Returns a zero-terminated array of component roles. Note that the array should be in decreasing order of specificity and should generally the inheritance hierarchy. The first entry should be the components 'primary' role. For example a sensor would do the following:
Implements WsfComponent.
References cWSF_COMPONENT_NULL, and cWSF_COMPONENT_ZONE.
|
inlinevirtual |
Reimplemented in WsfZoneDefinition, and WsfZoneReference.
Referenced by WsfZoneDefinition::GetFillColor().
|
inline |
Get the name of the globe template that this zone derives from.
Referenced by WsfXIO_ObjectInfoLoad::Load_Platform(), and UT_DEFINE_SCRIPT_METHOD().
|
virtual |
Reimplemented in WsfZoneDefinition.
Referenced by wsf::Terrain::GetHeightExtremaIn(), and wsf::coverage::ZoneBasedGrid::InitializeP().
|
inlinevirtual |
Reimplemented in WsfZoneDefinition, and WsfZoneReference.
Referenced by WsfZoneDefinition::GetLineColor().
|
inlinevirtual |
Get the modifier list for WsfZoneAttenuation.
Reimplemented in WsfZoneReference.
References mModifierList.
Referenced by WsfZoneAttenuation::Initialize().
|
inline |
References mPlatformPtr.
|
virtual |
This method is called to initialize the zone for use. This form is called from scenario initialization for globally defined zones.
Reimplemented in WsfZoneDefinition, WsfZoneReference, and WsfZoneSet.
References mIsInitialized.
|
overridevirtual |
Implementation of WsfComponent::Initialize. This is called by when initializing components attached to a platform (WsfPlatform::Initialize)
| aSimTime | The current simulation time. |
Reimplemented from WsfComponent.
References Initialize(), and mPlatformPtr.
Referenced by Initialize(), WsfZoneReference::Initialize(), and UT_DEFINE_SCRIPT_METHOD().
|
inline |
References mIsInitialized.
Referenced by wsf::Terrain::GetHeightExtremaIn(), and UT_DEFINE_SCRIPT_METHOD().
|
virtual |
|
virtual |
|
virtual |
returns the value of the modifier matching the given name
Reimplemented in WsfZoneReference.
References mModifierList.
|
virtual |
Is the point inside the zone?
| aSimulationPtr | the simulation |
| aViewedPointWCS | the point which is being tested for containment in the zone. |
| aEyePointWCS | is the potential reference point for a relative Zone. |
| aLookHeading | the current heading (for relative references) |
| aDeltaDownRange | is an (optional) delta to slide the Zone away from the eyepoint. (Used to adjust the Zone location for off-design conditions.) |
Reimplemented in WsfZoneDefinition, WsfZoneReference, and WsfZoneSet.
Referenced by Clone(), wsf::Terrain::GetHeightExtremaIn(), WsfPlatformAvailability::PlatformIsAvailable(), UT_DEFINE_SCRIPT_METHOD(), UT_DEFINE_SCRIPT_METHOD(), UT_DEFINE_SCRIPT_METHOD(), UT_DEFINE_SCRIPT_METHOD(), UT_DEFINE_SCRIPT_METHOD(), and UT_DEFINE_SCRIPT_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 WsfZoneDefinition, and WsfZoneSet.
References WsfAuxDataEnabled::ProcessInput(), and SetFillColor().
Referenced by WsfZoneDefinition::ProcessInput(), and WsfZoneSet::ProcessInput().
|
overridevirtual |
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.
References cWSF_COMPONENT_ZONE.
|
pure virtual |
Implemented in WsfZoneDefinition, WsfZoneReference, and WsfZoneSet.
References Centroid(), MaxPoint(), and MinPoint().
| void WsfZone::SetFillColor | ( | const std::string & | aColor | ) |
References SetFillColor().
Referenced by ProcessInput(), SetFillColor(), and UT_DEFINE_SCRIPT_METHOD().
|
inline |
|
inline |
Set the global model that this zone was cloned from.
| void WsfZone::SetLineColor | ( | const std::string & | aColor | ) |
References SetLineColor().
Referenced by SetLineColor().
|
inline |
|
staticconstexpr |
Referenced by WsfZoneDefinition::SetPolyPoints(), WsfZoneDefinition::SetPolyPointsRelative(), and WsfZone().
|
staticconstexpr |
Referenced by WsfZoneDefinition::SetPolyPoints(), WsfZoneDefinition::SetPolyPointsRelative(), and WsfZone().
|
staticconstexpr |
|
staticconstexpr |
Referenced by WsfZoneDefinition::Draw(), WsfZoneDefinition::GetAngleBounds(), WsfZoneDefinition::Initialize(), WsfZoneDefinition::ProcessInput(), WsfZoneDefinition::SetAltBounds(), WsfZoneDefinition::SetAngleBounds(), WsfZoneDefinition::SetPolyPoints(), WsfZoneDefinition::SetRadialBounds(), WsfZoneDefinition::UpdateReference(), UT_DEFINE_SCRIPT_METHOD(), ZoneUtils::ValueSet(), WsfZone(), and WsfZoneDefinition::WsfZoneDefinition().
|
protected |
Referenced by Centroid(), WsfZoneSet::DebugDrawCentroid(), WsfZoneDefinition::DrawCentroid(), WsfZone(), and WsfZone().
|
protected |
Referenced by WsfZoneSet::DebugDrawBounds(), WsfZoneSet::DebugDrawCentroid(), Initialize(), WsfZoneDefinition::Initialize(), WsfZoneReference::Initialize(), WsfZoneSet::Initialize(), IsInitialized(), WsfZoneSet::PointIsInside(), WsfZoneDefinition::SetAltBounds(), WsfZoneDefinition::SetAngleBounds(), WsfZoneDefinition::SetEllipticalAxes(), WsfZoneDefinition::SetPolyPoints(), WsfZoneDefinition::SetPolyPointsRelative(), WsfZoneDefinition::SetRadialBounds(), WsfZoneDefinition::SetRelativeType(), WsfZoneDefinition::SetShapeType(), WsfZone(), and WsfZone().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by ComponentParentChanged(), GetPlatform(), Initialize(), WsfZone(), and WsfZone().