public final class TerrainAlongLine extends Object
Modifier and Type  Field and Description 

static double 
DefaultMaximumTerrainHeight
The default value for the maximum height in meters that can be returned by a
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double) method. 
static double 
DefaultMinimumTerrainHeight
The default value for the minimum height in meters that can be returned by a
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double) method. 
Modifier and Type  Method and Description 

static double 
computeElevationAngleAboveTerrain(Cartesian observerPositionFixed,
Cartesian targetPositionFixed,
TerrainProvider terrainProvider)
Computes the angle from the line of sight between the target and observer positions
and the direction to the point on terrain with the highest elevation angle.

static double 
computeElevationAngleAboveTerrain(Cartesian observerPositionFixed,
Cartesian targetPositionFixed,
TerrainProvider terrainProvider,
double minimumTerrainHeight,
double maximumTerrainHeight)
Computes the angle from the line of sight between the target and observer positions
and the direction to the point on terrain with the highest elevation angle.

static double 
computeElevationAngleAboveTerrain(Cartographic observerPosition,
Cartographic targetPosition,
TerrainProvider terrainProvider)
Computes the angle from the line of sight between the target and observer positions
and the direction to the point on terrain with the highest elevation angle.

static double 
computeElevationAngleAboveTerrain(Cartographic observerPosition,
Cartographic targetPosition,
TerrainProvider terrainProvider,
double minimumTerrainHeight,
double maximumTerrainHeight)
Computes the angle from the line of sight between the target and observer positions
and the direction to the point on terrain with the highest elevation angle.

static Cartesian 
computePositionWithMaximumElevationAngle(Cartesian observerPositionFixed,
Cartesian targetPositionFixed,
TerrainProvider terrainProvider)

static Cartesian 
computePositionWithMaximumElevationAngle(Cartesian observerPositionFixed,
Cartesian targetPositionFixed,
TerrainProvider terrainProvider,
double minimumTerrainHeight,
double maximumTerrainHeight)

static Cartesian 
computePositionWithMaximumElevationAngle(Cartographic observerPosition,
Cartographic targetPosition,
TerrainProvider terrainProvider)

static Cartesian 
computePositionWithMaximumElevationAngle(Cartographic observerPosition,
Cartographic targetPosition,
TerrainProvider terrainProvider,
double minimumTerrainHeight,
double maximumTerrainHeight)

static Cartographic 
computeTerrainIntersection(Cartesian cartesian,
Cartographic cartographic,
UnitCartesian direction,
double granularity,
double maximumDistance,
TerrainProvider terrainProvider)
Computes the location of the first intersection with terrain from the provided location along the indicated direction.

static Cartographic 
computeTerrainIntersection(Cartesian cartesian,
Cartographic cartographic,
UnitCartesian direction,
double granularity,
double maximumDistance,
TerrainProvider terrainProvider,
double minimumTerrainHeight,
double maximumTerrainHeight)
Computes the location of the first intersection with terrain from the provided location along the indicated direction.

static Cartographic 
computeTerrainIntersection(Cartesian cartesian,
UnitCartesian direction,
double granularity,
double maximumDistance,
TerrainProvider terrainProvider)
Computes the location of the first intersection with terrain from the provided location along the indicated direction.

static Cartographic 
computeTerrainIntersection(Cartesian cartesian,
UnitCartesian direction,
double granularity,
double maximumDistance,
TerrainProvider terrainProvider,
double minimumTerrainHeight,
double maximumTerrainHeight)
Computes the location of the first intersection with terrain from the provided location along the indicated direction.

static Cartographic 
computeTerrainIntersection(Cartographic cartographic,
UnitCartesian direction,
double granularity,
double maximumDistance,
TerrainProvider terrainProvider)
Computes the location of the first intersection with terrain from the provided location along the indicated direction.

static Cartographic 
computeTerrainIntersection(Cartographic cartographic,
UnitCartesian direction,
double granularity,
double maximumDistance,
TerrainProvider terrainProvider,
double minimumTerrainHeight,
double maximumTerrainHeight)
Computes the location of the first intersection with terrain from the provided location along the indicated direction.

