public abstract class CentralBodyCoverageGrid extends Object implements ICoverageGrid
Modifier | Constructor and Description |
---|---|
protected |
CentralBodyCoverageGrid()
Initializes a new instance.
|
protected |
CentralBodyCoverageGrid(CentralBody centralBody)
Initializes a new instance with a specified central body.
|
protected |
CentralBodyCoverageGrid(CentralBodyCoverageGrid existingGrid)
Initializes a new instance using the same reference surface as an existing grid.
|
protected |
CentralBodyCoverageGrid(CentralBody centralBody,
TerrainProvider terrainProvider)
Initializes a new instance with a specified reference terrain.
|
protected |
CentralBodyCoverageGrid(TerrainProvider terrainProvider)
Initializes a new instance with a specified reference terrain.
|
Modifier and Type | Method and Description |
---|---|
abstract List<CoverageGridPoint> |
generateGridPoints()
Generate the set of grid points.
|
CentralBody |
getCentralBody()
Gets the central body associated with this grid.
|
ArrayList<EllipsoidSurfaceCurve> |
getGridCellBoundaries(List<CoverageGridPoint> points)
Generates a list of boundary curves corresponding to the grid point cells represented by each grid point in the specified list.
|
EllipsoidSurfaceCurve |
getGridCellBoundary(CoverageGridPoint point)
Generates a boundary curve for the given grid point cell represented by the given grid point.
|
double |
getHeightRelativeToSurface(double longitude,
double latitude)
Gets the height of a point at a specific longitude and latitude.
|
ReferenceFrame |
getReferenceFrame()
|
TerrainProvider |
getReferenceTerrain()
Gets the reference terrain with which the grid points are defined.
|
void |
setCentralBody(CentralBody value)
Sets the central body associated with this grid.
|
void |
setReferenceTerrain(TerrainProvider value)
Sets the reference terrain with which the grid points are defined.
|
protected CentralBodyCoverageGrid()
protected CentralBodyCoverageGrid(@Nonnull CentralBody centralBody)
ReferenceFrame
(get
) defaults to the central body's fixed frame.centralBody
- The central body relative to which the grid points are defined.ArgumentNullException
- Thrown when centralBody
is null
.protected CentralBodyCoverageGrid(@Nonnull TerrainProvider terrainProvider)
terrainProvider
- The surface with which to define the grid points.ArgumentNullException
- Thrown when terrainProvider
is null
.protected CentralBodyCoverageGrid(@Nonnull CentralBody centralBody, @Nonnull TerrainProvider terrainProvider)
ReferenceFrame
(get
) defaults to the central body's fixed frame.centralBody
- The central body that the terrain provider is specified relative to.terrainProvider
- The surface with which to define the grid points.ArgumentNullException
- Thrown when terrainProvider
or centralBody
is null
.protected CentralBodyCoverageGrid(@Nonnull CentralBodyCoverageGrid existingGrid)
existingGrid
- An existing grid.public abstract List<CoverageGridPoint> generateGridPoints()
When implementing, note that the space represented by each grid point should not overlap.
generateGridPoints
in interface ICoverageGrid
public TerrainProvider getReferenceTerrain()
When GeometricPrimitiveCoverageGrid.generateGridPoints()
or CentralBodyCoverageGrid.getHeightRelativeToSurface(double, double)
is called, the shape of ReferenceTerrain
(get
/ set
)
must match CentralBody
(get
/ set
).
public void setReferenceTerrain(TerrainProvider value)
When GeometricPrimitiveCoverageGrid.generateGridPoints()
or CentralBodyCoverageGrid.getHeightRelativeToSurface(double, double)
is called, the shape of ReferenceTerrain
(get
/ set
)
must match CentralBody
(get
/ set
).
public CentralBody getCentralBody()
When GeometricPrimitiveCoverageGrid.generateGridPoints()
or CentralBodyCoverageGrid.getHeightRelativeToSurface(double, double)
is called, the shape of ReferenceTerrain
(get
/ set
)
must match CentralBody
(get
/ set
).
public void setCentralBody(CentralBody value)
When GeometricPrimitiveCoverageGrid.generateGridPoints()
or CentralBodyCoverageGrid.getHeightRelativeToSurface(double, double)
is called, the shape of ReferenceTerrain
(get
/ set
)
must match CentralBody
(get
/ set
).
@Nullable public final ReferenceFrame getReferenceFrame()
CentralBody
(get
/ set
) fixed frame.
If the CentralBody
(get
/ set
) has not been set, then this will return null
.getReferenceFrame
in interface ICoverageGrid
public final double getHeightRelativeToSurface(double longitude, double latitude)
If ReferenceTerrain
(get
/ set
) is null
, returns zero.
Otherwise, ReferenceTerrain
(get
/ set
) is used to find the height
with respect to the CentralBody
(get
/ set
).
longitude
- The longitude of the desired grid point.latitude
- The latitude of the desired grid point.ArgumentOutOfRangeException
- Thrown when the latitude is outside the range -π/2 to π/2,
or the longitude is outside the range -π to π.IllegalStateException
- Thrown when the
Shape
(get
/ set
) of the ReferenceTerrain
(get
/ set
) does not match the
Shape
(get
/ set
) of the CentralBody
(get
/ set
).@Nullable public EllipsoidSurfaceCurve getGridCellBoundary(@Nonnull CoverageGridPoint point)
This method provides a default implementation of the boundary by interpolating
the grid cell vertices with
EllipsoidRhumbLines
. The method is meant to be
overridden if a different type of boundary is intended. The boundary created currently
works with the Shape
(get
/ set
), not the ReferenceTerrain
(get
/ set
).
point
- The grid point containing the information about its boundary.null
.@Nonnull public final ArrayList<EllipsoidSurfaceCurve> getGridCellBoundaries(@Nonnull List<CoverageGridPoint> points)
points
- The grid points containing the information about the grid point cells.null
.