Class BasicScanAlgorithm

  • All Implemented Interfaces:
    IntersectionAlgorithm

    public class BasicScanAlgorithm
    extends Object
    implements IntersectionAlgorithm
    Intersection computation using a basic algorithm based on exhaustive scan.

    The algorithm simply computes entry and exit points at high and low altitudes, and scans all Digital Elevation Models in the sub-tiles defined by these two corner points. It is not designed for operational use.

    Author:
    Luc Maisonobe, Guylaine Prat
    • Constructor Detail

      • BasicScanAlgorithm

        public BasicScanAlgorithm​(TileUpdater updater,
                                  int maxCachedTiles,
                                  boolean isOverlappingTiles)
        Simple constructor.
        Parameters:
        updater - updater used to load Digital Elevation Model tiles
        maxCachedTiles - maximum number of tiles stored in the cache
        isOverlappingTiles - flag to tell if the DEM tiles are overlapping: true if overlapping; false otherwise.
    • Method Detail

      • refineIntersection

        public NormalizedGeodeticPoint refineIntersection​(ExtendedEllipsoid ellipsoid,
                                                          Vector3D position,
                                                          Vector3D los,
                                                          NormalizedGeodeticPoint closeGuess)
        Refine intersection of line with Digital Elevation Model.

        This method is used to refine an intersection when a close guess is already known. The intersection is typically looked for by a direct cell intersection in the tile which already contains the close guess, or any similar very fast algorithm.

        Specified by:
        refineIntersection in interface IntersectionAlgorithm
        Parameters:
        ellipsoid - reference ellipsoid
        position - pixel position in ellipsoid frame
        los - pixel line-of-sight in ellipsoid frame
        closeGuess - guess close to the real intersection
        Returns:
        point at which the line first enters ground
      • getElevation

        public double getElevation​(double latitude,
                                   double longitude)
        Get elevation at a given ground point.
        Specified by:
        getElevation in interface IntersectionAlgorithm
        Parameters:
        latitude - ground point latitude
        longitude - ground point longitude
        Returns:
        elevation at specified point