public static final double DefaultMinimumTerrainHeight
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.public static final double DefaultMaximumTerrainHeight
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.@Nonnull public static Cartesian computePositionWithMaximumElevationAngle(@Nonnull Cartesian observerPositionFixed, @Nonnull Cartesian targetPositionFixed, @Nonnull TerrainProvider terrainProvider)
Shape
(get
/ set
).
The TerrainAlongLine.DefaultMinimumTerrainHeight
and TerrainAlongLine.DefaultMaximumTerrainHeight
are used for the computation.observerPositionFixed
 The position of the observer object, expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.targetPositionFixed
 The position of the target object, expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.terrainProvider
 The terrain provider describing the terrain that is potentially obscuring the path between the two objects.Shape
(get
/ set
).ArgumentNullException
 Thrown if terrainProvider
is null
.@Nonnull public static Cartesian computePositionWithMaximumElevationAngle(@Nonnull Cartesian observerPositionFixed, @Nonnull Cartesian targetPositionFixed, @Nonnull TerrainProvider terrainProvider, double minimumTerrainHeight, double maximumTerrainHeight)
Shape
(get
/ set
).observerPositionFixed
 The position of the observer object, expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.targetPositionFixed
 The position of the target object, expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.terrainProvider
 The terrain provider describing the terrain that is potentially obscuring the path
between the two objects.minimumTerrainHeight
 The minimum height in meters that can be returned by the
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.
Setting this value lower than necessary will not affect the results, but it will decrease
performance. Setting it too high can cause incorrect results. For realistic Earthbased terrain data,
TerrainAlongLine.DefaultMinimumTerrainHeight
is a safe value to use for this parameter.maximumTerrainHeight
 The maximum height in meters that can be returned by the
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.
Setting this value higher than necessary will not affect the results, but it will decrease
performance. Setting it too low can cause incorrect results. For realistic Earthbased terrain data,
TerrainAlongLine.DefaultMaximumTerrainHeight
is a safe value to use for this parameter.Shape
(get
/ set
).ArgumentNullException
 Thrown if terrainProvider
is null
.@Nonnull public static Cartesian computePositionWithMaximumElevationAngle(@Nonnull Cartographic observerPosition, @Nonnull Cartographic targetPosition, @Nonnull TerrainProvider terrainProvider)
Shape
(get
/ set
).
The TerrainAlongLine.DefaultMinimumTerrainHeight
and TerrainAlongLine.DefaultMaximumTerrainHeight
are used for the computation.observerPosition
 The planetodetic position of the observer object, expressed as a longitude, latitude, and altitude
relative to the ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.targetPosition
 The planetodetic position of the target object, expressed as a longitude, latitude, and altitude
relative to the ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.terrainProvider
 The terrain provider describing the terrain that is potentially obscuring the path
between the two objects.Shape
(get
/ set
).ArgumentNullException
 Thrown if terrainProvider
is null
.@Nonnull public static Cartesian computePositionWithMaximumElevationAngle(@Nonnull Cartographic observerPosition, @Nonnull Cartographic targetPosition, @Nonnull TerrainProvider terrainProvider, double minimumTerrainHeight, double maximumTerrainHeight)
Shape
(get
/ set
).observerPosition
 The planetodetic position of the observer object, expressed as a longitude, latitude, and altitude
relative to the ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.targetPosition
 The planetodetic position of the target object, expressed as a longitude, latitude, and altitude
relative to the ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.terrainProvider
 The terrain provider describing the terrain that is potentially obscuring the path
between the two objects.minimumTerrainHeight
 The minimum height in meters that can be returned by the
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.
Setting this value lower than necessary will not affect the results, but it will decrease
performance. Setting it too high can cause incorrect results. For realistic Earthbased terrain data,
TerrainAlongLine.DefaultMinimumTerrainHeight
is a safe value to use for this parameter.maximumTerrainHeight
 The maximum height in meters that can be returned by the
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.
Setting this value higher than necessary will not affect the results, but it will decrease
performance. Setting it too low can cause incorrect results. For realistic Earthbased terrain data,
TerrainAlongLine.DefaultMaximumTerrainHeight
is a safe value to use for this parameter.Shape
(get
/ set
).ArgumentNullException
 Thrown if terrainProvider
