## Class LinearTransform1D

• All Implemented Interfaces:
`Serializable`, `MathTransform`, `MathTransform1D`, `LinearTransform`

```public class LinearTransform1D
extends AbstractMathTransform
implements MathTransform1D, LinearTransform, Serializable```
A one dimensional, linear transform. Input values x are converted into output values y using the following equation:

y  =  offset + scale×x This class is the same as a 2×2 affine transform. However, this specialized `LinearTransform1D` class is faster. It is defined there because extensively used by `GridCoverage2D`.

Since:
2.0
Author:
Martin Desruisseaux (IRD)
`LogarithmicTransform1D`, `ExponentialTransform1D`, Serialized Form

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

`AbstractMathTransform.Inverse`
• ### Field Summary

Fields
Modifier and Type Field Description
`static LinearTransform1D` `IDENTITY`
The identity transform.
`double` `offset`
The value to add to input values.
`double` `scale`
The value which is multiplied to input values.
• ### Fields inherited from class Formattable

`SINGLE_LINE`
• ### Constructor Summary

Constructors
Modifier Constructor Description
`protected ` ```LinearTransform1D​(double scale, double offset)```
Constructs a new linear transform.
• ### Method Summary

All Methods
Modifier and Type Method Description
`static LinearTransform1D` ```create​(double scale, double offset)```
Constructs a new linear transform.
`double` `derivative​(double value)`
Gets the derivative of this function at a value.
`Matrix` `derivative​(Position point)`
Gets the derivative of this transform at a point.
`boolean` `equals​(Object object)`
Compares the specified object with this math transform for equality.
`Matrix` `getMatrix()`
Returns this transform as an affine transform matrix.
`ParameterDescriptorGroup` `getParameterDescriptors()`
Returns the parameter descriptors for this math transform.
`ParameterValueGroup` `getParameterValues()`
Returns the matrix elements as a group of parameters values.
`int` `getSourceDimensions()`
Gets the dimension of input points, which is 1.
`int` `getTargetDimensions()`
Gets the dimension of output points, which is 1.
`int` `hashCode()`
Returns a hash value for this transform.
`MathTransform1D` `inverse()`
Creates the inverse transform of this object.
`boolean` `isIdentity()`
Tests whether this transform does not move any points.
`boolean` `isIdentity​(double tolerance)`
Tests whether this transform does not move any points by using the provided tolerance.
`double` `transform​(double value)`
Transforms the specified value.
`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 AbstractMathTransform

`createTransformedShape, derivative, ensureNonNull, formatWKT, getName, needCopy, normalizeAngle, rollLongitude, transform, transform, transform, transform`
• ### Methods inherited from class Formattable

`cleanupThreadLocals, toString, toWKT, toWKT, toWKT, toWKT`
• ### Methods inherited from class Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`
• ### Methods inherited from interface MathTransform

`toWKT, transform, transform, transform`
• ### Field Detail

• #### IDENTITY

`public static final LinearTransform1D IDENTITY`
The identity transform.
• #### scale

`public final double scale`
The value which is multiplied to input values.
• #### offset

`public final double offset`
The value to add to input values.
• ### Constructor Detail

• #### LinearTransform1D

```protected LinearTransform1D​(double scale,
double offset)```
Constructs a new linear transform. This constructor is provided for subclasses only. Instances should be created using the factory method, which may returns optimized implementations for some particular argument values.
Parameters:
`scale` - The `scale` term in the linear equation.
`offset` - The `offset` term in the linear equation.
• ### Method Detail

• #### create

```public static LinearTransform1D create​(double scale,
double offset)```
Constructs a new linear transform.
Parameters:
`scale` - The `scale` term in the linear equation.
`offset` - The `offset` term in the linear equation.
• #### getParameterDescriptors

`public ParameterDescriptorGroup getParameterDescriptors()`
Returns the parameter descriptors for this math transform.
Overrides:
`getParameterDescriptors` in class `AbstractMathTransform`
Returns:
The parameter descriptors for this math transform, or `null`.
`OperationMethod.getParameters()`
• #### getParameterValues

`public ParameterValueGroup getParameterValues()`
Returns the matrix elements as a group of parameters values. The number of parameters depends on the matrix size. Only matrix elements different from their default value will be included in this group.
Overrides:
`getParameterValues` in class `AbstractMathTransform`
Returns:
A copy of the parameter values for this math transform.
`Operation.getParameterValues()`
• #### getSourceDimensions

