java.lang.Object
com.gluonhq.attach.position.impl.geotools.AbstractMathTransform
com.gluonhq.attach.position.impl.geotools.VerticalTransform
Direct Known Subclasses:
EarthGravitationalModel

public abstract class VerticalTransform extends AbstractMathTransform
Base class for transformations from a height above the ellipsoid to a height above the geoid. This transform expects three-dimensional geographic coordinates in (longitude,latitude,height) order. The transformations are usually backed by some ellipsoid-dependent database.
Since:
3.9.0
  • Nested Class Summary

    Nested classes/interfaces inherited from class com.gluonhq.attach.position.impl.geotools.AbstractMathTransform

    AbstractMathTransform.Inverse
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Creates a new instance of VerticalTransform.
  • Method Summary

    Modifier and Type
    Method
    Description
    final int
    Gets the dimension of input points.
    final int
    Gets the dimension of output points.
    protected abstract double
    heightOffset(double longitude, double latitude, double height)
    Returns the value to add to a height above the ellipsoid in order to get a height above the geoid for the specified geographic coordinate.
    void
    transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts)
    Transforms a list of coordinate point ordinal values.
    void
    transform(float[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts)
    Transforms a list of coordinate point ordinal values.

    Methods inherited from class com.gluonhq.attach.position.impl.geotools.AbstractMathTransform

    hashCode, isIdentity, needCopy, rollLongitude

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • VerticalTransform

      protected VerticalTransform()
      Creates a new instance of VerticalTransform.
  • Method Details

    • getSourceDimensions

      public final int getSourceDimensions()
      Gets the dimension of input points.
      Specified by:
      getSourceDimensions in class AbstractMathTransform
    • getTargetDimensions

      public final int getTargetDimensions()
      Gets the dimension of output points.
      Specified by:
      getTargetDimensions in class AbstractMathTransform
    • heightOffset

      protected abstract double heightOffset(double longitude, double latitude, double height) throws Exception
      Returns the value to add to a height above the ellipsoid in order to get a height above the geoid for the specified geographic coordinate.
      Parameters:
      longitude - The geodetic longitude, in decimal degrees.
      latitude - The geodetic latitude, in decimal degrees.
      height - The height above the ellipsoid in metres.
      Returns:
      The value to add in order to get the height above the geoid (in metres).
      Throws:
      Exception - if the offset can't be computed for the specified coordinates.
    • transform

      public void transform(float[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts) throws Exception
      Transforms a list of coordinate point ordinal values.
      Throws:
      Exception
    • transform

      public void transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) throws Exception
      Transforms a list of coordinate point ordinal values.
      Throws:
      Exception