is null
.public static double computeElevationAngleAboveTerrain(@Nonnull Cartesian observerPositionFixed, @Nonnull Cartesian targetPositionFixed, @Nonnull TerrainProvider terrainProvider)
Shape
(get
/ set
).
The TerrainAlongLine.DefaultMinimumTerrainHeight
and TerrainAlongLine.DefaultMaximumTerrainHeight
are used for the computation.observerPositionFixed
 The position of the observer object, expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.targetPositionFixed
 The position of the target object, expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.terrainProvider
 The terrain provider describing the terrain that is potentially obscuring the path
between the two objects.Shape
(get
/ set
).
Positive numbers indicate that the line of sight between the objects is not obscured by terrain.
Negative numbers indicate that it is obscured.ArgumentNullException
 Thrown if terrainProvider
is null
.public static double computeElevationAngleAboveTerrain(@Nonnull Cartesian observerPositionFixed, @Nonnull Cartesian targetPositionFixed, @Nonnull TerrainProvider terrainProvider, double minimumTerrainHeight, double maximumTerrainHeight)
Shape
(get
/ set
).observerPositionFixed
 The position of the observer object, expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.targetPositionFixed
 The position of the target object, expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.terrainProvider
 The terrain provider describing the terrain that is potentially obscuring the path
between the two objects.minimumTerrainHeight
 The minimum height in meters that can be returned by the
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.
Setting this value lower than necessary will not affect the results, but it will decrease
performance. Setting it too high can cause incorrect results. For realistic Earthbased terrain data,
TerrainAlongLine.DefaultMinimumTerrainHeight
is a safe value to use for this parameter.maximumTerrainHeight
 The maximum height in meters that can be returned by the
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.
Setting this value higher than necessary will not affect the results, but it will decrease
performance. Setting it too low can cause incorrect results. For realistic Earthbased terrain data,
TerrainAlongLine.DefaultMaximumTerrainHeight
is a safe value to use for this parameter.Shape
(get
/ set
).
Positive numbers indicate that the line of sight between the objects is not obscured by terrain.
Negative numbers indicate that it is obscured.ArgumentNullException
 Thrown if terrainProvider
is null
.public static double computeElevationAngleAboveTerrain(@Nonnull Cartographic observerPosition, @Nonnull Cartographic targetPosition, @Nonnull TerrainProvider terrainProvider)
Shape
(get
/ set
).
The TerrainAlongLine.DefaultMinimumTerrainHeight
and TerrainAlongLine.DefaultMaximumTerrainHeight
are used for the computation.observerPosition
 The planetodetic position of the observer object, expressed as a longitude, latitude, and altitude
relative to the ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.targetPosition
 The planetodetic position of the target object, expressed as a longitude, latitude, and altitude
relative to the ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.terrainProvider
 The terrain provider describing the terrain that is potentially obscuring the path
between the two objects.Shape
(get
/ set
).
Positive numbers indicate that the line of sight between the objects is not obscured by terrain.
Negative numbers indicate that it is obscured.ArgumentNullException
 Thrown if terrainProvider
is null
.public static double computeElevationAngleAboveTerrain(@Nonnull Cartographic observerPosition, @Nonnull Cartographic targetPosition, @Nonnull TerrainProvider terrainProvider, double minimumTerrainHeight, double maximumTerrainHeight)
Shape
(get
/ set
).observerPosition
 The planetodetic position of the observer object, expressed as a longitude, latitude, and altitude
relative to the ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.targetPosition
 The planetodetic position of the target object, expressed as a longitude, latitude, and altitude
relative to the ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.terrainProvider
 The terrain provider describing the terrain that is potentially obscuring the path
between the two objects.minimumTerrainHeight
 The minimum height in meters that can be returned by the
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.
Setting this value lower than necessary will not affect the results, but it will decrease
performance. Setting it too high can cause incorrect results. For realistic Earthbased terrain data,
TerrainAlongLine.DefaultMinimumTerrainHeight
is a safe value to use for this parameter.maximumTerrainHeight
 The maximum height in meters that can be returned by the
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.
Setting this value higher than necessary will not affect the results, but it will decrease
performance. Setting it too low can cause incorrect results. For realistic Earthbased terrain data,
TerrainAlongLine.DefaultMaximumTerrainHeight
is a safe value to use for this parameter.Shape
(get
/ set
).
Positive numbers indicate that the line of sight between the objects is not obscured by terrain.
Negative numbers indicate that it is obscured.ArgumentNullException
 Thrown if terrainProvider
