org.apache.sis.referencing.operation.transform

## Class AbstractMathTransform1D.Inverse

- Object
- - FormattableObject
  - - AbstractMathTransform
    - - AbstractMathTransform.Inverse
      - - AbstractMathTransform1D.Inverse

- All Implemented Interfaces:
    Serializable, Parameterized, LenientComparable, MathTransform, MathTransform1D
  Enclosing class:
    AbstractMathTransform1D

      protected abstract class AbstractMathTransform1D.Inverse
      extends AbstractMathTransform.Inverse
      implements MathTransform1D

  Base class for implementation of inverse math transforms. This inner class is the inverse of the enclosing `AbstractMathTransform1D`.
  Serialization
  Instances of this class are serializable only if the enclosing math transform is also serializable. Serialized math transforms are not guaranteed to be compatible with future SIS versions. Serialization, if allowed, should be used only for short term storage or RMI between applications running the same SIS version.
  Since:
    0.7
  See Also:
    Serialized Form

  Defined in the `sis-referencing` module

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class AbstractMathTransform

      `AbstractMathTransform​.Inverse`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `Inverse()` Constructs an inverse math transform.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Matrix` | `derivative(DirectPosition point)` Gets the derivative of this transform at a point.
    `MathTransform1D` | `inverse()` Returns the enclosing math transform.
    `Matrix` | `transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, boolean derivate)` Transforms a single point in the given array and opportunistically computes its derivative if requested.

    - ### Methods inherited from class AbstractMathTransform.Inverse

      `computeHashCode, equals, formatTo, getSourceDimensions, getTargetDimensions, isIdentity`

    - ### Methods inherited from class AbstractMathTransform

      `equals, getContextualParameters, getParameterDescriptors, getParameterValues, hashCode, transform, transform, transform, transform, transform, tryConcatenate`

    - ### Methods inherited from class FormattableObject

      `print, toString, toString, toWKT`

    - ### Methods inherited from class Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface MathTransform1D

      `derivative, transform`

    - ### Methods inherited from interface MathTransform

      `getSourceDimensions, getTargetDimensions, isIdentity, toWKT, transform, transform, transform, transform, transform`

- - ### Constructor Detail

    - #### Inverse

          protected Inverse()

      Constructs an inverse math transform.

  - ### Method Detail

    - #### inverse

          public MathTransform1D inverse()

      Returns the enclosing math transform.
      Specified by:
        `inverse` in interface `MathTransform`
      Specified by:
        `inverse` in interface `MathTransform1D`
      Overrides:
        `inverse` in class `AbstractMathTransform​.Inverse`
      Returns:
        the enclosing math transform.

    - #### transform

          public Matrix transform(double[] srcPts,
                                  int srcOff,
                                  double[] dstPts,
                                  int dstOff,
                                  boolean derivate)
                           throws TransformException

      Transforms a single point in the given array and opportunistically computes its derivative if requested. The default implementation delegates to `MathTransform1D​.transform(double)` and potentially to `MathTransform1D​.derivative(double)`. Subclasses may override this method for performance reason.
      Specified by:
        `transform` in class `AbstractMathTransform`
      Parameters:
        `srcPts` - the array containing the source coordinate (can not be `null`).
        `srcOff` - the offset to the point to be transformed in the source array.
        `dstPts` - the array into which the transformed coordinate is returned. May be the same than `srcPts`. May be `null` if only the derivative matrix is desired.
        `dstOff` - the offset to the location of the transformed point that is stored in the destination array.
        `derivate` - `true` for computing the derivative, or `false` if not needed.
      Returns:
        the matrix of the transform derivative at the given source position, or `null` if the `derivate` argument is `false`.
      Throws:
        `TransformException` - if the point can not be transformed or if a problem occurred while calculating the derivative.
      See Also:
        `AbstractMathTransform​.derivative(DirectPosition)`, `AbstractMathTransform​.transform(DirectPosition, DirectPosition)`, `MathTransforms​.derivativeAndTransform(MathTransform, double[], int, double[], int)`

    - #### derivative

          public Matrix derivative(DirectPosition point)
                            throws TransformException

      Gets the derivative of this transform at a point. The default implementation ensures that `point` is one-dimensional, then delegates to `MathTransform1D​.derivative(double)`.
      Specified by:
        `derivative` in interface `MathTransform`
      Overrides:
        `derivative` in class `AbstractMathTransform​.Inverse`
      Parameters:
        `point` - the coordinate point where to evaluate the derivative, or `null`.
      Returns:
        the derivative at the specified point (never `null`).
      Throws:
        `MismatchedDimensionException` - if `point` does not have the expected dimension.
        `TransformException` - if the derivative can not be evaluated at the specified point.

Copyright © 2010–2017 The Apache Software Foundation. All rights reserved.