Package org.orekit.rugged.intersection
Class BasicScanAlgorithm
- java.lang.Object
-
- org.orekit.rugged.intersection.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 Summary
Constructors Constructor Description BasicScanAlgorithm(TileUpdater updater, int maxCachedTiles, boolean isOverlappingTiles)
Simple constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AlgorithmId
getAlgorithmId()
Get the algorithmId.double
getElevation(double latitude, double longitude)
Get elevation at a given ground point.NormalizedGeodeticPoint
intersection(ExtendedEllipsoid ellipsoid, Vector3D position, Vector3D los)
Compute intersection of line with Digital Elevation Model.NormalizedGeodeticPoint
refineIntersection(ExtendedEllipsoid ellipsoid, Vector3D position, Vector3D los, NormalizedGeodeticPoint closeGuess)
Refine intersection of line with Digital Elevation Model.
-
-
-
Constructor Detail
-
BasicScanAlgorithm
public BasicScanAlgorithm(TileUpdater updater, int maxCachedTiles, boolean isOverlappingTiles)
Simple constructor.- Parameters:
updater
- updater used to load Digital Elevation Model tilesmaxCachedTiles
- maximum number of tiles stored in the cacheisOverlappingTiles
- flag to tell if the DEM tiles are overlapping: true if overlapping; false otherwise.
-
-
Method Detail
-
intersection
public NormalizedGeodeticPoint intersection(ExtendedEllipsoid ellipsoid, Vector3D position, Vector3D los)
Compute intersection of line with Digital Elevation Model.- Specified by:
intersection
in interfaceIntersectionAlgorithm
- Parameters:
ellipsoid
- reference ellipsoidposition
- pixel position in ellipsoid framelos
- pixel line-of-sight in ellipsoid frame- Returns:
- point at which the line first enters ground
-
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 interfaceIntersectionAlgorithm
- Parameters:
ellipsoid
- reference ellipsoidposition
- pixel position in ellipsoid framelos
- pixel line-of-sight in ellipsoid framecloseGuess
- 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 interfaceIntersectionAlgorithm
- Parameters:
latitude
- ground point latitudelongitude
- ground point longitude- Returns:
- elevation at specified point
-
getAlgorithmId
public AlgorithmId getAlgorithmId()
Get the algorithmId.- Specified by:
getAlgorithmId
in interfaceIntersectionAlgorithm
- Returns:
- the algorithmId
-
-