is null
.@Nullable public static Cartographic computeTerrainIntersection(@Nonnull Cartesian cartesian, @Nonnull UnitCartesian direction, double granularity, double maximumDistance, @Nonnull TerrainProvider terrainProvider)
TerrainAlongLine.DefaultMinimumTerrainHeight
and TerrainAlongLine.DefaultMaximumTerrainHeight
are used for the computation.cartesian
 The Cartesian representation of the location expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the terrainProvider
.direction
 The direction along which to check for intersection with terrain.granularity
 The sampling step as a positively valued fraction of the terrain resolution.maximumDistance
 A positively valued limit on the distance in meters along
the indicated direction
at which intersection with terrain is no longer checked.terrainProvider
 The terrain provider describing the terrain that is potentially obscuring the path
between the two objects.Shape
(get
/ set
) property of the
terrainProvider
or null if no intersection exists. The provided location may be returned
as the point of intersection if it lies on the terrain surface and the indicated direction is directly
into the terrain surface.ArgumentNullException
 Thrown if terrainProvider
is null
.@Nullable public static Cartographic computeTerrainIntersection(@Nonnull Cartesian cartesian, @Nonnull UnitCartesian direction, double granularity, double maximumDistance, @Nonnull TerrainProvider terrainProvider, double minimumTerrainHeight, double maximumTerrainHeight)
cartesian
 The Cartesian representation of the location expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the terrainProvider
.direction
 The direction along which to check for intersection with terrain.granularity
 The sampling step as a positively valued fraction of the terrain resolution.maximumDistance
 A positively valued limit on the distance in meters along
the indicated direction
at which intersection with terrain is no longer checked.terrainProvider
 The terrain provider describing the terrain that is potentially obscuring the path
between the two objects.minimumTerrainHeight
 The minimum height in meters that can be returned by the
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.
Setting this value lower than necessary will not affect the results, but it will decrease
performance. Setting it too high can cause incorrect results. For realistic Earthbased terrain data,
TerrainAlongLine.DefaultMinimumTerrainHeight
is a safe value to use for this parameter.maximumTerrainHeight
 The maximum height in meters that can be returned by the
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.
Setting this value higher than necessary will not affect the results, but it will decrease
performance. Setting it too low can cause incorrect results. For realistic Earthbased terrain data,
TerrainAlongLine.DefaultMaximumTerrainHeight
is a safe value to use for this parameter.Shape
(get
/ set
) property of the
terrainProvider
or null if no intersection exists. The provided location may be returned
as the point of intersection if it lies on the terrain surface and the indicated direction is directly
into the terrain surface.ArgumentNullException
 Thrown if terrainProvider
is null
.@Nullable public static Cartographic computeTerrainIntersection(@Nonnull Cartographic cartographic, @Nonnull UnitCartesian direction, double granularity, double maximumDistance, @Nonnull TerrainProvider terrainProvider)
TerrainAlongLine.DefaultMinimumTerrainHeight
and TerrainAlongLine.DefaultMaximumTerrainHeight
are used for the computation.cartographic
 The planetodetic cartographic representation of the location expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.direction
 The direction along which to check for intersection with terrain.granularity
 The sampling step as a positively valued fraction of the terrain resolution.maximumDistance
 A positively valued limit on the distance in meters along
the indicated direction
at which intersection with terrain is no longer checked.terrainProvider
 The terrain provider describing the terrain that is potentially obscuring the path
between the two objects.Shape
(get
/ set
) property of the
terrainProvider
or null if no intersection exists. The provided location may be returned
as the point of intersection if it lies on the terrain surface and the indicated direction is directly
into the terrain surface.ArgumentNullException
 Thrown if terrainProvider
is null
.@Nullable public static Cartographic computeTerrainIntersection(@Nonnull Cartographic cartographic, @Nonnull UnitCartesian direction, double granularity, double maximumDistance, @Nonnull TerrainProvider terrainProvider, double minimumTerrainHeight, double maximumTerrainHeight)
cartographic
 The planetodetic cartographic representation of the location expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.direction
 The direction along which to check for intersection with terrain.granularity
 The sampling step as a positively valued fraction of the terrain resolution.maximumDistance
 A positively valued limit on the distance in meters along
the indicated direction
at which intersection with terrain is no longer checked.terrainProvider
 The terrain provider describing the terrain that is potentially obscuring the path
