Module javafx.graphics
Package javafx.scene.transform

# Class Affine

java.lang.Object
javafx.scene.transform.Transform
javafx.scene.transform.Affine

All Implemented Interfaces:
  `Cloneable`, `EventTarget`

public class Affine extends Transform

The `Affine` class represents a general affine transform. An affine transform performs a linear mapping from 2D/3D coordinates to other 2D/3D coordinates while preserving the "straightness" and "parallelness" of lines. Affine transformations can be constructed using sequence rotations, translations, scales, and shears.

For simple transformations application developers should use the specific `Translate`, `Scale`, `Rotate`, or `Shear` transforms, which are more lightweight and thus more optimal for this simple purpose. The `Affine` class, on the other hand, has the advantage of being able to represent a general affine transform and perform matrix operations on it in place, so it fits better for more complex transformation usages.

Such a coordinate transformation can be represented by a 3 row by 4 column matrix. This matrix transforms source coordinates `(x,y,z)` into destination coordinates `(x',y',z')` by considering them to be a column vector and multiplying the coordinate vector by the matrix according to the following process:

          [ x']   [  mxx  mxy  mxz  tx  ] [ x ]   [ mxx * x + mxy * y + mxz * z + tx ]
          [ y'] = [  myx  myy  myz  ty  ] [ y ] = [ myx * x + myy * y + myz * z + ty ]
          [ z']   [  mzx  mzy  mzz  tz  ] [ z ]   [ mzx * x + mzy * y + mzz * z + tz ]
                                          [ 1 ]

Since:
  JavaFX 2.0

## Property Summary

Properties
Type
Property
Description
`final DoubleProperty`
`mxx`
Defines the X coordinate scaling element of the 3x4 matrix.
`final DoubleProperty`
`mxy`
Defines the XY coordinate element of the 3x4 matrix.
`final DoubleProperty`
`mxz`
Defines the XZ coordinate element of the 3x4 matrix.
`final DoubleProperty`
`myx`
Defines the YX coordinate element of the 3x4 matrix.
`final DoubleProperty`
`myy`
Defines the Y coordinate scaling element of the 3x4 matrix.
`final DoubleProperty`
`myz`
Defines the YZ coordinate element of the 3x4 matrix.
`final DoubleProperty`
`mzx`
Defines the ZX coordinate element of the 3x4 matrix.
`final DoubleProperty`
`mzy`
Defines the ZY coordinate element of the 3x4 matrix.
`final DoubleProperty`
`mzz`
Defines the Z coordinate scaling element of the 3x4 matrix.
`final DoubleProperty`
`tx`
Defines the X coordinate translation element of the 3x4 matrix.
`final DoubleProperty`
`ty`
Defines the Y coordinate translation element of the 3x4 matrix.
`final DoubleProperty`
`tz`
Defines the Z coordinate translation element of the 3x4 matrix.

### Properties inherited from class javafx.scene.transform.Transform

`identity, onTransformChanged, type2D`

## Constructor Summary

Constructors
Constructor
Description
`Affine()`
Creates a new instance of `Affine` containing an identity transform.
`Affine(double[] matrix, MatrixType type, int offset)`
Creates a new instance of `Affine` with a transformation matrix specified by an array.
`Affine(double mxx, double mxy, double tx, double myx, double myy, double ty)`
Creates a new instance of `Affine` with a 2D transform specified by the element values.
`Affine(double mxx, double mxy, double mxz, double tx, double myx, double myy, double myz, double ty, double mzx, double mzy, double mzz, double tz)`
Creates a new instance of `Affine` with a transform specified by the element values.
`Affine(Transform transform)`
Creates a new instance of `Affine` filled with the values from the specified transform.

## Method Summary

Modifier and Type
Method
Description
`void`
`append(double[] matrix, MatrixType type, int offset)`
Appends the transform specified by the array to this instance.
`void`
`append(double mxx, double mxy, double tx, double myx, double myy, double ty)`
Appends the 2D transform specified by the element values to this instance.
`void`
`append(double mxx, double mxy, double mxz, double tx, double myx, double myy, double myz, double ty, double mzx, double mzy, double mzz, double tz)`
Appends the transform specified by the element values to this instance.
`void`
`append(Transform transform)`
Appends the specified transform to this instance.
`void`
`appendRotation(double angle)`
Appends the 2D rotation to this instance.
`void`
`appendRotation(double angle, double pivotX, double pivotY)`
Appends the 2D rotation with pivot to this instance.
`void`
`appendRotation(double angle, double pivotX, double pivotY, double pivotZ, double axisX, double axisY, double axisZ)`
Appends the rotation to this instance.
`void`
`appendRotation(double angle, double pivotX, double pivotY, double pivotZ, Point3D axis)`
Appends the rotation to this instance.
`void`
`appendRotation(double angle, Point2D pivot)`
Appends the 2D rotation with pivot to this instance.
`void`
`appendRotation(double angle, Point3D pivot, Point3D axis)`
Appends the rotation to this instance.
`void`
`appendScale(double sx, double sy)`
Appends the 2D scale to this instance.
`void`
`appendScale(double sx, double sy, double sz)`
Appends the scale to this instance.
`void`
`appendScale(double sx, double sy, double pivotX, double pivotY)`
Appends the 2D scale with pivot to this instance.
`void`
`appendScale(double sx, double sy, double sz, double pivotX, double pivotY, double pivotZ)`
Appends the scale with pivot to this instance.
`void`
`appendScale(double sx, double sy, double sz, Point3D pivot)`
Appends the scale with pivot to this instance.
`void`
`appendScale(double sx, double sy, Point2D pivot)`
Appends the 2D scale with pivot to this instance.
`void`
`appendShear(double shx, double shy)`
Appends the shear to this instance.
`void`
`appendShear(double shx, double shy, double pivotX, double pivotY)`
Appends the shear with pivot to this instance.
`void`
`appendShear(double shx, double shy, Point2D pivot)`
Appends the shear with pivot to this instance.
`void`
`appendTranslation(double tx, double ty)`
Appends the 2D translation to this instance.
`void`
`appendTranslation(double tx, double ty, double tz)`
Appends the translation to this instance.
`Affine`
`clone()`
Returns a deep copy of this transform.
`Transform`
`createConcatenation(Transform transform)`
Returns the concatenation of this transform and the specified transform.
`Affine`
`createInverse()`
Returns the inverse transform of this transform.
`Point2D`
`deltaTransform(double x, double y)`
Transforms the relative magnitude vector by this transform.
`Point3D`
`deltaTransform(double x, double y, double z)`
Transforms the relative magnitude vector by this transform.
`double`
`determinant()`
Computes determinant of the transformation matrix.
`final double`
`getMxx()`
Gets the value of the `mxx` property.
`final double`
`getMxy()`
Gets the value of the `mxy` property.
`final double`
`getMxz()`
Gets the value of the `mxz` property.
`final double`
`getMyx()`
Gets the value of the `myx` property.
`final double`
`getMyy()`
Gets the value of the `myy` property.
`final double`
`getMyz()`
Gets the value of the `myz` property.
`final double`
`getMzx()`
Gets the value of the `mzx` property.
`final double`
`getMzy()`
Gets the value of the `mzy` property.
`final double`
`getMzz()`
Gets the value of the `mzz` property.
`final double`
`getTx()`
Gets the value of the `tx` property.
`final double`
`getTy()`
Gets the value of the `ty` property.
`final double`
`getTz()`
Gets the value of the `tz` property.
`Point2D`
`inverseDeltaTransform(double x, double y)`
Transforms the relative magnitude vector by the inverse of this transform.
`Point3D`
`inverseDeltaTransform(double x, double y, double z)`
Transforms the relative magnitude vector by the inverse of this transform.
`Point2D`
`inverseTransform(double x, double y)`
Transforms the specified point by the inverse of this transform.
`Point3D`
`inverseTransform(double x, double y, double z)`
Transforms the specified point by the inverse of this transform.
`void`
`invert()`
Inverts this transform in place.
`final DoubleProperty`
`mxxProperty()`
Defines the X coordinate scaling element of the 3x4 matrix.
`final DoubleProperty`
`mxyProperty()`
Defines the XY coordinate element of the 3x4 matrix.
`final DoubleProperty`
`mxzProperty()`
Defines the XZ coordinate element of the 3x4 matrix.
`final DoubleProperty`
`myxProperty()`
Defines the YX coordinate element of the 3x4 matrix.
`final DoubleProperty`
`myyProperty()`
Defines the Y coordinate scaling element of the 3x4 matrix.
`final DoubleProperty`
`myzProperty()`
Defines the YZ coordinate element of the 3x4 matrix.
`final DoubleProperty`
`mzxProperty()`
Defines the ZX coordinate element of the 3x4 matrix.
`final DoubleProperty`
`mzyProperty()`
Defines the ZY coordinate element of the 3x4 matrix.
`final DoubleProperty`
`mzzProperty()`
Defines the Z coordinate scaling element of the 3x4 matrix.
`void`
`prepend(double[] matrix, MatrixType type, int offset)`
Prepends the transform specified by the array to this instance.
`void`
`prepend(double mxx, double mxy, double tx, double myx, double myy, double ty)`
Prepends the 2D transform specified by the element values to this instance.
`void`
`prepend(double mxx, double mxy, double mxz, double tx, double myx, double myy, double myz, double ty, double mzx, double mzy, double mzz, double tz)`
Prepends the transform specified by the element values to this instance.
`void`
`prepend(Transform transform)`
Prepends the specified transform to this instance.
`void`
`prependRotation(double angle)`
Prepends the 2D rotation to this instance.
`void`
`prependRotation(double angle, double pivotX, double pivotY)`
Prepends the 2D rotation with pivot to this instance.
`void`
`prependRotation(double angle, double pivotX, double pivotY, double pivotZ, double axisX, double axisY, double axisZ)`
Prepends the rotation to this instance.
`void`
`prependRotation(double angle, double pivotX, double pivotY, double pivotZ, Point3D axis)`
Prepends the rotation to this instance.
`void`
`prependRotation(double angle, Point2D pivot)`
Prepends the 2D rotation with pivot to this instance.
`void`
`prependRotation(double angle, Point3D pivot, Point3D axis)`
Prepends the rotation to this instance.
`void`
`prependScale(double sx, double sy)`
Prepends the 2D scale to this instance.
`void`
`prependScale(double sx, double sy, double sz)`
Prepends the scale to this instance.
`void`
`prependScale(double sx, double sy, double pivotX, double pivotY)`
Prepends the 2D scale with pivot to this instance.
`void`
`prependScale(double sx, double sy, double sz, double pivotX, double pivotY, double pivotZ)`
Prepends the scale with pivot to this instance.
`void`
`prependScale(double sx, double sy, double sz, Point3D pivot)`
Prepends the scale with pivot to this instance.
`void`
`prependScale(double sx, double sy, Point2D pivot)`
Prepends the 2D scale with pivot to this instance.
`void`
`prependShear(double shx, double shy)`
Prepends the shear to this instance.
`void`
`prependShear(double shx, double shy, double pivotX, double pivotY)`
Prepends the shear with pivot to this instance.
`void`
`prependShear(double shx, double shy, Point2D pivot)`
Prepends the shear with pivot to this instance.
`void`
`prependTranslation(double tx, double ty)`
Prepends the 2D translation to this instance.
`void`
`prependTranslation(double tx, double ty, double tz)`
Prepends the translation to this instance.
`void`
`setElement(MatrixType type, int row, int column, double value)`
Sets the specified element of the transformation matrix.
`final void`
`setMxx(double value)`
Sets the value of the `mxx` property.
`final void`
`setMxy(double value)`
Sets the value of the `mxy` property.
`final void`
`setMxz(double value)`
Sets the value of the `mxz` property.
`final void`
`setMyx(double value)`
Sets the value of the `myx` property.
`final void`
`setMyy(double value)`
Sets the value of the `myy` property.
`final void`
`setMyz(double value)`
Sets the value of the `myz` property.
`final void`
`setMzx(double value)`
Sets the value of the `mzx` property.
`final void`
`setMzy(double value)`
Sets the value of the `mzy` property.
`final void`
`setMzz(double value)`
Sets the value of the `mzz` property.
`void`
`setToIdentity()`
Resets this transform to the identity transform.
`void`
`setToTransform(double[] matrix, MatrixType type, int offset)`
Sets the values of this instance to the transformation matrix specified by an array.
`void`
`setToTransform(double mxx, double mxy, double tx, double myx, double myy, double ty)`
Sets the values of this instance to the 2D transform specified by the element values.
`void`
`setToTransform(double mxx, double mxy, double mxz, double tx, double myx, double myy, double myz, double ty, double mzx, double mzy, double mzz, double tz)`
Sets the values of this instance to the transform specified by the element values.
`void`
`setToTransform(Transform transform)`
Sets the values of this instance to the values provided by the specified transform.
`final void`
`setTx(double value)`
Sets the value of the `tx` property.
`final void`
`setTy(double value)`
Sets the value of the `ty` property.
`final void`
`setTz(double value)`
Sets the value of the `tz` property.
`String`
`toString()`
Returns a string representation of this `Affine` object.
`Point2D`
`transform(double x, double y)`
Transforms the specified point by this transform.
`Point3D`
`transform(double x, double y, double z)`
Transforms the specified point by this transform.
`final DoubleProperty`
`txProperty()`
Defines the X coordinate translation element of the 3x4 matrix.
`final DoubleProperty`
`tyProperty()`
Defines the Y coordinate translation element of the 3x4 matrix.
`final DoubleProperty`
`tzProperty()`
Defines the Z coordinate translation element of the 3x4 matrix.

### Methods inherited from class javafx.scene.transform.Transform

`addEventFilter, addEventHandler, affine, affine, buildEventDispatchChain, column, column, deltaTransform, deltaTransform, getElement, getOnTransformChanged, identityProperty, inverseDeltaTransform, inverseDeltaTransform, inverseTransform, inverseTransform, inverseTransform, inverseTransform2DPoints, inverseTransform3DPoints, isIdentity, isType2D, onTransformChangedProperty, removeEventFilter, removeEventHandler, rotate, row, row, scale, scale, setOnTransformChanged, shear, shear, similarTo, toArray, toArray, transform, transform, transform, transform2DPoints, transform3DPoints, transformChanged, translate, type2DProperty`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Property Details

### mxx

public final DoubleProperty mxxProperty
Defines the X coordinate scaling element of the 3x4 matrix.

See Also:
  - `getMxx()`
  - `setMxx(double)`
  - `mxxProperty()`

### mxy

public final DoubleProperty mxyProperty
Defines the XY coordinate element of the 3x4 matrix.

See Also:
  - `getMxy()`
  - `setMxy(double)`
  - `mxyProperty()`

### mxz

public final DoubleProperty mxzProperty
Defines the XZ coordinate element of the 3x4 matrix.

See Also:
  - `getMxz()`
  - `setMxz(double)`
  - `mxzProperty()`

### tx

public final DoubleProperty txProperty
Defines the X coordinate translation element of the 3x4 matrix.

See Also:
  - `getTx()`
  - `setTx(double)`
  - `txProperty()`

### myx

public final DoubleProperty myxProperty
Defines the YX coordinate element of the 3x4 matrix.

See Also:
  - `getMyx()`
  - `setMyx(double)`
  - `myxProperty()`

### myy

public final DoubleProperty myyProperty
Defines the Y coordinate scaling element of the 3x4 matrix.

See Also:
  - `getMyy()`
  - `setMyy(double)`
  - `myyProperty()`

### myz

public final DoubleProperty myzProperty
Defines the YZ coordinate element of the 3x4 matrix.

See Also:
  - `getMyz()`
  - `setMyz(double)`
  - `myzProperty()`

### ty

public final DoubleProperty tyProperty
Defines the Y coordinate translation element of the 3x4 matrix.

See Also:
  - `getTy()`
  - `setTy(double)`
  - `tyProperty()`

### mzx

public final DoubleProperty mzxProperty
Defines the ZX coordinate element of the 3x4 matrix.

See Also:
  - `getMzx()`
  - `setMzx(double)`
  - `mzxProperty()`

### mzy

public final DoubleProperty mzyProperty
Defines the ZY coordinate element of the 3x4 matrix.

See Also:
  - `getMzy()`
  - `setMzy(double)`
  - `mzyProperty()`

### mzz

public final DoubleProperty mzzProperty
Defines the Z coordinate scaling element of the 3x4 matrix.

See Also:
  - `getMzz()`
  - `setMzz(double)`
  - `mzzProperty()`

### tz

public final DoubleProperty tzProperty
Defines the Z coordinate translation element of the 3x4 matrix.

See Also:
  - `getTz()`
  - `setTz(double)`
  - `tzProperty()`

## Constructor Details

### Affine

public Affine()
Creates a new instance of `Affine` containing an identity transform.

### Affine

public Affine(Transform transform)
Creates a new instance of `Affine` filled with the values from the specified transform.

Parameters:
  `transform` - transform whose matrix is to be filled to the new instance
Throws:
  `NullPointerException` - if the specified `transform` is null
Since:
  JavaFX 8.0

### Affine

public Affine(double mxx, double mxy, double tx, double myx, double myy, double ty)
Creates a new instance of `Affine` with a 2D transform specified by the element values.

Parameters:
  `mxx` - the X coordinate scaling element
  `mxy` - the XY coordinate element
  `tx` - the X coordinate translation element
  `myx` - the YX coordinate element
  `myy` - the Y coordinate scaling element
  `ty` - the Y coordinate translation element
Since:
  JavaFX 8.0

### Affine

public Affine(double mxx, double mxy, double mxz, double tx, double myx, double myy, double myz, double ty, double mzx, double mzy, double mzz, double tz)
Creates a new instance of `Affine` with a transform specified by the element values.

Parameters:
  `mxx` - the X coordinate scaling element
  `mxy` - the XY coordinate element
  `mxz` - the XZ coordinate element
  `tx` - the X coordinate translation element
  `myx` - the YX coordinate element
  `myy` - the Y coordinate scaling element
  `myz` - the YZ coordinate element
  `ty` - the Y coordinate translation element
  `mzx` - the ZX coordinate element
  `mzy` - the ZY coordinate element
  `mzz` - the Z coordinate scaling element
  `tz` - the Z coordinate translation element
Since:
  JavaFX 8.0

### Affine

public Affine(double[] matrix, MatrixType type, int offset)
Creates a new instance of `Affine` with a transformation matrix specified by an array.

Parameters:
  `matrix` - array containing the flattened transformation matrix
  `type` - type of matrix contained in the array
  `offset` - offset of the first element in the array
Throws:
  `IndexOutOfBoundsException` - if the array is too short for the specified `type` and `offset`
  `IllegalArgumentException` - if the specified matrix is not affine (the last line of a 2D 3x3 matrix is not `[0, 0, 1]` or the last line of a 3D 4x4 matrix is not `[0, 0, 0, 1]`.
  `NullPointerException` - if the specified `matrix` or `type` is null
Since:
  JavaFX 8.0

## Method Details

### setMxx

public final void setMxx(double value)
Sets the value of the `mxx` property.

Property description:
  Defines the X coordinate scaling element of the 3x4 matrix.
Parameters:
  `value` - the value for the `mxx` property
See Also:
  - `getMxx()`
  - `mxxProperty()`

### getMxx

public final double getMxx()
Gets the value of the `mxx` property.

Overrides:
  `getMxx` in class `Transform`
Property description:
  Defines the X coordinate scaling element of the 3x4 matrix.
Returns:
  the value of the `mxx` property
See Also:
  - `setMxx(double)`
  - `mxxProperty()`

### mxxProperty

public final DoubleProperty mxxProperty()
Defines the X coordinate scaling element of the 3x4 matrix.

Returns:
  the `mxx` property
See Also:
  - `getMxx()`
  - `setMxx(double)`

### setMxy

public final void setMxy(double value)
Sets the value of the `mxy` property.

Property description:
  Defines the XY coordinate element of the 3x4 matrix.
Parameters:
  `value` - the value for the `mxy` property
See Also:
  - `getMxy()`
  - `mxyProperty()`

### getMxy

public final double getMxy()
Gets the value of the `mxy` property.

Overrides:
  `getMxy` in class `Transform`
Property description:
  Defines the XY coordinate element of the 3x4 matrix.
Returns:
  the value of the `mxy` property
See Also:
  - `setMxy(double)`
  - `mxyProperty()`

### mxyProperty

public final DoubleProperty mxyProperty()
Defines the XY coordinate element of the 3x4 matrix.

Returns:
  the `mxy` property
See Also:
  - `getMxy()`
  - `setMxy(double)`

### setMxz

public final void setMxz(double value)
Sets the value of the `mxz` property.

Property description:
  Defines the XZ coordinate element of the 3x4 matrix.
Parameters:
  `value` - the value for the `mxz` property
See Also:
  - `getMxz()`
  - `mxzProperty()`

### getMxz

public final double getMxz()
Gets the value of the `mxz` property.

Overrides:
  `getMxz` in class `Transform`
Property description:
  Defines the XZ coordinate element of the 3x4 matrix.
Returns:
  the value of the `mxz` property
See Also:
  - `setMxz(double)`
  - `mxzProperty()`

### mxzProperty

public final DoubleProperty mxzProperty()
Defines the XZ coordinate element of the 3x4 matrix.

Returns:
  the `mxz` property
See Also:
  - `getMxz()`
  - `setMxz(double)`

### setTx

public final void setTx(double value)
Sets the value of the `tx` property.

Property description:
  Defines the X coordinate translation element of the 3x4 matrix.
Parameters:
  `value` - the value for the `tx` property
See Also:
  - `getTx()`
  - `txProperty()`

### getTx

public final double getTx()
Gets the value of the `tx` property.

Overrides:
  `getTx` in class `Transform`
Property description:
  Defines the X coordinate translation element of the 3x4 matrix.
Returns:
  the value of the `tx` property
See Also:
  - `setTx(double)`
  - `txProperty()`

### txProperty

public final DoubleProperty txProperty()
Defines the X coordinate translation element of the 3x4 matrix.

Returns:
  the `tx` property
See Also:
  - `getTx()`
  - `setTx(double)`

### setMyx

public final void setMyx(double value)
Sets the value of the `myx` property.

Property description:
  Defines the YX coordinate element of the 3x4 matrix.
Parameters:
  `value` - the value for the `myx` property
See Also:
  - `getMyx()`
  - `myxProperty()`

### getMyx

public final double getMyx()
Gets the value of the `myx` property.

Overrides:
  `getMyx` in class `Transform`
Property description:
  Defines the YX coordinate element of the 3x4 matrix.
Returns:
  the value of the `myx` property
See Also:
  - `setMyx(double)`
  - `myxProperty()`

### myxProperty

public final DoubleProperty myxProperty()
Defines the YX coordinate element of the 3x4 matrix.

Returns:
  the `myx` property
See Also:
  - `getMyx()`
  - `setMyx(double)`

### setMyy

public final void setMyy(double value)
Sets the value of the `myy` property.

Property description:
  Defines the Y coordinate scaling element of the 3x4 matrix.
Parameters:
  `value` - the value for the `myy` property
See Also:
  - `getMyy()`
  - `myyProperty()`

### getMyy

public final double getMyy()
Gets the value of the `myy` property.

Overrides:
  `getMyy` in class `Transform`
Property description:
  Defines the Y coordinate scaling element of the 3x4 matrix.
Returns:
  the value of the `myy` property
See Also:
  - `setMyy(double)`
  - `myyProperty()`

### myyProperty

public final DoubleProperty myyProperty()
Defines the Y coordinate scaling element of the 3x4 matrix.

Returns:
  the `myy` property
See Also:
  - `getMyy()`
  - `setMyy(double)`

### setMyz

public final void setMyz(double value)
Sets the value of the `myz` property.

Property description:
  Defines the YZ coordinate element of the 3x4 matrix.
Parameters:
  `value` - the value for the `myz` property
See Also:
  - `getMyz()`
  - `myzProperty()`

### getMyz

public final double getMyz()
Gets the value of the `myz` property.

Overrides:
  `getMyz` in class `Transform`
Property description:
  Defines the YZ coordinate element of the 3x4 matrix.
Returns:
  the value of the `myz` property
See Also:
  - `setMyz(double)`
  - `myzProperty()`

### myzProperty

public final DoubleProperty myzProperty()
Defines the YZ coordinate element of the 3x4 matrix.

Returns:
  the `myz` property
See Also:
  - `getMyz()`
  - `setMyz(double)`

### setTy

public final void setTy(double value)
Sets the value of the `ty` property.

Property description:
  Defines the Y coordinate translation element of the 3x4 matrix.
Parameters:
  `value` - the value for the `ty` property
See Also:
  - `getTy()`
  - `tyProperty()`

### getTy

public final double getTy()
Gets the value of the `ty` property.

Overrides:
  `getTy` in class `Transform`
Property description:
  Defines the Y coordinate translation element of the 3x4 matrix.
Returns:
  the value of the `ty` property
See Also:
  - `setTy(double)`
  - `tyProperty()`

### tyProperty

public final DoubleProperty tyProperty()
Defines the Y coordinate translation element of the 3x4 matrix.

Returns:
  the `ty` property
See Also:
  - `getTy()`
  - `setTy(double)`

### setMzx

public final void setMzx(double value)
Sets the value of the `mzx` property.

Property description:
  Defines the ZX coordinate element of the 3x4 matrix.
Parameters:
  `value` - the value for the `mzx` property
See Also:
  - `getMzx()`
  - `mzxProperty()`

### getMzx

public final double getMzx()
Gets the value of the `mzx` property.

Overrides:
  `getMzx` in class `Transform`
Property description:
  Defines the ZX coordinate element of the 3x4 matrix.
Returns:
  the value of the `mzx` property
See Also:
  - `setMzx(double)`
  - `mzxProperty()`

### mzxProperty

public final DoubleProperty mzxProperty()
Defines the ZX coordinate element of the 3x4 matrix.

Returns:
  the `mzx` property
See Also:
  - `getMzx()`
  - `setMzx(double)`

### setMzy

public final void setMzy(double value)
Sets the value of the `mzy` property.

Property description:
  Defines the ZY coordinate element of the 3x4 matrix.
Parameters:
  `value` - the value for the `mzy` property
See Also:
  - `getMzy()`
  - `mzyProperty()`

### getMzy

public final double getMzy()
Gets the value of the `mzy` property.

Overrides:
  `getMzy` in class `Transform`
Property description:
  Defines the ZY coordinate element of the 3x4 matrix.
Returns:
  the value of the `mzy` property
See Also:
  - `setMzy(double)`
  - `mzyProperty()`

### mzyProperty

public final DoubleProperty mzyProperty()
Defines the ZY coordinate element of the 3x4 matrix.

Returns:
  the `mzy` property
See Also:
  - `getMzy()`
  - `setMzy(double)`

### setMzz

public final void setMzz(double value)
Sets the value of the `mzz` property.

Property description:
  Defines the Z coordinate scaling element of the 3x4 matrix.
Parameters:
  `value` - the value for the `mzz` property
See Also:
  - `getMzz()`
  - `mzzProperty()`

### getMzz

public final double getMzz()
Gets the value of the `mzz` property.

Overrides:
  `getMzz` in class `Transform`
Property description:
  Defines the Z coordinate scaling element of the 3x4 matrix.
Returns:
  the value of the `mzz` property
See Also:
  - `setMzz(double)`
  - `mzzProperty()`

### mzzProperty

public final DoubleProperty mzzProperty()
Defines the Z coordinate scaling element of the 3x4 matrix.

Returns:
  the `mzz` property
See Also:
  - `getMzz()`
  - `setMzz(double)`

### setTz

public final void setTz(double value)
Sets the value of the `tz` property.

Property description:
  Defines the Z coordinate translation element of the 3x4 matrix.
Parameters:
  `value` - the value for the `tz` property
See Also:
  - `getTz()`
  - `tzProperty()`

### getTz

public final double getTz()
Gets the value of the `tz` property.

Overrides:
  `getTz` in class `Transform`
Property description:
  Defines the Z coordinate translation element of the 3x4 matrix.
Returns:
  the value of the `tz` property
See Also:
  - `setTz(double)`
  - `tzProperty()`

### tzProperty

public final DoubleProperty tzProperty()
Defines the Z coordinate translation element of the 3x4 matrix.

Returns:
  the `tz` property
See Also:
  - `getTz()`
  - `setTz(double)`

### setElement

public void setElement(MatrixType type, int row, int column, double value)
Sets the specified element of the transformation matrix.

Parameters:
  `type` - type of matrix to work with
  `row` - zero-based row number
  `column` - zero-based column number
  `value` - new value of the specified transformation matrix element
Throws:
  `IndexOutOfBoundsException` - if the indices are not within the specified matrix type
  `IllegalArgumentException` - if setting the value would break transform's affinity (for convenience the method allows to set the elements of the last line of a 2D 3x3 matrix to `[0, 0, 1]` and the elements of the last line of a 3D 4x4 matrix to `[0, 0, 0, 1]`).
  `NullPointerException` - if the specified `type` is null
Since:
  JavaFX 8.0

### determinant

public double determinant()
Description copied from class: `Transform`
Computes determinant of the transformation matrix. Among other things, determinant can be used for testing this transform's invertibility - it is invertible if determinant is not equal to zero.

Overrides:
  `determinant` in class `Transform`
Returns:
  Determinant of the transformation matrix

### createConcatenation

public Transform createConcatenation(Transform transform)
Description copied from class: `Transform`
Returns the concatenation of this transform and the specified transform. Applying the resulting transform to a node has the same effect as adding the two transforms to its `getTransforms()` list, `this` transform first and the specified `transform` second.

Overrides:
  `createConcatenation` in class `Transform`
Parameters:
  `transform` - transform to be concatenated with this transform
Returns:
  The concatenated transform

### createInverse

public Affine createInverse() throws NonInvertibleTransformException
Description copied from class: `Transform`
Returns the inverse transform of this transform.

Overrides:
  `createInverse` in class `Transform`
Returns:
  the inverse transform
Throws:
  `NonInvertibleTransformException` - if this transform cannot be inverted

### clone

public Affine clone()
Description copied from class: `Transform`
Returns a deep copy of this transform.

Overrides:
  `clone` in class `Transform`
Returns:
  a copy of this transform

### setToTransform

public void setToTransform(Transform transform)
Sets the values of this instance to the values provided by the specified transform.

Parameters:
  `transform` - transform whose matrix is to be filled to this instance
Throws:
  `NullPointerException` - if the specified `transform` is null
Since:
  JavaFX 8.0

### setToTransform

public void setToTransform(double mxx, double mxy, double tx, double myx, double myy, double ty)
Sets the values of this instance to the 2D transform specified by the element values.

Parameters:
  `mxx` - the X coordinate scaling element
  `mxy` - the XY coordinate element
  `tx` - the X coordinate translation element
  `myx` - the YX coordinate element
  `myy` - the Y coordinate scaling element
  `ty` - the Y coordinate translation element
Since:
  JavaFX 8.0

### setToTransform

public void setToTransform(double mxx, double mxy, double mxz, double tx, double myx, double myy, double myz, double ty, double mzx, double mzy, double mzz, double tz)
Sets the values of this instance to the transform specified by the element values.

Parameters:
  `mxx` - the X coordinate scaling element
  `mxy` - the XY coordinate element
  `mxz` - the XZ coordinate element
  `tx` - the X coordinate translation element
  `myx` - the YX coordinate element
  `myy` - the Y coordinate scaling element
  `myz` - the YZ coordinate element
  `ty` - the Y coordinate translation element
  `mzx` - the ZX coordinate element
  `mzy` - the ZY coordinate element
  `mzz` - the Z coordinate scaling element
  `tz` - the Z coordinate translation element
Since:
  JavaFX 8.0

### setToTransform

public void setToTransform(double[] matrix, MatrixType type, int offset)
Sets the values of this instance to the transformation matrix specified by an array.

Parameters:
  `matrix` - array containing the flattened transformation matrix
  `type` - type of matrix contained in the array
  `offset` - offset of the first element in the array
Throws:
  `IndexOutOfBoundsException` - if the array is too short for the specified `type` and `offset`
  `IllegalArgumentException` - if the specified matrix is not affine (the last line of a 2D 3x3 matrix is not `[0, 0, 1]` or the last line of a 3D 4x4 matrix is not `[0, 0, 0, 1]`.
  `NullPointerException` - if the specified `matrix` or `type` is null
Since:
  JavaFX 8.0

### setToIdentity

public void setToIdentity()
Resets this transform to the identity transform.

Since:
  JavaFX 8.0

### invert

public void invert() throws NonInvertibleTransformException
Inverts this transform in place.

Throws:
  `NonInvertibleTransformException` - if this transform cannot be inverted
Since:
  JavaFX 8.0

### append

public void append(Transform transform)

Appends the specified transform to this instance. The operation modifies this transform in a way that applying it to a node has the same effect as adding the two transforms to its `getTransforms()` list, `this` transform first and the specified `transform` second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified transform.

Parameters:
  `transform` - transform to be appended to this instance
Throws:
  `NullPointerException` - if the specified `transform` is null
Since:
  JavaFX 8.0

### append

public void append(double mxx, double mxy, double tx, double myx, double myy, double ty)

Appends the 2D transform specified by the element values to this instance. The operation modifies this transform in a way that applying it to a node has the same effect as adding the two transforms to its `getTransforms()` list, `this` transform first and the specified `transform` second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified transform.

Parameters:
  `mxx` - the X coordinate scaling element of the transform to be appended
  `mxy` - the XY coordinate element of the transform to be appended
  `tx` - the X coordinate translation element of the transform to be appended
  `myx` - the YX coordinate element of the transform to be appended
  `myy` - the Y coordinate scaling element of the transform to be appended
  `ty` - the Y coordinate translation element of the transform to be appended
Since:
  JavaFX 8.0

### append

public void append(double mxx, double mxy, double mxz, double tx, double myx, double myy, double myz, double ty, double mzx, double mzy, double mzz, double tz)

Appends the transform specified by the element values to this instance. The operation modifies this transform in a way that applying it to a node has the same effect as adding the two transforms to its `getTransforms()` list, `this` transform first and the specified `transform` second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified transform.

Parameters:
  `mxx` - the X coordinate scaling element of the transform to be appended
  `mxy` - the XY coordinate element of the transform to be appended
  `mxz` - the XZ coordinate element of the transform to be appended
  `tx` - the X coordinate translation element of the transform to be appended
  `myx` - the YX coordinate element of the transform to be appended
  `myy` - the Y coordinate scaling element of the transform to be appended
  `myz` - the YZ coordinate element of the transform to be appended
  `ty` - the Y coordinate translation element of the transform to be appended
  `mzx` - the ZX coordinate element of the transform to be appended
  `mzy` - the ZY coordinate element of the transform to be appended
  `mzz` - the Z coordinate scaling element of the transform to be appended
  `tz` - the Z coordinate translation element of the transform to be appended
Since:
  JavaFX 8.0

### append

public void append(double[] matrix, MatrixType type, int offset)

Appends the transform specified by the array to this instance. The operation modifies this transform in a way that applying it to a node has the same effect as adding the two transforms to its `getTransforms()` list, `this` transform first and the specified `transform` second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified transform.

Parameters:
  `matrix` - array containing the flattened transformation matrix to be appended
  `type` - type of matrix contained in the array
  `offset` - offset of the first matrix element in the array
Throws:
  `IndexOutOfBoundsException` - if the array is too short for the specified `type` and `offset`
  `IllegalArgumentException` - if the specified matrix is not affine (the last line of a 2D 3x3 matrix is not `[0, 0, 1]` or the last line of a 3D 4x4 matrix is not `[0, 0, 0, 1]`.
  `NullPointerException` - if the specified `matrix` or `type` is null
Since:
  JavaFX 8.0

### prepend

public void prepend(Transform transform)

Prepends the specified transform to this instance. The operation modifies this transform in a way that applying it to a node has the same effect as adding the two transforms to its `getTransforms()` list, the specified `transform` first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified transform.

Parameters:
  `transform` - transform to be prepended to this instance
Throws:
  `NullPointerException` - if the specified `transform` is null
Since:
  JavaFX 8.0

### prepend

public void prepend(double mxx, double mxy, double tx, double myx, double myy, double ty)

Prepends the 2D transform specified by the element values to this instance. The operation modifies this transform in a way that applying it to a node has the same effect as adding the two transforms to its `getTransforms()` list, the specified `transform` first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified transform.

Parameters:
  `mxx` - the X coordinate scaling element of the transform to be prepended
  `mxy` - the XY coordinate element of the transform to be prepended
  `tx` - the X coordinate translation element of the transform to be prepended
  `myx` - the YX coordinate element of the transform to be prepended
  `myy` - the Y coordinate scaling element of the transform to be prepended
  `ty` - the Y coordinate translation element of the transform to be prepended
Since:
  JavaFX 8.0

### prepend

public void prepend(double mxx, double mxy, double mxz, double tx, double myx, double myy, double myz, double ty, double mzx, double mzy, double mzz, double tz)

Prepends the transform specified by the element values to this instance. The operation modifies this transform in a way that applying it to a node has the same effect as adding the two transforms to its `getTransforms()` list, the specified `transform` first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified transform.

Parameters:
  `mxx` - the X coordinate scaling element of the transform to be prepended
  `mxy` - the XY coordinate element of the transform to be prepended
  `mxz` - the XZ coordinate element of the transform to be prepended
  `tx` - the X coordinate translation element of the transform to be prepended
  `myx` - the YX coordinate element of the transform to be prepended
  `myy` - the Y coordinate scaling element of the transform to be prepended
  `myz` - the YZ coordinate element of the transform to be prepended
  `ty` - the Y coordinate translation element of the transform to be prepended
  `mzx` - the ZX coordinate element of the transform to be prepended
  `mzy` - the ZY coordinate element of the transform to be prepended
  `mzz` - the Z coordinate scaling element of the transform to be prepended
  `tz` - the Z coordinate translation element of the transform to be prepended
Since:
  JavaFX 8.0

### prepend

public void prepend(double[] matrix, MatrixType type, int offset)

Prepends the transform specified by the array to this instance. The operation modifies this transform in a way that applying it to a node has the same effect as adding the two transforms to its `getTransforms()` list, the specified `transform` first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified transform.

Parameters:
  `matrix` - array containing the flattened transformation matrix to be prepended
  `type` - type of matrix contained in the array
  `offset` - offset of the first matrix element in the array
Throws:
  `IndexOutOfBoundsException` - if the array is too short for the specified `type` and `offset`
  `IllegalArgumentException` - if the specified matrix is not affine (the last line of a 2D 3x3 matrix is not `[0, 0, 1]` or the last line of a 3D 4x4 matrix is not `[0, 0, 0, 1]`.
  `NullPointerException` - if the specified `matrix` or `type` is null
Since:
  JavaFX 8.0

### appendTranslation

public void appendTranslation(double tx, double ty)

Appends the 2D translation to this instance. It is equivalent to `append(new Translate(tx, ty))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified translation second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified translation.

Parameters:
  `tx` - the X coordinate translation
  `ty` - the Y coordinate translation
Since:
  JavaFX 8.0

### appendTranslation

public void appendTranslation(double tx, double ty, double tz)

Appends the translation to this instance. It is equivalent to `append(new Translate(tx, ty, tz))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified translation second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified translation.

Parameters:
  `tx` - the X coordinate translation
  `ty` - the Y coordinate translation
  `tz` - the Z coordinate translation
Since:
  JavaFX 8.0

### prependTranslation

public void prependTranslation(double tx, double ty, double tz)

Prepends the translation to this instance. It is equivalent to `prepend(new Translate(tx, ty, tz))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified translation first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified translation.

Parameters:
  `tx` - the X coordinate translation
  `ty` - the Y coordinate translation
  `tz` - the Z coordinate translation
Since:
  JavaFX 8.0

### prependTranslation

public void prependTranslation(double tx, double ty)

Prepends the 2D translation to this instance. It is equivalent to `prepend(new Translate(tx, ty))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified translation first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified translation.

Parameters:
  `tx` - the X coordinate translation
  `ty` - the Y coordinate translation
Since:
  JavaFX 8.0

### appendScale

public void appendScale(double sx, double sy)

Appends the 2D scale to this instance. It is equivalent to `append(new Scale(sx, sy))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified scale second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified scale.

Parameters:
  `sx` - the X coordinate scale factor
  `sy` - the Y coordinate scale factor
Since:
  JavaFX 8.0

### appendScale

public void appendScale(double sx, double sy, double pivotX, double pivotY)

Appends the 2D scale with pivot to this instance. It is equivalent to `append(new Scale(sx, sy, pivotX, pivotY))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified scale second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified scale.

Parameters:
  `sx` - the X coordinate scale factor
  `sy` - the Y coordinate scale factor
  `pivotX` - the X coordinate of the point about which the scale occurs
  `pivotY` - the Y coordinate of the point about which the scale occurs
Since:
  JavaFX 8.0

### appendScale

public void appendScale(double sx, double sy, Point2D pivot)

Appends the 2D scale with pivot to this instance. It is equivalent to `append(new Scale(sx, sy, pivot.getX(), pivot.getY())`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified scale second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified scale.

Parameters:
  `sx` - the X coordinate scale factor
  `sy` - the Y coordinate scale factor
  `pivot` - the point about which the scale occurs
Throws:
  `NullPointerException` - if the specified `pivot` is null
Since:
  JavaFX 8.0

### appendScale

public void appendScale(double sx, double sy, double sz)

Appends the scale to this instance. It is equivalent to `append(new Scale(sx, sy, sz))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified scale second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified scale.

Parameters:
  `sx` - the X coordinate scale factor
  `sy` - the Y coordinate scale factor
  `sz` - the Z coordinate scale factor
Since:
  JavaFX 8.0

### appendScale

public void appendScale(double sx, double sy, double sz, double pivotX, double pivotY, double pivotZ)

Appends the scale with pivot to this instance. It is equivalent to `append(new Scale(sx, sy, sz, pivotX, pivotY, pivotZ))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified scale second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified scale.

Parameters:
  `sx` - the X coordinate scale factor
  `sy` - the Y coordinate scale factor
  `sz` - the Z coordinate scale factor
  `pivotX` - the X coordinate of the point about which the scale occurs
  `pivotY` - the Y coordinate of the point about which the scale occurs
  `pivotZ` - the Z coordinate of the point about which the scale occurs
Since:
  JavaFX 8.0

### appendScale

public void appendScale(double sx, double sy, double sz, Point3D pivot)

Appends the scale with pivot to this instance. It is equivalent to `append(new Scale(sx, sy, sz, pivot.getX(), pivot.getY(), pivot.getZ()))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified scale second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified scale.

Parameters:
  `sx` - the X coordinate scale factor
  `sy` - the Y coordinate scale factor
  `sz` - the Z coordinate scale factor
  `pivot` - the point about which the scale occurs
Throws:
  `NullPointerException` - if the specified `pivot` is null
Since:
  JavaFX 8.0

### prependScale

public void prependScale(double sx, double sy)

Prepends the 2D scale to this instance. It is equivalent to `prepend(new Scale(sx, sy))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified scale first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified scale.

Parameters:
  `sx` - the X coordinate scale factor
  `sy` - the Y coordinate scale factor
Since:
  JavaFX 8.0

### prependScale

public void prependScale(double sx, double sy, double pivotX, double pivotY)

Prepends the 2D scale with pivot to this instance. It is equivalent to `prepend(new Scale(sx, sy, pivotX, pivotY))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified scale first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified scale.

Parameters:
  `sx` - the X coordinate scale factor
  `sy` - the Y coordinate scale factor
  `pivotX` - the X coordinate of the point about which the scale occurs
  `pivotY` - the Y coordinate of the point about which the scale occurs
Since:
  JavaFX 8.0

### prependScale

public void prependScale(double sx, double sy, Point2D pivot)

Prepends the 2D scale with pivot to this instance. It is equivalent to `prepend(new Scale(sx, sy, pivot.getX(), </p>pivot.getY()))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified scale first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified scale.

Parameters:
  `sx` - the X coordinate scale factor
  `sy` - the Y coordinate scale factor
  `pivot` - the point about which the scale occurs
Throws:
  `NullPointerException` - if the specified `pivot` is null
Since:
  JavaFX 8.0

### prependScale

public void prependScale(double sx, double sy, double sz)

Prepends the scale to this instance. It is equivalent to `prepend(new Scale(sx, sy, sz))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified scale first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified scale.

Parameters:
  `sx` - the X coordinate scale factor
  `sy` - the Y coordinate scale factor
  `sz` - the Z coordinate scale factor
Since:
  JavaFX 8.0

### prependScale

public void prependScale(double sx, double sy, double sz, double pivotX, double pivotY, double pivotZ)

Prepends the scale with pivot to this instance. It is equivalent to `prepend(new Scale(sx, sy, sz, pivotX, pivotY, pivotZ))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified scale first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified scale.

Parameters:
  `sx` - the X coordinate scale factor
  `sy` - the Y coordinate scale factor
  `sz` - the Z coordinate scale factor
  `pivotX` - the X coordinate of the point about which the scale occurs
  `pivotY` - the Y coordinate of the point about which the scale occurs
  `pivotZ` - the Z coordinate of the point about which the scale occurs
Since:
  JavaFX 8.0

### prependScale

public void prependScale(double sx, double sy, double sz, Point3D pivot)

Prepends the scale with pivot to this instance. It is equivalent to `prepend(new Scale(sx, sy, sz, pivot.getX(), pivot.getY(), pivot.getZ()))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified scale first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified scale.

Parameters:
  `sx` - the X coordinate scale factor
  `sy` - the Y coordinate scale factor
  `sz` - the Z coordinate scale factor
  `pivot` - the point about which the scale occurs
Throws:
  `NullPointerException` - if the specified `pivot` is null
Since:
  JavaFX 8.0

### appendShear

public void appendShear(double shx, double shy)

Appends the shear to this instance. It is equivalent to `append(new Shear(sx, sy))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified shear second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified shear.

Parameters:
  `shx` - the XY coordinate element
  `shy` - the YX coordinate element
Since:
  JavaFX 8.0

### appendShear

public void appendShear(double shx, double shy, double pivotX, double pivotY)

Appends the shear with pivot to this instance. It is equivalent to `append(new Shear(sx, sy, pivotX, pivotY))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified shear second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified shear.

Parameters:
  `shx` - the XY coordinate element
  `shy` - the YX coordinate element
  `pivotX` - the X coordinate of the shear pivot point
  `pivotY` - the Y coordinate of the shear pivot point
Since:
  JavaFX 8.0

### appendShear

public void appendShear(double shx, double shy, Point2D pivot)

Appends the shear with pivot to this instance. It is equivalent to `append(new Shear(sx, sy, pivot.getX(), pivot.getY()))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified shear second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified shear.

Parameters:
  `shx` - the XY coordinate element
  `shy` - the YX coordinate element
  `pivot` - the shear pivot point
Throws:
  `NullPointerException` - if the specified `pivot` is null
Since:
  JavaFX 8.0

### prependShear

public void prependShear(double shx, double shy)

Prepends the shear to this instance. It is equivalent to `prepend(new Shear(sx, sy))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified shear first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified shear.

Parameters:
  `shx` - the XY coordinate element
  `shy` - the YX coordinate element
Since:
  JavaFX 8.0

### prependShear

public void prependShear(double shx, double shy, double pivotX, double pivotY)

Prepends the shear with pivot to this instance. It is equivalent to `prepend(new Shear(sx, sy, pivotX, pivotY))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified shear first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified shear.

Parameters:
  `shx` - the XY coordinate element
  `shy` - the YX coordinate element
  `pivotX` - the X coordinate of the shear pivot point
  `pivotY` - the Y coordinate of the shear pivot point
Since:
  JavaFX 8.0

### prependShear

public void prependShear(double shx, double shy, Point2D pivot)

Prepends the shear with pivot to this instance. It is equivalent to `prepend(new Shear(sx, sy, pivot.getX(), pivot.getY()))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified shear first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified shear.

Parameters:
  `shx` - the XY coordinate element
  `shy` - the YX coordinate element
  `pivot` - the shear pivot point
Throws:
  `NullPointerException` - if the specified `pivot` is null
Since:
  JavaFX 8.0

### appendRotation

public void appendRotation(double angle)

Appends the 2D rotation to this instance. It is equivalent to `append(new Rotate(angle))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified rotation second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified rotation.

Parameters:
  `angle` - the angle of the rotation in degrees
Since:
  JavaFX 8.0

### appendRotation

public void appendRotation(double angle, double pivotX, double pivotY)

Appends the 2D rotation with pivot to this instance. It is equivalent to `append(new Rotate(angle, pivotX, pivotY))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified rotation second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified rotation.

Parameters:
  `angle` - the angle of the rotation in degrees
  `pivotX` - the X coordinate of the rotation pivot point
  `pivotY` - the Y coordinate of the rotation pivot point
Since:
  JavaFX 8.0

### appendRotation

public void appendRotation(double angle, Point2D pivot)

Appends the 2D rotation with pivot to this instance. It is equivalent to `append(new Rotate(angle, pivot.getX(), pivot.getY()))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified rotation second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified rotation.

Parameters:
  `angle` - the angle of the rotation in degrees
  `pivot` - the rotation pivot point
Throws:
  `NullPointerException` - if the specified `pivot` is null
Since:
  JavaFX 8.0

### appendRotation

public void appendRotation(double angle, double pivotX, double pivotY, double pivotZ, double axisX, double axisY, double axisZ)

Appends the rotation to this instance. It is equivalent to `append(new Rotate(angle, pivotX, pivotY, pivotZ, new Point3D(axisX, axisY, axisZ)))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified rotation second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified rotation.

Parameters:
  `angle` - the angle of the rotation in degrees
  `pivotX` - the X coordinate of the rotation pivot point
  `pivotY` - the Y coordinate of the rotation pivot point
  `pivotZ` - the Z coordinate of the rotation pivot point
  `axisX` - the X coordinate magnitude of the rotation axis
  `axisY` - the Y coordinate magnitude of the rotation axis
  `axisZ` - the Z coordinate magnitude of the rotation axis
Since:
  JavaFX 8.0

### appendRotation

public void appendRotation(double angle, double pivotX, double pivotY, double pivotZ, Point3D axis)

Appends the rotation to this instance. It is equivalent to `append(new Rotate(angle, pivotX, pivotY, pivotZ, axis))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified rotation second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified rotation.

Parameters:
  `angle` - the angle of the rotation in degrees
  `pivotX` - the X coordinate of the rotation pivot point
  `pivotY` - the Y coordinate of the rotation pivot point
  `pivotZ` - the Z coordinate of the rotation pivot point
  `axis` - the rotation axis
Throws:
  `NullPointerException` - if the specified `axis` is null
Since:
  JavaFX 8.0

### appendRotation

public void appendRotation(double angle, Point3D pivot, Point3D axis)

Appends the rotation to this instance. It is equivalent to `append(new Rotate(angle, pivot.getX(), pivot.getY(), pivot.getZ(), axis))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, `this` transform first and the specified rotation second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the right by the transformation matrix of the specified rotation.

Parameters:
  `angle` - the angle of the rotation in degrees
  `pivot` - the rotation pivot point
  `axis` - the rotation axis
Throws:
  `NullPointerException` - if the specified `pivot` or `axis` is null
Since:
  JavaFX 8.0

### prependRotation

public void prependRotation(double angle)

Prepends the 2D rotation to this instance. It is equivalent to `prepend(new Rotate(angle))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified rotation first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified rotation.

Parameters:
  `angle` - the angle of the rotation in degrees
Since:
  JavaFX 8.0

### prependRotation

public void prependRotation(double angle, double pivotX, double pivotY)

Prepends the 2D rotation with pivot to this instance. It is equivalent to `prepend(new Rotate(angle, pivotX, pivotY))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified rotation first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified rotation.

Parameters:
  `angle` - the angle of the rotation in degrees
  `pivotX` - the X coordinate of the rotation pivot point
  `pivotY` - the Y coordinate of the rotation pivot point
Since:
  JavaFX 8.0

### prependRotation

public void prependRotation(double angle, Point2D pivot)

Prepends the 2D rotation with pivot to this instance. It is equivalent to `prepend(new Rotate(angle, pivot.getX(), pivot.getY()))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified rotation first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified rotation.

Parameters:
  `angle` - the angle of the rotation in degrees
  `pivot` - the rotation pivot point
Throws:
  `NullPointerException` - if the specified `pivot` is null
Since:
  JavaFX 8.0

### prependRotation

public void prependRotation(double angle, double pivotX, double pivotY, double pivotZ, double axisX, double axisY, double axisZ)

Prepends the rotation to this instance. It is equivalent to `prepend(new Rotate(angle, pivotX, pivotY, pivotZ, new Point3D(axisX, axisY, axisZ)))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified rotation first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified rotation.

Parameters:
  `angle` - the angle of the rotation in degrees
  `pivotX` - the X coordinate of the rotation pivot point
  `pivotY` - the Y coordinate of the rotation pivot point
  `pivotZ` - the Z coordinate of the rotation pivot point
  `axisX` - the X coordinate magnitude of the rotation axis
  `axisY` - the Y coordinate magnitude of the rotation axis
  `axisZ` - the Z coordinate magnitude of the rotation axis
Since:
  JavaFX 8.0

### prependRotation

public void prependRotation(double angle, double pivotX, double pivotY, double pivotZ, Point3D axis)

Prepends the rotation to this instance. It is equivalent to `prepend(new Rotate(angle, pivotX, pivotY, pivotZ, axis))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified rotation first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified rotation.

Parameters:
  `angle` - the angle of the rotation in degrees
  `pivotX` - the X coordinate of the rotation pivot point
  `pivotY` - the Y coordinate of the rotation pivot point
  `pivotZ` - the Z coordinate of the rotation pivot point
  `axis` - the rotation axis
Throws:
  `NullPointerException` - if the specified `axis` is null
Since:
  JavaFX 8.0

### prependRotation

public void prependRotation(double angle, Point3D pivot, Point3D axis)

Prepends the rotation to this instance. It is equivalent to `prepend(new Rotate(angle, pivot.getX(), pivot.getY(), pivot.getZ(), axis))`.

The operation modifies this transform in a way that applying it to a node has the same effect as adding two transforms to its `getTransforms()` list, the specified rotation first and `this` transform second.

From the matrix point of view, the transformation matrix of this transform is multiplied on the left by the transformation matrix of the specified rotation.

Parameters:
  `angle` - the angle of the rotation in degrees
  `pivot` - the rotation pivot point
  `axis` - the rotation axis
Throws:
  `NullPointerException` - if the specified `pivot` or `axis` is null
Since:
  JavaFX 8.0

### transform

public Point2D transform(double x, double y)
Description copied from class: `Transform`
Transforms the specified point by this transform. This method can be used only for 2D transforms.

Overrides:
  `transform` in class `Transform`
Parameters:
  `x` - the X coordinate of the point
  `y` - the Y coordinate of the point
Returns:
  the transformed point

### transform

public Point3D transform(double x, double y, double z)
Description copied from class: `Transform`
Transforms the specified point by this transform.

Overrides:
  `transform` in class `Transform`
Parameters:
  `x` - the X coordinate of the point
  `y` - the Y coordinate of the point
  `z` - the Z coordinate of the point
Returns:
  the transformed point

### deltaTransform

public Point2D deltaTransform(double x, double y)
Description copied from class: `Transform`
Transforms the relative magnitude vector by this transform. The vector is transformed without applying the translation components of the affine transformation matrix. This method can be used only for a 2D transform.

Overrides:
  `deltaTransform` in class `Transform`
Parameters:
  `x` - vector magnitude in the direction of the X axis
  `y` - vector magnitude in the direction of the Y axis
Returns:
  the transformed relative magnitude vector represented by a `Point2D` instance

### deltaTransform

public Point3D deltaTransform(double x, double y, double z)
Description copied from class: `Transform`
Transforms the relative magnitude vector by this transform. The vector is transformed without applying the translation components of the affine transformation matrix.

Overrides:
  `deltaTransform` in class `Transform`
Parameters:
  `x` - vector magnitude in the direction of the X axis
  `y` - vector magnitude in the direction of the Y axis
  `z` - vector magnitude in the direction of the Z axis
Returns:
  the transformed relative magnitude vector represented by a `Point3D` instance

### inverseTransform

public Point2D inverseTransform(double x, double y) throws NonInvertibleTransformException
Description copied from class: `Transform`
Transforms the specified point by the inverse of this transform. This method can be used only for 2D transforms.

Overrides:
  `inverseTransform` in class `Transform`
Parameters:
  `x` - the X coordinate of the point
  `y` - the Y coordinate of the point
Returns:
  the inversely transformed point
Throws:
  `NonInvertibleTransformException` - if this transform cannot be inverted

### inverseTransform

public Point3D inverseTransform(double x, double y, double z) throws NonInvertibleTransformException
Description copied from class: `Transform`
Transforms the specified point by the inverse of this transform.

Overrides:
  `inverseTransform` in class `Transform`
Parameters:
  `x` - the X coordinate of the point
  `y` - the Y coordinate of the point
  `z` - the Z coordinate of the point
Returns:
  the inversely transformed point
Throws:
  `NonInvertibleTransformException` - if this transform cannot be inverted

### inverseDeltaTransform

public Point2D inverseDeltaTransform(double x, double y) throws NonInvertibleTransformException
Description copied from class: `Transform`
Transforms the relative magnitude vector by the inverse of this transform. The vector is transformed without applying the translation components of the affine transformation matrix. This method can be used only for a 2D transform.

Overrides:
  `inverseDeltaTransform` in class `Transform`
Parameters:
  `x` - vector magnitude in the direction of the X axis
  `y` - vector magnitude in the direction of the Y axis
Returns:
  the inversely transformed relative magnitude vector represented by a `Point2D` instance
Throws:
  `NonInvertibleTransformException` - if this transform cannot be inverted

### inverseDeltaTransform

public Point3D inverseDeltaTransform(double x, double y, double z) throws NonInvertibleTransformException
Description copied from class: `Transform`
Transforms the relative magnitude vector by the inverse of this transform. The vector is transformed without applying the translation components of the affine transformation matrix.

Overrides:
  `inverseDeltaTransform` in class `Transform`
Parameters:
  `x` - vector magnitude in the direction of the X axis
  `y` - vector magnitude in the direction of the Y axis
  `z` - vector magnitude in the direction of the Z axis
Returns:
  the inversely transformed relative magnitude vector represented by a `Point3D` instance
Throws:
  `NonInvertibleTransformException` - if this transform cannot be inverted

### toString

public String toString()
Returns a string representation of this `Affine` object.

Overrides:
  `toString` in class `Object`
Returns:
  a string representation of this `Affine` object.