public class TLcdLOSPropagationFunctionFixedHeight extends Object implements ILcdLOSPropagationFunction
This propagation function needs an ILcdLOSPropagationFunction
on which it will base its
lineofsight computations. The radar propagation function computes the minimal heights from which
one is visible. These heights, combined with the cone of visibility, are compared to the given fixed
height, resulting in one of the following values:
VISIBLE
: for points where the object is visible.INVISIBLE
: for points where the object is invisible.CONE_OF_SILENCE
: for the points corresponding to the cone of silence
around the given point.UNKNOWN
: for points where the visibility is unknown. For example when
no elevation data or invalid data was found at that point.The following image gives a visual explanation of this propagation function. The green line denotes the visible area at the given fixed height, the red line corresponds to the invisible area and the blue line to the area represented by the cone of silence. The thin black line corresponds to the lineofsight coverage matrix, needed by this function.
Modifier and Type  Field and Description 

static int 
CONE_OF_SILENCE
The resulting value for the points corresponding to the cone of
silence around the given point.

static int 
INVISIBLE
The resulting value for points where the object is invisible due
to the obstruction of the terrain.

static int 
UNKNOWN
The resulting value for points where the visibility is unknown.

static int 
VISIBLE
The resulting value for points where the object is visible.

Constructor and Description 

TLcdLOSPropagationFunctionFixedHeight(ILcdLOSRadarPropagationFunction aLOSRadarPropagationFunction,
double aFixedHeightAboveEllipsoid)
Creates a propagation function which computes the visibility of points at a fixed height from a given
point.

TLcdLOSPropagationFunctionFixedHeight(ILcdLOSRadarPropagationFunction aLOSRadarPropagationFunction,
double aFixedHeight,
TLcdCoverageAltitudeMode aFixedHeightMode)
Creates a propagation function which computes the visibility of points at a fixed height from a given
point.

TLcdLOSPropagationFunctionFixedHeight(ILcdLOSRadarPropagationFunction aLOSRadarPropagationFunction,
double aFixedHeight,
TLcdCoverageAltitudeMode aFixedHeightMode,
TLcdLOSOptions aLOSOption)
Creates a propagation function which computes the visibility of points at a fixed height from a given
point.

Modifier and Type  Method and Description 

void 
applyForAzimuthSFCT(double aAzimuth,
ILcdLOSCoverageMatrix aLOSCoverageMatrixSFCT)
Computes the visibility of points at a fixed height from the center point of a
lineofsight coverage for a given azimuth and stores the resulting values in
the lineofsight coverage matrix.

ILcdLOSCoverageMatrix 
createLOSCoverageMatrix(ILcdLOSCoverage aLOSCoverage,
ILcdGeoReference aMatrixReference)
Creates a coverage matrix using the lineofsight coverage
aLOSCoverage and the matrix
reference aMatrixReference . 
void 
initialize(ILcdLOSCoverage aLOSCoverage,
ILcdGeoReference aMatrixReference)
Initialize the propagation function with the given coverage
aLOSCoverage and the given
matrix reference aMatrixReference . 
public static final int INVISIBLE
public static final int UNKNOWN
public static final int CONE_OF_SILENCE
public static final int VISIBLE
public TLcdLOSPropagationFunctionFixedHeight(ILcdLOSRadarPropagationFunction aLOSRadarPropagationFunction, double aFixedHeightAboveEllipsoid)
null
. If this condition is not
met, a NullPointerException
will be thrown.aLOSRadarPropagationFunction
 The propagation function on which to base its computations.aFixedHeightAboveEllipsoid
 The fixed height value defined in meters above ellipsoid.NullPointerException
 when the argument aLOSRadarPropagationFunction
is
null
.IllegalArgumentException
 if the argument aLOSRadarPropagationFunction
