Module javafx.graphics
Package javafx.scene.transform

## Class Shear

- java.lang.Object
- - javafx.scene.transform.Transform
  - - javafx.scene.transform.Shear

- All Implemented Interfaces:
    `Cloneable`, `EventTarget`

      public class Shear
      extends Transform

  This class represents an `Affine` object that shears coordinates by the specified multipliers. The matrix representing the shearing transformation around a pivot point `(pivotX, pivotY)` with multiplication factors `x` and `y` is as follows:

                    [   1   x   0   -x*pivotY   ]
                    [   y   1   0   -y*pivotX   ]
                    [   0   0   1       0       ]

  For example:

       Text text = new Text("Using Shear for pseudo-italic font");
       text.setX(20);
       text.setY(50);
       text.setFont(new Font(20));

       text.getTransforms().add(new Shear(-0.35, 0));

  Since:
    JavaFX 2.0

- - ### Property Summary

    Properties
    Type | Property | Description
    --- | --- | ---
    `DoubleProperty` | `pivotX` | Defines the X coordinate of the shear pivot point.
    `DoubleProperty` | `pivotY` | Defines the Y coordinate of the shear pivot point.
    `DoubleProperty` | `x` | Defines the multiplier by which coordinates are shifted in the direction of the positive X axis as a factor of their Y coordinate.
    `DoubleProperty` | `y` | Defines the multiplier by which coordinates are shifted in the direction of the positive Y axis as a factor of their X coordinate.

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

      `identity, onTransformChanged, type2D`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Shear()` | Creates a default Shear (identity).
    `Shear​(double x, double y)` | Creates a new instance of Shear.
    `Shear​(double x, double y, double pivotX, double pivotY)` | Creates a new instance of Shear with pivot.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `Shear` | `clone()` | Returns a deep copy of this transform.
    `Transform` | `createConcatenation​(Transform transform)` | Returns the concatenation of this transform and the specified transform.
    `Transform` | `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` | `getMxy()` | Gets the XY coordinate element of the 3x4 matrix.
    `double` | `getMyx()` | Gets the YX coordinate element of the 3x4 matrix.
    `double` | `getPivotX()` | Gets the value of the property pivotX.
    `double` | `getPivotY()` | Gets the value of the property pivotY.
    `double` | `getTx()` | Gets the X coordinate translation element of the 3x4 matrix.
    `double` | `getTy()` | Gets the Y coordinate translation element of the 3x4 matrix.
    `double` | `getX()` | Gets the value of the property x.
    `double` | `getY()` | Gets the value of the property y.
    `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.
    `DoubleProperty` | `pivotXProperty()` | Defines the X coordinate of the shear pivot point.
    `DoubleProperty` | `pivotYProperty()` | Defines the Y coordinate of the shear pivot point.
    `void` | `setPivotX​(double value)` | Sets the value of the property pivotX.
    `void` | `setPivotY​(double value)` | Sets the value of the property pivotY.
    `void` | `setX​(double value)` | Sets the value of the property x.
    `void` | `setY​(double value)` | Sets the value of the property y.
    `String` | `toString()` | Returns a string representation of this `Shear` 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.
    `DoubleProperty` | `xProperty()` | Defines the multiplier by which coordinates are shifted in the direction of the positive X axis as a factor of their Y coordinate.
    `DoubleProperty` | `yProperty()` | Defines the multiplier by which coordinates are shifted in the direction of the positive Y axis as a factor of their X coordinate.

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

      `addEventFilter, addEventHandler, affine, affine, buildEventDispatchChain, column, column, deltaTransform, deltaTransform, determinant, getElement, getMxx, getMxz, getMyy, getMyz, getMzx, getMzy, getMzz, getOnTransformChanged, getTz, 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 Detail

    - #### x

          public final DoubleProperty xProperty

      Defines the multiplier by which coordinates are shifted in the direction of the positive X axis as a factor of their Y coordinate. Typical values are in the range -1 to 1, exclusive.
      Default value:
        0.0
      See Also:
        `getX()`, `setX(double)`

    - #### y

          public final DoubleProperty yProperty

      Defines the multiplier by which coordinates are shifted in the direction of the positive Y axis as a factor of their X coordinate. Typical values are in the range -1 to 1, exclusive.
      Default value:
        0.0
      See Also:
        `getY()`, `setY(double)`

    - #### pivotX

          public final DoubleProperty pivotXProperty

      Defines the X coordinate of the shear pivot point.
      Default value:
        0.0
      See Also:
        `getPivotX()`, `setPivotX(double)`

    - #### pivotY

          public final DoubleProperty pivotYProperty

      Defines the Y coordinate of the shear pivot point.
      Default value:
        0.0
      See Also:
        `getPivotY()`, `setPivotY(double)`

  - ### Constructor Detail

    - #### Shear

          public Shear()

      Creates a default Shear (identity).

    - #### Shear

          public Shear​(double x,
                       double y)

      Creates a new instance of Shear. The pivot point is set to (0,0)
      Parameters:
        `x` - the multiplier by which coordinates are shifted in the direction of the positive X axis as a factor of their Y coordinate
        `y` - the multiplier by which coordinates are shifted in the direction of the positive Y axis as a factor of their X coordinate

    - #### Shear

          public Shear​(double x,
                       double y,
                       double pivotX,
                       double pivotY)

      Creates a new instance of Shear with pivot.
      Parameters:
        `x` - the multiplier by which coordinates are shifted in the direction of the positive X axis as a factor of their Y coordinate
        `y` - the multiplier by which coordinates are shifted in the direction of the positive Y axis as a factor of their X coordinate
        `pivotX` - the X coordinate of the shear pivot point
        `pivotY` - the Y coordinate of the shear pivot point

  - ### Method Detail

    - #### setX

          public final void setX​(double value)

      Sets the value of the property x.
      Property description:
        Defines the multiplier by which coordinates are shifted in the direction of the positive X axis as a factor of their Y coordinate. Typical values are in the range -1 to 1, exclusive.
      Default value:
        0.0

    - #### getX

          public final double getX()

      Gets the value of the property x.
      Property description:
        Defines the multiplier by which coordinates are shifted in the direction of the positive X axis as a factor of their Y coordinate. Typical values are in the range -1 to 1, exclusive.
      Default value:
        0.0

    - #### xProperty

          public final DoubleProperty xProperty()

      Defines the multiplier by which coordinates are shifted in the direction of the positive X axis as a factor of their Y coordinate. Typical values are in the range -1 to 1, exclusive.
      Default value:
        0.0
      See Also:
        `getX()`, `setX(double)`

    - #### setY

          public final void setY​(double value)

      Sets the value of the property y.
      Property description:
        Defines the multiplier by which coordinates are shifted in the direction of the positive Y axis as a factor of their X coordinate. Typical values are in the range -1 to 1, exclusive.
      Default value:
        0.0

    - #### getY

          public final double getY()

      Gets the value of the property y.
      Property description:
        Defines the multiplier by which coordinates are shifted in the direction of the positive Y axis as a factor of their X coordinate. Typical values are in the range -1 to 1, exclusive.
      Default value:
        0.0

    - #### yProperty

          public final DoubleProperty yProperty()

      Defines the multiplier by which coordinates are shifted in the direction of the positive Y axis as a factor of their X coordinate. Typical values are in the range -1 to 1, exclusive.
      Default value:
        0.0
      See Also:
        `getY()`, `setY(double)`

    - #### setPivotX

          public final void setPivotX​(double value)

      Sets the value of the property pivotX.
      Property description:
        Defines the X coordinate of the shear pivot point.
      Default value:
        0.0

    - #### getPivotX

          public final double getPivotX()

      Gets the value of the property pivotX.
      Property description:
        Defines the X coordinate of the shear pivot point.
      Default value:
        0.0

    - #### pivotXProperty

          public final DoubleProperty pivotXProperty()

      Defines the X coordinate of the shear pivot point.
      Default value:
        0.0
      See Also:
        `getPivotX()`, `setPivotX(double)`

    - #### setPivotY

          public final void setPivotY​(double value)

      Sets the value of the property pivotY.
      Property description:
        Defines the Y coordinate of the shear pivot point.
      Default value:
        0.0

    - #### getPivotY

          public final double getPivotY()

      Gets the value of the property pivotY.
      Property description:
        Defines the Y coordinate of the shear pivot point.
      Default value:
        0.0

    - #### pivotYProperty

          public final DoubleProperty pivotYProperty()

      Defines the Y coordinate of the shear pivot point.
      Default value:
        0.0
      See Also:
        `getPivotY()`, `setPivotY(double)`

    - #### getMxy

          public double getMxy()

      Description copied from class: `Transform`
      Gets the XY coordinate element of the 3x4 matrix.
      Overrides:
        `getMxy` in class `Transform`
      Returns:
        the XY coordinate element of the 3x4 matrix

    - #### getMyx

          public double getMyx()

      Description copied from class: `Transform`
      Gets the YX coordinate element of the 3x4 matrix.
      Overrides:
        `getMyx` in class `Transform`
      Returns:
        the YX coordinate element of the 3x4 matrix

    - #### getTx

          public double getTx()

      Description copied from class: `Transform`
      Gets the X coordinate translation element of the 3x4 matrix.
      Overrides:
        `getTx` in class `Transform`
      Returns:
        the X coordinate translation element of the 3x4 matrix

    - #### getTy

          public double getTy()

      Description copied from class: `Transform`
      Gets the Y coordinate translation element of the 3x4 matrix.
      Overrides:
        `getTy` in class `Transform`
      Returns:
        the Y coordinate translation element of the 3x4 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 Transform createInverse()

      Description copied from class: `Transform`
      Returns the inverse transform of this transform.
      Overrides:
        `createInverse` in class `Transform`
      Returns:
        the inverse transform

    - #### clone

          public Shear clone()

      Description copied from class: `Transform`
      Returns a deep copy of this transform.
      Overrides:
        `clone` in class `Transform`
      Returns:
        a copy of this transform

    - #### 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 `Shear` object.
      Overrides:
        `toString` in class `Object`
      Returns:
        a string representation of this `Shear` object.