between the two objects.minimumTerrainHeight
 The minimum height in meters that can be returned by the
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.
Setting this value lower than necessary will not affect the results, but it will decrease
performance. Setting it too high can cause incorrect results. For realistic Earthbased terrain data,
TerrainAlongLine.DefaultMinimumTerrainHeight
is a safe value to use for this parameter.maximumTerrainHeight
 The maximum height in meters that can be returned by the
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.
Setting this value higher than necessary will not affect the results, but it will decrease
performance. Setting it too low can cause incorrect results. For realistic Earthbased terrain data,
TerrainAlongLine.DefaultMaximumTerrainHeight
is a safe value to use for this parameter.Shape
(get
/ set
) property of the
terrainProvider
or null if no intersection exists. The provided location may be returned
as the point of intersection if it lies on the terrain surface and the indicated direction is directly
into the terrain surface.ArgumentNullException
 Thrown if terrainProvider
is null
.@Nullable public static Cartographic computeTerrainIntersection(@Nonnull Cartesian cartesian, @Nonnull Cartographic cartographic, @Nonnull UnitCartesian direction, double granularity, double maximumDistance, @Nonnull TerrainProvider terrainProvider)
Cartesian
and Cartographic
representations of the location are provided
which eliminates the need for conversion within the algorithm and results in greater efficiency.
The TerrainAlongLine.DefaultMinimumTerrainHeight
and TerrainAlongLine.DefaultMaximumTerrainHeight
are used for the computation.cartesian
 The Cartesian representation of the location expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the terrainProvider
.cartographic
 The planetodetic cartographic representation of the location expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.direction
 The direction along which to check for intersection with terrain.granularity
 The sampling step as a positively valued fraction of the terrain resolution.maximumDistance
 A positively valued limit on the distance in meters along
the indicated direction
at which intersection with terrain is no longer checked.terrainProvider
 The terrain provider describing the terrain that is potentially obscuring the path
between the two objects.Shape
(get
/ set
) property of the
terrainProvider
or null if no intersection exists. The provided location may be returned
as the point of intersection if it lies on the terrain surface and the indicated direction is directly
into the terrain surface.ArgumentNullException
 Thrown if terrainProvider
is null
.@Nullable public static Cartographic computeTerrainIntersection(@Nonnull Cartesian cartesian, @Nonnull Cartographic cartographic, @Nonnull UnitCartesian direction, double granularity, double maximumDistance, @Nonnull TerrainProvider terrainProvider, double minimumTerrainHeight, double maximumTerrainHeight)
Cartesian
and Cartographic
representations of the location are provided
which eliminates the need for conversion within the algorithm and results in greater efficiency.cartesian
 The Cartesian representation of the location expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the terrainProvider
.cartographic
 The planetodetic cartographic representation of the location expressed in the reference frame fixed to the
ellipsoid specified by the Shape
(get
/ set
) property of the
terrainProvider
.direction
 The direction along which to check for intersection with terrain.granularity
 The sampling step as a positively valued fraction of the terrain resolution.maximumDistance
 A positively valued limit on the distance in meters along
the indicated direction
at which intersection with terrain is no longer checked.terrainProvider
 The terrain provider describing the terrain that is potentially obscuring the path
between the two objects.minimumTerrainHeight
 The minimum height in meters that can be returned by the
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.
Setting this value lower than necessary will not affect the results, but it will decrease
performance. Setting it too high can cause incorrect results. For realistic Earthbased terrain data,
TerrainAlongLine.DefaultMinimumTerrainHeight
is a safe value to use for this parameter.maximumTerrainHeight
 The maximum height in meters that can be returned by the
TerrainProvider's
TerrainProvider.getHeightRelativeToShape(double, double)
method.
Setting this value higher than necessary will not affect the results, but it will decrease
performance. Setting it too low can cause incorrect results. For realistic Earthbased terrain data,
TerrainAlongLine.DefaultMaximumTerrainHeight
is a safe value to use for this parameter.Shape
(get
/ set
) property of the
terrainProvider
or null if no intersection exists. The provided location may be returned
as the point of intersection if it lies on the terrain surface and the indicated direction is directly
into the terrain surface.ArgumentNullException
 Thrown if terrainProvider
is null
.