does not use the mode TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
or
TLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
and if it uses the altitude
mode TLcdCoverageAltitudeMode.ABOVE_OBJECT
.public TLcdLOSPropagationFunctionFixedHeight(ILcdLOSRadarPropagationFunction aLOSRadarPropagationFunction, double aFixedHeight, TLcdCoverageAltitudeMode aFixedHeightMode)
null
. If this condition is not
met, a NullPointerException
will be thrown.aLOSRadarPropagationFunction
 The propagation function on which to base its computations.aFixedHeight
 The fixed height value.aFixedHeightMode
 The altitude mode indicating how to interpret the fixed height.NullPointerException
 when the argument aLOSRadarPropagationFunction
is
null
.IllegalArgumentException
 if the argument aLOSRadarPropagationFunction
does not use the mode TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
or
TLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
, if it uses the altitude
mode TLcdCoverageAltitudeMode.ABOVE_OBJECT
and if the argument aFixedHeight
is set to TLcdCoverageAltitudeMode.ABOVE_OBJECT
.public TLcdLOSPropagationFunctionFixedHeight(ILcdLOSRadarPropagationFunction aLOSRadarPropagationFunction, double aFixedHeight, TLcdCoverageAltitudeMode aFixedHeightMode, TLcdLOSOptions aLOSOption)
null
. If this condition is not
met, a NullPointerException
will be thrown.aLOSRadarPropagationFunction
 The propagation function on which to base its computations.aFixedHeight
 The fixed height value.aFixedHeightMode
 The altitude mode indicating how to interpret the fixed height.aLOSOption
 A LOS option object containing parameters for the internals of this
propagation function and its resulting coveragesNullPointerException
 when the argument aLOSRadarPropagationFunction
is
null
.IllegalArgumentException
 if the argument aLOSRadarPropagationFunction
does not use the mode TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
or
TLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
, if it uses the altitude
mode TLcdCoverageAltitudeMode.ABOVE_OBJECT
and if the argument aFixedHeight
is set to TLcdCoverageAltitudeMode.ABOVE_OBJECT
.public ILcdLOSCoverageMatrix createLOSCoverageMatrix(ILcdLOSCoverage aLOSCoverage, ILcdGeoReference aMatrixReference)
ILcdLOSPropagationFunction
aLOSCoverage
and the matrix
reference aMatrixReference
. The result of this method is used as input parameter for the
method applyForAzimuthSFCT
, which will store the actual matrix values. The matrix should
be consistent with the given coverage. This means that all matrix rows and columns represent evenly
spaced radii and azimuths as defined by the radial and angular step sizes of the lineofsight coverage.
The method ILcdLOSPropagationFunction.initialize(com.luciad.tea.ILcdLOSCoverage, com.luciad.reference.ILcdGeoReference)
is called with the same arguments as supplied with this method.
The ILcdLOSCoverageMatrix
created by this method is guaranteed to be capable of determining
its own associatedPointX and associatedPointY properties. These values are not calculated by this ILcdPropagationFunction
. An ILcdLOSPropagationFunction
does not modify the values of the associatedPointX and
associatedPointY for its created ILcdLOSCoverageMatrix
.
createLOSCoverageMatrix
in interface ILcdLOSPropagationFunction
aLOSCoverage
 The covered area and the intermediate step sizes.aMatrixReference
 The reference in which this matrix is defined.public void initialize(ILcdLOSCoverage aLOSCoverage, ILcdGeoReference aMatrixReference)
ILcdLOSPropagationFunction
aLOSCoverage
and the given
matrix reference aMatrixReference
. For performance reasons, it is recommended that this
method initializes all fields that are common to all computations or which do not depend on a specific
azimuth.initialize
in interface ILcdLOSPropagationFunction
aLOSCoverage
 The covered area to use.aMatrixReference
 The matrix reference in which to compute the matrix values.public void applyForAzimuthSFCT(double aAzimuth, ILcdLOSCoverageMatrix aLOSCoverageMatrixSFCT)
Note that this implementation assumes that the default value of a matrix entry
corresponds to the value for invisible points (which is INVISIBLE
). Refer
to the class documentation for more information about the different visibility
values used in this propagation function.
applyForAzimuthSFCT
in interface ILcdLOSPropagationFunction
aAzimuth
 The azimuth in degrees.aLOSCoverageMatrixSFCT
 The coverage matrix to update.NullPointerException
 if the aLOSCoverageMatrixSFCT is null
.