# Class BackgroundPosition

java.lang.Object
javafx.scene.layout.BackgroundPosition

All Implemented Interfaces:
  `Interpolatable<BackgroundPosition>`

public final class BackgroundPosition extends Object implements Interpolatable<BackgroundPosition>
Represents the position of a `BackgroundImage` within the `Region`'s drawing area.

The BackgroundImage can be positioned either from the left or right side along the horizontal axis, and from either the top or bottom side along the vertical axis. The `horizontalSide` and `verticalSide` properties define to which side the remaining properties pertain. The `horizontalPosition` specifies the distance of the BackgroundImage from the corresponding side of the Region, and `horizontalAsPercentage` indicates whether this is as a literal value or a percentage. Similar properties exist for specifying the size relative to the vertical axis.

For example, suppose I had a BackgroundPosition with a `horizontalSide` of `Side.RIGHT`, a `horizontalPosition` of .05, and a `horizontalAsPercentage` of `true`. In this case, the right side of the BackgroundImage will be 5% of the width of the Region from the Region's right edge.

Since:
  JavaFX 8.0

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final BackgroundPosition`
  `CENTER`
  A BackgroundPosition which will center a BackgroundImage.
  `static final BackgroundPosition`
  `DEFAULT`
  The default BackgroundPosition for any BackgroundImage.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BackgroundPosition(Side horizontalSide, double horizontalPosition, boolean horizontalAsPercentage, Side verticalSide, double verticalPosition, boolean verticalAsPercentage)`
  Creates a new BackgroundPosition.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final double`
  `getHorizontalPosition()`
  The value indicating the position of the BackgroundImage relative to the Region along the side indicated by the `horizontalSide` property.
  `final Side`
  `getHorizontalSide()`
  The side along the horizontal axis to which the BackgroundImage is anchored.
  `final double`
  `getVerticalPosition()`
  The value indicating the position of the BackgroundImage relative to the Region along the side indicated by the `verticalSide` property.
  `final Side`
  `getVerticalSide()`
  The side along the vertical axis to which the BackgroundImage is anchored.
  `BackgroundPosition`
  `interpolate(BackgroundPosition endValue, double t)`
  Returns an intermediate value between the value of this `Interpolatable` and the specified `endValue` using the linear interpolation factor `t`.
  `final boolean`
  `isHorizontalAsPercentage()`
  Specifies whether the `horizontalPosition` should be interpreted as a literal number or as a percentage.
  `final boolean`
  `isVerticalAsPercentage()`
  Specifies whether the `verticalPosition` should be interpreted as a literal number or as a percentage.

  ### Methods declared in class Object

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

- ## Field Details

  - ### DEFAULT

    public static final BackgroundPosition DEFAULT
    The default BackgroundPosition for any BackgroundImage. The default is to have no insets and to be defined as 0% and 0%. That is, the position is in the top-left corner.

  - ### CENTER

    public static final BackgroundPosition CENTER
    A BackgroundPosition which will center a BackgroundImage.

- ## Constructor Details

  - ### BackgroundPosition

    public BackgroundPosition(Side horizontalSide, double horizontalPosition, boolean horizontalAsPercentage, Side verticalSide, double verticalPosition, boolean verticalAsPercentage)
    Creates a new BackgroundPosition.
    Parameters:
      `horizontalSide` - The horizontal side, must be either null, LEFT, or RIGHT. If null, LEFT will be used. If TOP or BOTTOM is specified, an IllegalArgumentException is thrown.
      `horizontalPosition` - The horizontal position value.
      `horizontalAsPercentage` - Whether to interpret the horizontal position as a decimal or percentage
      `verticalSide` - The vertical side, must be either null, TOP, or BOTTOM. If null, TOP will be used. If LEFT or RIGHT is specified, an IllegalArgumentException is thrown.
      `verticalPosition` - The vertical position value.
      `verticalAsPercentage` - Whether to interpret the vertical position as a decimal or percentage

- ## Method Details

  - ### getHorizontalSide

    public final Side getHorizontalSide()
    The side along the horizontal axis to which the BackgroundImage is anchored. This will only be LEFT or RIGHT and never null.
    Interpolation Type:
      discrete
    Returns:
      the Side along the horizontal axis to which the BackgroundImage is anchored

  - ### getVerticalSide

    public final Side getVerticalSide()
    The side along the vertical axis to which the BackgroundImage is anchored. This will only be TOP or BOTTOM and never null.
    Interpolation Type:
      discrete
    Returns:
      the Side along the vertical axis to which the BackgroundImage is anchored

  - ### getHorizontalPosition

    public final double getHorizontalPosition()
    The value indicating the position of the BackgroundImage relative to the Region along the side indicated by the `horizontalSide` property. This value is either a literal or a percentage, depending on the `horizontalAsPercentage` property. Negative values are acceptable.
    Interpolation Type:
      discrete if one value is absolute and the other is a `percentage`, or if the background is anchored at different `sides`; otherwise linear
    Returns:
      the horizontal position of the BackgroundImage

  - ### getVerticalPosition

    public final double getVerticalPosition()
    The value indicating the position of the BackgroundImage relative to the Region along the side indicated by the `verticalSide` property. This value is either a literal or a percentage, depending on the `verticalAsPercentage` property. Negative values are acceptable.
    Interpolation Type:
      discrete if one value is absolute and the other is a `percentage`, or if the background is anchored at different `sides`; otherwise linear
    Returns:
      the vertical position of the BackgroundImage

  - ### isHorizontalAsPercentage

    public final boolean isHorizontalAsPercentage()
    Specifies whether the `horizontalPosition` should be interpreted as a literal number or as a percentage.
    Interpolation Type:
      discrete
    Returns:
      true if horizontalPosition should be interpreted as a percentage

  - ### isVerticalAsPercentage

    public final boolean isVerticalAsPercentage()
    Specifies whether the `verticalPosition` should be interpreted as a literal number or as a percentage.
    Interpolation Type:
      discrete
    Returns:
      true if verticalPosition should be interpreted as a percentage

  - ### interpolate

    public BackgroundPosition interpolate(BackgroundPosition endValue, double t)
    Returns an intermediate value between the value of this `Interpolatable` and the specified `endValue` using the linear interpolation factor `t`. The interpolation factor can be any finite value.

    The returned value might not be a new instance; the implementation might also return one of the two existing instances if the intermediate value would be equal to one of the existing values. However, this is an optimization and applications should not assume any particular identity of the returned value.

    Specified by:
      `interpolate` in interface `Interpolatable<BackgroundPosition>`
    Parameters:
      `endValue` - the target value
      `t` - the interpolation factor
    Returns:
      the intermediate value
    Throws:
      `NullPointerException` - if `endValue` is `null`
    Since:
      24