public interface ILcdLOSPropagationFunction
ILcdLOSCoverageMatrix
.
Typical for a propagation function is that previous results are being reused (hence the name
propagation). For example, when a point is no longer visible from a certain distance, it will
not be visible from another point at a greater distance in the same direction (or azimuth).
The function is initialized with the method initialize(ILcdLOSCoverage, ILcdGeoReference)
. The
TLcdLOSCoverage
contains the area on which the propagation function will be applied. The
matrix reference is the ILcdGeoReference
in which the computation is done. This reference
should be the reference in which the matrix argument of the method applyForAzimuthSFCT
is
defined. For performance reasons, it is recommended that this method initializes all precomputational
fields.
The method createLOSCoverageMatrix(ILcdLOSCoverage, ILcdGeoReference)
creates an empty matrix,
that can be used with this propagation function. It requires a coverage and a matrix reference, needed
to initialize the matrix. The matrix reference is the ILcdGeoReference
in which the matrix
will be defined.
Note that the matrix argument passed in the method applyForAzimuthSFCT(double, ILcdLOSCoverageMatrix)
must also be initialized with the same coverage and matrix reference as given in the initialize
method. The result of the interface method createLOSCoverageMatrix
will be used as input for this
method.
TLcdLOSCoverageFactory
Modifier and Type  Method and Description 

void 
applyForAzimuthSFCT(double aAzimuth,
ILcdLOSCoverageMatrix aLOSCoverageMatrixSFCT)
Applies the function for the given azimuth and stores the results 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 . 
ILcdLOSCoverageMatrix createLOSCoverageMatrix(ILcdLOSCoverage aLOSCoverage, ILcdGeoReference aMatrixReference)
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 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
.
aLOSCoverage
 The covered area and the intermediate step sizes.aMatrixReference
 The reference in which this matrix is defined.void initialize(ILcdLOSCoverage aLOSCoverage, ILcdGeoReference aMatrixReference)
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.aLOSCoverage
 The covered area to use.aMatrixReference
 The matrix reference in which to compute the matrix values.java.lang.NullPointerException
 if a null
argument is found.java.lang.IllegalArgumentException
 if the initialization fails due to an invalid argument, e.g.
when the coverage center point is located underneath the terrain,...void applyForAzimuthSFCT(double aAzimuth, ILcdLOSCoverageMatrix aLOSCoverageMatrixSFCT)
Keep in mind that the given matrix must be initialized with the same coverage and same reference
as those given in the initialization. The result of the method createLOSCoverageMatrix
will be used as input parameter for this method.
aAzimuth
 The azimuth in degrees.aLOSCoverageMatrixSFCT
 The coverage matrix to update.java.lang.NullPointerException
 if the aLOSCoverageMatrixSFCT is null
.