IntersectionAlgorithm
public class DuvenhageAlgorithm extends Object implements IntersectionAlgorithm
The algorithm is described in the 2009 paper: Using An Implicit Min/Max KD-Tree for Doing Efficient Terrain Line of Sight Calculations.
Constructor | Description |
---|---|
DuvenhageAlgorithm(TileUpdater updater,
int maxCachedTiles,
boolean flatBody) |
Simple constructor.
|
Modifier and Type | Method | Description |
---|---|---|
double |
getElevation(double latitude,
double longitude) |
Get elevation at a given ground point.
|
NormalizedGeodeticPoint |
intersection(ExtendedEllipsoid ellipsoid,
org.hipparchus.geometry.euclidean.threed.Vector3D position,
org.hipparchus.geometry.euclidean.threed.Vector3D los) |
Compute intersection of line with Digital Elevation Model.
|
NormalizedGeodeticPoint |
refineIntersection(ExtendedEllipsoid ellipsoid,
org.hipparchus.geometry.euclidean.threed.Vector3D position,
org.hipparchus.geometry.euclidean.threed.Vector3D los,
NormalizedGeodeticPoint closeGuess) |
Refine intersection of line with Digital Elevation Model.
|
public DuvenhageAlgorithm(TileUpdater updater, int maxCachedTiles, boolean flatBody)
updater
- updater used to load Digital Elevation Model tilesmaxCachedTiles
- maximum number of tiles stored in the cacheflatBody
- if true, the body is considered flat, i.e. lines computed
from entry/exit points in the DEM are considered to be straight lines also
in geodetic coordinates. The sagitta resulting from real ellipsoid curvature
is therefore not corrected in this case. As this computation is not
costly (a few percents overhead), it is highly recommended to set this parameter
to false
. This flag is mainly intended for comparison purposes with other systems.public NormalizedGeodeticPoint intersection(ExtendedEllipsoid ellipsoid, org.hipparchus.geometry.euclidean.threed.Vector3D position, org.hipparchus.geometry.euclidean.threed.Vector3D los)
intersection
in interface IntersectionAlgorithm
ellipsoid
- reference ellipsoidposition
- pixel position in ellipsoid framelos
- pixel line-of-sight in ellipsoid framepublic NormalizedGeodeticPoint refineIntersection(ExtendedEllipsoid ellipsoid, org.hipparchus.geometry.euclidean.threed.Vector3D position, org.hipparchus.geometry.euclidean.threed.Vector3D los, NormalizedGeodeticPoint closeGuess)
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.
refineIntersection
in interface IntersectionAlgorithm
ellipsoid
- reference ellipsoidposition
- pixel position in ellipsoid framelos
- pixel line-of-sight in ellipsoid framecloseGuess
- guess close to the real intersectionpublic double getElevation(double latitude, double longitude)
getElevation
in interface IntersectionAlgorithm
latitude
- ground point latitudelongitude
- ground point longitudeCopyright © 2014-2019 CS Systèmes d'information. All rights reserved.