Class 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
    • Constructor Detail

      • 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 Detail

      • setMxx

        public final void setMxx​(double value)
        Sets the value of the property mxx.
        Property description:
        Defines the X coordinate scaling element of the 3x4 matrix.
      • setMxy

        public final void setMxy​(double value)
        Sets the value of the property mxy.
        Property description:
        Defines the XY coordinate element of the 3x4 matrix.
      • setMxz

        public final void setMxz​(double value)
        Sets the value of the property mxz.
        Property description:
        Defines the XZ coordinate element of the 3x4 matrix.
      • setTx

        public final void setTx​(double value)
        Sets the value of the property tx.
        Property description:
        Defines the X coordinate translation element of the 3x4 matrix.
      • setMyx

        public final void setMyx​(double value)
        Sets the value of the property myx.
        Property description:
        Defines the YX coordinate element of the 3x4 matrix.
      • setMyy

        public final void setMyy​(double value)
        Sets the value of the property myy.
        Property description:
        Defines the Y coordinate scaling element of the 3x4 matrix.
      • setMyz

        public final void setMyz​(double value)
        Sets the value of the property myz.
        Property description:
        Defines the YZ coordinate element of the 3x4 matrix.
      • setTy

        public final void setTy​(double value)
        Sets the value of the property ty.
        Property description:
        Defines the Y coordinate translation element of the 3x4 matrix.
      • setMzx

        public final void setMzx​(double value)
        Sets the value of the property mzx.
        Property description:
        Defines the ZX coordinate element of the 3x4 matrix.
      • setMzy

        public final void setMzy​(double value)
        Sets the value of the property mzy.
        Property description:
        Defines the ZY coordinate element of the 3x4 matrix.
      • setMzz

        public final void setMzz​(double value)
        Sets the value of the property mzz.
        Property description:
        Defines the Z coordinate scaling element of the 3x4 matrix.
      • setTz

        public final void setTz​(double value)
        Sets the value of the property tz.
        Property description:
        Defines the Z coordinate translation element of the 3x4 matrix.
      • 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
      • 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
      • 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
      • 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.