Package org.apache.sis.referencing.operation.projection

## Class Mollweide

- Object
- - FormattableObject
  - - AbstractMathTransform
    - - AbstractMathTransform2D
      - - NormalizedProjection
        - - Mollweide

- All Implemented Interfaces:
    `Serializable`, `Parameterized`, `LenientComparable`, `MathTransform`, `MathTransform2D`

      public class Mollweide
      extends NormalizedProjection

  Mollweide projection. See the Mollweide projection on MathWorld or the Mollweide projection on Wikipedia for an overview.
  Since:
    1.0
  See Also:
    Serialized Form

  Defined in the `sis-referencing` module

  TODO:
    This projection is not `surjective`. Consequently `CRS​.suggestCommonTarget(…)` may not work correctly if a CRS uses this projection. See SIS-427.

- - ### Nested Class Summary

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

      `NormalizedProjection​.ParameterRole`

  - ### Field Summary

    - ### Fields inherited from class NormalizedProjection

      `eccentricity, eccentricitySquared`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Mollweide​(OperationMethod method, Parameters parameters)` | Creates a Mollweide projection from the given parameters.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `inverseTransform​(double[] srcPts, int srcOff, double[] dstPts, int dstOff)` | Converts the specified (x,y) coordinates and stores the result in `dstPts` (angles in radians).
    `Matrix` | `transform​(double[] srcPts, int srcOff, double[] dstPts, int dstOff, boolean derivate)` | Converts the specified (λ,φ) coordinate and stores the (x,y) result in `dstPts`.

    - ### Methods inherited from class NormalizedProjection

      `computeHashCode, createMapProjection, equals, getContextualParameters, getParameterDescriptors, getParameterValues, inverse, tryConcatenate`

    - ### Methods inherited from class AbstractMathTransform2D

      `createTransformedShape, derivative, getSourceDimensions, getTargetDimensions, transform`

    - ### Methods inherited from class AbstractMathTransform

      `derivative, equals, formatTo, hashCode, isIdentity, transform, transform, transform, transform, transform`

    - ### 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 MathTransform

      `derivative, isIdentity, toWKT, transform, transform, transform, transform, transform`

- - ### Constructor Detail

    - #### Mollweide

          public Mollweide​(OperationMethod method,
                           Parameters parameters)

      Creates a Mollweide projection from the given parameters. The `method` argument can be the description of one of the following:
      - "Mollweide", also known as "Homalographic" or "Homolographic".
      Parameters:
        `method` - description of the projection parameters.
        `parameters` - the parameter values of the projection to create.

  - ### Method Detail

    - #### transform

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

      Converts the specified (λ,φ) coordinate and stores the (x,y) result in `dstPts`. The units of measurement are implementation-specific (see subclass javadoc).
      Specified by:
        `transform` in class `NormalizedProjection`
      Parameters:
        `srcPts` - the array containing the source point coordinate, as (longitude, latitude) angles in radians.
        `srcOff` - the offset of the single coordinate to be converted in the source array.
        `dstPts` - the array into which the converted coordinate is returned (may be the same than `srcPts`). Coordinates will be expressed in a dimensionless unit, as a linear distance on a unit sphere or ellipse.
        `dstOff` - the offset of the location of the converted coordinate that is stored in the destination array.
        `derivate` - `true` for computing the derivative, or `false` if not needed.
      Returns:
        the matrix of the projection derivative at the given source position, or `null` if the `derivate` argument is `false`.
      Throws:
        `ProjectionException` - if the coordinate can not be converted.
      See Also:
        `AbstractMathTransform​.derivative(DirectPosition)`, `AbstractMathTransform​.transform(DirectPosition, DirectPosition)`, `MathTransforms​.derivativeAndTransform(MathTransform, double[], int, double[], int)`

    - #### inverseTransform

          protected void inverseTransform​(double[] srcPts,
                                          int srcOff,
                                          double[] dstPts,
                                          int dstOff)

      Converts the specified (x,y) coordinates and stores the result in `dstPts` (angles in radians).
      Specified by:
        `inverseTransform` in class `NormalizedProjection`
      Parameters:
        `srcPts` - the array containing the source point coordinate, as linear distance on a unit sphere or ellipse.
        `srcOff` - the offset of the point to be converted in the source array.
        `dstPts` - the array into which the converted point coordinate is returned (may be the same than `srcPts`). Coordinates will be (longitude, latitude) angles in radians.
        `dstOff` - the offset of the location of the converted point that is stored in the destination array.