`public int getSourceDimensions()`
Gets the dimension of input points, which is 1.
Specified by:
`getSourceDimensions` in interface `MathTransform`
Specified by:
`getSourceDimensions` in class `AbstractMathTransform`
Returns:
The dimension of input points.
• #### getTargetDimensions

`public int getTargetDimensions()`
Gets the dimension of output points, which is 1.
Specified by:
`getTargetDimensions` in interface `MathTransform`
Specified by:
`getTargetDimensions` in class `AbstractMathTransform`
Returns:
The dimension of output points.
• #### getMatrix

`public Matrix getMatrix()`
Returns this transform as an affine transform matrix.
Specified by:
`getMatrix` in interface `LinearTransform`
Returns:
A copy of the underlying matrix.
• #### inverse

```public MathTransform1D inverse()
throws NoninvertibleTransformException```
Creates the inverse transform of this object.
Specified by:
`inverse` in interface `MathTransform`
Specified by:
`inverse` in interface `MathTransform1D`
Overrides:
`inverse` in class `AbstractMathTransform`
Returns:
The inverse transform.
Throws:
`NoninvertibleTransformException` - if the transform can't be inversed.
• #### isIdentity

`public boolean isIdentity()`
Tests whether this transform does not move any points.
Specified by:
`isIdentity` in interface `MathTransform`
Overrides:
`isIdentity` in class `AbstractMathTransform`
Returns:
`true` if this `MathTransform` is an identity transform; `false` otherwise.
• #### isIdentity

`public boolean isIdentity​(double tolerance)`
Tests whether this transform does not move any points by using the provided tolerance. This method work in the same way than `XMatrix.isIdentity(double)`.
Specified by:
`isIdentity` in interface `LinearTransform`
Parameters:
`tolerance` - The tolerance factor.
Returns:
`true` if this transform is the identity one
Since:
2.3.1
• #### derivative

```public Matrix derivative​(Position point)
throws TransformException```
Gets the derivative of this transform at a point. This implementation is different from the default `AbstractMathTransform.derivative(java.awt.geom.Point2D)` implementation in that no coordinate point is required and `Double.NaN` may be a legal output value for some users.
Specified by:
`derivative` in interface `MathTransform`
Overrides:
`derivative` in class `AbstractMathTransform`
Parameters:
`point` - The coordinate point where to evaluate the derivative.
Returns:
The derivative at the specified point (never `null`).
Throws:
`TransformException` - if the derivative can't be evaluated at the specified point.
• #### derivative

`public double derivative​(double value)`
Gets the derivative of this function at a value.
Specified by:
`derivative` in interface `MathTransform1D`
Parameters:
`value` - The value where to evaluate the derivative.
Returns:
The derivative at the specified point.
• #### transform

`public double transform​(double value)`
Transforms the specified value.
Specified by:
`transform` in interface `MathTransform1D`
Parameters:
`value` - The value to transform.
Returns:
the transformed value.
• #### transform

```public void transform​(float[] srcPts,
int srcOff,
float[] dstPts,
int dstOff,
int numPts)```
Transforms a list of coordinate point ordinal values.
Specified by:
`transform` in interface `MathTransform`
Overrides:
`transform` in class `AbstractMathTransform`
Parameters:
`srcPts` - the array containing the source point coordinates.
`srcOff` - the offset to the first point to be transformed in the source array.
`dstPts` - the array into which the transformed point coordinates are returned. May be the same than `srcPts`.
`dstOff` - the offset to the location of the first transformed point that is stored in the destination array.
`numPts` - the number of point objects to be transformed.
• #### transform

```public void transform​(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
int numPts)```
Transforms a list of coordinate point ordinal values.
Specified by:
`transform` in interface `MathTransform`
Parameters:
`srcPts` - the array containing the source point coordinates.
`srcOff` - the offset to the first point to be transformed in the source array.
`dstPts` - the array into which the transformed point coordinates are returned. May be the same than `srcPts`.
`dstOff` - the offset to the location of the first transformed point that is stored in the destination array.
`numPts` - the number of point objects to be transformed.
• #### hashCode

`public int hashCode()`
Returns a hash value for this transform. This value need not remain consistent between different implementations of the same class.
Overrides:
`hashCode` in class `AbstractMathTransform`
• #### equals

`public boolean equals​(Object object)`
Compares the specified object with this math transform for equality.
Overrides:
`equals` in class `AbstractMathTransform`
Parameters:
`object` - The object to compare with this transform.
Returns:
`true` if the given object is a transform of the same class and if, given identical source position, the transformed position would be the equals.