|
WSF
|
The Grid object defines the region over which coverage can be computed. More...
#include <WsfCoverageGrid.hpp>


Public Member Functions | |
| Grid (const WsfScenario &aScenario) | |
| Grid (const Grid &aOther)=default | |
| ~Grid () override=default | |
| Grid * | Clone () const override=0 |
| bool | ProcessInput (UtInput &aInput) override |
| virtual void | PreparePlatforms (WsfSimulation &aSimulation)=0 |
| virtual const Point * | GetPoint (PointId aPointId) const =0 |
| virtual std::size_t | GetSize () const =0 |
| virtual void | Invoke (GridAction &aAction) const =0 |
| virtual GridAsset | GetAsset (PointId aPointId) const =0 |
| virtual GridAsset | GetAsset (const std::string &aPlatformName) const =0 |
| virtual void | HasNullDevice (bool &aAnyNull, bool &aAllNull) const =0 |
| virtual bool | CreatesNewPlatforms () const =0 |
| virtual bool | IsStructured () const |
| virtual std::size_t | GetNumComponents () const |
| virtual std::string | GetComponentName (std::size_t aComponentIndex) const |
| Return the name of the specified grid component. | |
| virtual std::pair< std::size_t, std::size_t > | GetComponentSizes (std::size_t aComponentIndex) const |
| virtual std::pair< std::size_t, std::size_t > | GetPointIndices (PointId aPointId) const |
| virtual void | InvokeOnComponent (GridAction &aAction, std::size_t aComponentIndex) const |
Invoke the given aAction on the points of the specified grid component. | |
| void | SetUsedFlag () |
| bool | IsUsed () const |
| bool | Initialize () |
| void | CategorizeAssets (const WsfSimulation &aSimulation, const std::string &aCategory) const |
| bool | IsInitialized () const |
| Return if this Grid has been initialized. | |
| const ut::CentralBody & | GetCentralBody () const |
| Return the central body to which this grid's point locations refer. | |
| void | SetCentralBody (const ut::CentralBody &aCentralBody) |
| Set the central body of this grid. | |
| const std::string & | GetGridDataFileName () const |
| Return the configured grid data file name. | |
| bool | GetSuppressGridPlatforms () const |
| Return if this grid is suppressing grid platforms. | |
| void | SetSuppressGridPlatforms (bool aSuppress) |
| Set if this grid suppresses grid platforms. | |
| bool | WriteGridDataFile (TextOutputWriter &aWriter) const |
| bool | WriteGridDataFile () const |
| 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 | |
| virtual bool | InitializeP ()=0 |
| PointId | GetNextAvailableId () |
| const WsfScenario & | GetScenario () const |
| WsfObject (const WsfObject &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. | |
The Grid object defines the region over which coverage can be computed.
|
explicit |
Referenced by CategorizeAssets(), Clone(), wsf::coverage::CompositeGrid::CompositeGrid(), wsf::coverage::ExistingPlatformGrid::ExistingPlatformGrid(), Grid(), wsf::coverage::CompositeGrid::InitializeP(), wsf::coverage::CompositeGrid::InvokeOnComponent(), wsf::coverage::RectangularGrid::RectangularGrid(), wsf::coverage::RectangularGrid::RectangularGrid(), and WriteGridDataFile().
|
default |
References Grid().
|
overridedefault |
| void wsf::coverage::Grid::CategorizeAssets | ( | const WsfSimulation & | aSimulation, |
| const std::string & | aCategory ) const |
Set the provided category on this object's grid assets.
This method will set two categories for each platform that makes up this grid. The first is the universal coverage grid category of which all grid asset platforms are members. The second is a specific category for a given coverage computation.
| aSimulation | - The simulation in which this grid's platforms exist. |
| aCategory | - The coverage-specific category to assign to this grid's platforms. |
References WsfPlatform::AddCategory(), wsf::coverage::CreateGridAction(), wsf::coverage::cUNIVERSAL_GRID_ASSET_CATEGORY, GetAsset(), wsf::coverage::Point::GetID(), WsfSimulation::GetPlatformByName(), Grid(), and Invoke().
|
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 wsf::coverage::CompositeGrid, wsf::coverage::DistanceSteppedGrid, wsf::coverage::ExistingPlatformGrid, wsf::coverage::LatLonGrid, and wsf::coverage::ZoneBasedGrid.
References Grid(), and ProcessInput().
|
pure virtual |
Return if the grid creates new platforms during initialization.
A grid should either create new platforms, or use existing platforms. This method returns if this grid creates new platforms. The behavior of some coverage classes will vary depending on the result of this method.
Implemented in wsf::coverage::CompositeGrid, wsf::coverage::ExistingPlatformGrid, and wsf::coverage::RectangularGrid.
|
pure virtual |
Return a grid asset for the given platform.
This returns the grid asset associated with the platform that has the given aPlatformName. If there is no such asset, this will return an invalid grid asset.
| aPlatformName | - The name of one of this grid's asset platform. |
Implemented in wsf::coverage::CompositeGrid, wsf::coverage::ExistingPlatformGrid, and wsf::coverage::RectangularGrid.
Return a grid asset for the point with the given ID.
This returns the grid asset for the point with the given aPointId. If there is no such point, this will return an invalid grid asset.
| aPointId | - The ID of a point in this grid. |
Implemented in wsf::coverage::CompositeGrid, wsf::coverage::ExistingPlatformGrid, and wsf::coverage::RectangularGrid.
Referenced by CategorizeAssets(), wsf::coverage::CompositeGrid::InitializeP(), wsf::coverage::MeasureGridStats::MeasureGridStats(), and wsf::coverage::MeasureLatLonStats::MeasureLatLonStats().
|
inline |
Return the central body to which this grid's point locations refer.
Referenced by wsf::coverage::CompositeGrid::InitializeP(), wsf::coverage::RectangularGrid::PreparePlatforms(), and wsf::coverage::ZoneBasedGrid::PreparePlatforms().
|
inlinevirtual |
Return the name of the specified grid component.
Reimplemented in wsf::coverage::CompositeGrid.
References WsfObject::GetName().
|
virtual |
Return the number of points in the specified grid component.
This method returns the size of the structured grid as the N-S and E-W size of the grid in the first and second components of the returned pair, but only if this grid returns true from IsStructured. Otherwise, the size of the component is returned in the first component, and a 1 is returned in the second component.
| aComponentIndex | The component whose size is being queried. |
Reimplemented in wsf::coverage::CompositeGrid, and wsf::coverage::RectangularGrid.
References GetSize().
|
inline |
Return the configured grid data file name.
|
protected |
|
inlinevirtual |
Return the number of grid components.
Grid components are geometrically distinct portions of a grid. Most grids have a single component. For an example of a grid with multiple components, see CompositeGrid.
Reimplemented in wsf::coverage::CompositeGrid.
Referenced by wsf::coverage::OverlayOutput::Write().
Return the Point at the given index if it exists.
This will return the Point with the given aPointId if such a point exists. This will return nullptr if this Grid has not been initialized.
| aPointId | - The ID of the point to retrieve. |
Implemented in wsf::coverage::CompositeGrid, wsf::coverage::ExistingPlatformGrid, and wsf::coverage::RectangularGrid.
|
virtual |
Return the structured index of the point with the given aPointId.
This returns the indices of the point with the given aPointId in the structure of the grid. If the grid is not structured, this will return a pair containing two zeros. The returned indices will each be in the range [0, N) where N is the respective component of the value returned by GetComponentSizes. If the given aPointId does not refer to a point in this grid, this will return a pair with out of bounds indices (they are larger than the return values from GetComponentSizes).
| aPointId | The id of the point whose structure indices are requested. |
Reimplemented in wsf::coverage::CompositeGrid, and wsf::coverage::RectangularGrid.
|
inlineprotected |
|
pure virtual |
Return the number of Points in this Grid.
This will return the number of Points in this Grid. This will return 0 if this Grid has not been initialized.
Implemented in wsf::coverage::CompositeGrid, wsf::coverage::ExistingPlatformGrid, and wsf::coverage::RectangularGrid.
Referenced by GetComponentSizes(), and Initialize().
|
inline |
Return if this grid is suppressing grid platforms.
Referenced by wsf::coverage::CompositeGrid::InitializeP(), and wsf::coverage::RectangularGrid::PreparePlatforms().
|
pure virtual |
Return if this grid's assets have null devices.
This will determine if this grid has any asset with a null device, and set aAnyNull accordingly. This will also determing if all of this grid's assets have null devices, and set aAllNull accordingly.
| aAnyNull | [out] - Does any asset have a null device. |
| aAllNull | [out] - Do all assets have a null device. |
Implemented in wsf::coverage::CompositeGrid, wsf::coverage::ExistingPlatformGrid, and wsf::coverage::RectangularGrid.
| bool wsf::coverage::Grid::Initialize | ( | ) |
Initialize this Grid.
Initialize this grid. This is called during simulation initialization. This is a template method in which all common initialization tasks can be performed. Specific details for subclasses are handled in InitializeP.
References WsfObject::GetName(), GetSize(), InitializeP(), and IsUsed().
Referenced by wsf::coverage::CompositeGrid::InitializeP().
|
protectedpure virtual |
Grid type specific initialization.
Initialization specific to the grid type occurs in this method. In particular, validation on input quantities should occur here. The set of grid points should be defined after this method's successful return, and both GetAsset methods should return valid GridAsset instances for any point in this grid.
Implemented in wsf::coverage::CompositeGrid, wsf::coverage::DistanceSteppedGrid, wsf::coverage::ExistingPlatformGrid, wsf::coverage::LatLonGrid, and wsf::coverage::ZoneBasedGrid.
References GetNextAvailableId().
Referenced by Initialize().
|
pure virtual |
Invoke the given action on every Point in this Grid.
This method invokes the given action for every Point in this Grid. If this method is used before this Grid is initialized, this method will do nothing.
Implemented in wsf::coverage::CompositeGrid, wsf::coverage::ExistingPlatformGrid, and wsf::coverage::RectangularGrid.
Referenced by CategorizeAssets(), InvokeOnComponent(), wsf::coverage::MeasureGridStats::MeasureGridStats(), wsf::coverage::MeasureLatLonStats::MeasureLatLonStats(), and WriteGridDataFile().
|
inlinevirtual |
Invoke the given aAction on the points of the specified grid component.
Reimplemented in wsf::coverage::CompositeGrid, and wsf::coverage::ZoneBasedGrid.
References Invoke().
Referenced by wsf::coverage::ZoneBasedGrid::InvokeOnComponent().
|
inline |
Return if this Grid has been initialized.
Referenced by wsf::coverage::RectangularGrid::RectangularGrid().
|
inlinevirtual |
Return if the grid is structured.
Structured grids are those grids that have some positional organization of the grid points. Most grids are structured. For an example of an unstructured grid, see the ExistingPlatformGrid. To prevent a subclass from participating in overlay output from a Coverage object, IsStructured should return false.
Reimplemented in wsf::coverage::CompositeGrid, wsf::coverage::ExistingPlatformGrid, and wsf::coverage::RectangularGrid.
|
inline |
Referenced by Initialize().
|
pure virtual |
Prepare the platforms for this grid.
This method will create or modify the platforms associated with this grid object. In particular, this should mark created platforms as private so they are not sent over DIS. This should also set the side of created platforms so they might be easily removed from the visual tools.
| aSimulation | - The simulation in which this grid's platforms will participate. |
Implemented in wsf::coverage::CompositeGrid, wsf::coverage::ExistingPlatformGrid, wsf::coverage::RectangularGrid, and wsf::coverage::ZoneBasedGrid.
Referenced by wsf::coverage::ZoneBasedGrid::PreparePlatforms().
|
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 wsf::coverage::LatLonGrid, wsf::coverage::RectangularGrid, and wsf::coverage::ZoneBasedGrid.
Referenced by Clone(), wsf::coverage::CompositeGrid::ProcessInput(), wsf::coverage::ExistingPlatformGrid::ProcessInput(), and wsf::coverage::RectangularGrid::ProcessInput().
| void wsf::coverage::Grid::SetCentralBody | ( | const ut::CentralBody & | aCentralBody | ) |
Set the central body of this grid.
|
inline |
Set if this grid suppresses grid platforms.
|
inline |
| bool wsf::coverage::Grid::WriteGridDataFile | ( | ) | const |
Write the details of the grid points to file.
Grids optionally write details of their points to file. This operation occurs when the simulation is ending. This data is generated only if the user has provided a filename for this file during this object's configuration.
References WriteGridDataFile().
Referenced by WriteGridDataFile().
| bool wsf::coverage::Grid::WriteGridDataFile | ( | TextOutputWriter & | aWriter | ) | const |
Write the details of the grid points to file.
Grids optionally write details of their points to file. This operation occurs when the simulation is ending. This data is generated only if the user has provided a filename for this file during this object's configuration. This form of this method is intended to be used during unit testing.
| aWriter | - The output writer into which the data will be generated. |
References wsf::coverage::TextOutputWriter::CloseStream(), wsf::coverage::TextOutputWriter::CreateContainingFolder(), wsf::coverage::CreateGridAction(), wsf::TerrainInterface::Get(), wsf::coverage::Point::GetAltitude(), wsf::Terrain::GetElevInterp(), wsf::coverage::Point::GetID(), wsf::coverage::Point::GetLatitude(), wsf::coverage::Point::GetLongitude(), Grid(), Invoke(), wsf::coverage::TextOutputWriter::OpenStream(), wsf::coverage::TextOutputWriter::SetPrecision(), wsf::coverage::TextOutputWriter::SetStreamFormat(), wsf::coverage::TextOutputWriter::SetStreamJustify(), wsf::coverage::TextOutputWriter::SetWidth(), and wsf::coverage::TextOutputWriter::WriteField().