# Class CornerRadii

java.lang.Object
javafx.scene.layout.CornerRadii

All Implemented Interfaces:
  `Interpolatable<CornerRadii>`

public final class CornerRadii extends Object implements Interpolatable<CornerRadii>
Defines the radii of each of the four corners of a BorderStroke. The CornerRadii class is immutable and therefore can be reused on multiple BorderStrokes. This class defines 8 different values, corresponding to the horizontal and vertical components of 4 quarter ellipses, which in turn define the curvature of the corners of the BorderStroke.

Since:
  JavaFX 8.0

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final CornerRadii`
  `EMPTY`
  A CornerRadii which is entirely empty, indicating squared corners.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CornerRadii(double radius)`
  Create a new CornerRadii with a single uniform radii value for all components of all corners.
  `CornerRadii(double radius, boolean asPercent)`
  Create a new CornerRadii with the given radii for each corner.
  `CornerRadii(double topLeft, double topRight, double bottomRight, double bottomLeft, boolean asPercent)`
  Create a new CornerRadii with uniform yet independent radii for each corner.
  `CornerRadii(double topLeftHorizontalRadius, double topLeftVerticalRadius, double topRightVerticalRadius, double topRightHorizontalRadius, double bottomRightHorizontalRadius, double bottomRightVerticalRadius, double bottomLeftVerticalRadius, double bottomLeftHorizontalRadius, boolean topLeftHorizontalRadiusAsPercent, boolean topLeftVerticalRadiusAsPercent, boolean topRightVerticalRadiusAsPercent, boolean topRightHorizontalRadiusAsPercent, boolean bottomRightHorizontalRadiusAsPercent, boolean bottomRightVerticalRadiusAsPercent, boolean bottomLeftVerticalRadiusAsPercent, boolean bottomLeftHorizontalRadiusAsPercent)`
  Creates a new CornerRadii, allowing for specification of each component of each corner radii and whether each component should be treated as a value or percentage.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final double`
  `getBottomLeftHorizontalRadius()`
  The length of the horizontal radii of the bottom-left corner.
  `final double`
  `getBottomLeftVerticalRadius()`
  The length of the vertical radii of the bottom-left corner.
  `final double`
  `getBottomRightHorizontalRadius()`
  The length of the horizontal radii of the bottom-right corner.
  `final double`
  `getBottomRightVerticalRadius()`
  The length of the vertical radii of the bottom-right corner.
  `final double`
  `getTopLeftHorizontalRadius()`
  The length of the horizontal radii of the top-left corner.
  `final double`
  `getTopLeftVerticalRadius()`
  The length of the vertical radii of the top-left corner.
  `final double`
  `getTopRightHorizontalRadius()`
  The length of the horizontal radii of the top-right corner.
  `final double`
  `getTopRightVerticalRadius()`
  The length of the vertical radii of the top-right corner.
  `CornerRadii`
  `interpolate(CornerRadii endValue, double t)`
  Returns an intermediate value between the value of this `Interpolatable` and the specified `endValue` using the linear interpolation factor `t`, ranging from 0 (inclusive) to 1 (inclusive).
  `final boolean`
  `isBottomLeftHorizontalRadiusAsPercentage()`
  Indicates whether `bottomLeftHorizontalRadius` is interpreted as a value or a percentage.
  `final boolean`
  `isBottomLeftVerticalRadiusAsPercentage()`
  Indicates whether `bottomLeftVerticalRadius` is interpreted as a value or a percentage.
  `final boolean`
  `isBottomRightHorizontalRadiusAsPercentage()`
  Indicates whether `bottomRightHorizontalRadius` is interpreted as a value or a percentage.
  `final boolean`
  `isBottomRightVerticalRadiusAsPercentage()`
  Indicates whether `bottomRightVerticalRadius` is interpreted as a value or a percentage.
  `final boolean`
  `isTopLeftHorizontalRadiusAsPercentage()`
  Indicates whether `topLeftHorizontalRadius` is interpreted as a value or a percentage.
  `final boolean`
  `isTopLeftVerticalRadiusAsPercentage()`
  Indicates whether `topLeftVerticalRadius` is interpreted as a value or a percentage.
  `final boolean`
  `isTopRightHorizontalRadiusAsPercentage()`
  Indicates whether `topRightHorizontalRadius` is interpreted as a value or a percentage.
  `final boolean`
  `isTopRightVerticalRadiusAsPercentage()`
  Indicates whether `topRightVerticalRadius` is interpreted as a value or a percentage.
  `final boolean`
  `isUniform()`
  Indicates whether each corner radius is exactly the same, and each are either uniformly percentage-based or not.

  ### Methods declared in class java.lang.Object

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

- ## Field Details

  - ### EMPTY

    public static final CornerRadii EMPTY
    A CornerRadii which is entirely empty, indicating squared corners. This is the default value for a BorderStroke's radii.

- ## Constructor Details

  - ### CornerRadii

    public CornerRadii(double radius)
    Create a new CornerRadii with a single uniform radii value for all components of all corners. This constructor will create the CornerRadii such that none of the values are percentages.
    Parameters:
      `radius` - The radii for each corner. Negative values are not allowed.

  - ### CornerRadii

    public CornerRadii(double radius, boolean asPercent)
    Create a new CornerRadii with the given radii for each corner. The value is interpreted either as being a percentage or not based on the `asPercent` argument.
    Parameters:
      `radius` - The radii for each corner. Negative values are not allowed.
      `asPercent` - Whether the radii should be interpreted as a percentage.

  - ### CornerRadii

    public CornerRadii(double topLeft, double topRight, double bottomRight, double bottomLeft, boolean asPercent)
    Create a new CornerRadii with uniform yet independent radii for each corner. That is, each corner can be specified independently, but the horizontal and vertical components of each corner is uniform.
    Parameters:
      `topLeft` - The radii of the top-left corner. Negative numbers are not allowed.
      `topRight` - The radii of the top-right corner. Negative numbers are not allowed.
      `bottomRight` - The radii of the bottom-right corner. Negative numbers are not allowed.
      `bottomLeft` - The radii of the bottom-left corner. Negative numbers are not allowed.
      `asPercent` - Whether all four radii should be considered as values or percentages

  - ### CornerRadii

    public CornerRadii(double topLeftHorizontalRadius, double topLeftVerticalRadius, double topRightVerticalRadius, double topRightHorizontalRadius, double bottomRightHorizontalRadius, double bottomRightVerticalRadius, double bottomLeftVerticalRadius, double bottomLeftHorizontalRadius, boolean topLeftHorizontalRadiusAsPercent, boolean topLeftVerticalRadiusAsPercent, boolean topRightVerticalRadiusAsPercent, boolean topRightHorizontalRadiusAsPercent, boolean bottomRightHorizontalRadiusAsPercent, boolean bottomRightVerticalRadiusAsPercent, boolean bottomLeftVerticalRadiusAsPercent, boolean bottomLeftHorizontalRadiusAsPercent)
    Creates a new CornerRadii, allowing for specification of each component of each corner radii and whether each component should be treated as a value or percentage.
    Parameters:
      `topLeftHorizontalRadius` - The length of the horizontal radii of the top-left corner
      `topLeftVerticalRadius` - The length of the vertical radii of the top-left corner
      `topRightVerticalRadius` - The length of the vertical radii of the top-right corner
      `topRightHorizontalRadius` - The length of the horizontal radii of the top-right corner
      `bottomRightHorizontalRadius` - The length of the horizontal radii of the bottom-right corner
      `bottomRightVerticalRadius` - The length of the vertical radii of the bottom-right corner
      `bottomLeftVerticalRadius` - The length of the vertical radii of the bottom-left corner
      `bottomLeftHorizontalRadius` - The length of the horizontal radii of the bottom-left corner
      `topLeftHorizontalRadiusAsPercent` - Is the horizontal radii of the top-left corner as percentage
      `topLeftVerticalRadiusAsPercent` - Is the vertical radii of the top-left corner as percentage
      `topRightVerticalRadiusAsPercent` - Is the vertical radii of the top-right corner as percentage
      `topRightHorizontalRadiusAsPercent` - Is the horizontal radii of the top-right corner as percentage
      `bottomRightHorizontalRadiusAsPercent` - Is the horizontal radii of the bottom-right corner as percentage
      `bottomRightVerticalRadiusAsPercent` - Is the vertical radii of the bottom-right corner as percentage
      `bottomLeftVerticalRadiusAsPercent` - Is the vertical radii of the bottom-left corner as percentage
      `bottomLeftHorizontalRadiusAsPercent` - Is the horizontal radii of the bottom-left corner as percentage

- ## Method Details

  - ### getTopLeftHorizontalRadius

    public final double getTopLeftHorizontalRadius()
    The length of the horizontal radii of the top-left corner.
    Interpolation Type:
      linear if both values are absolute or both values are `percentages`, discrete otherwise
    Returns:
      the length of the horizontal radii of the top-left corner

  - ### getTopLeftVerticalRadius

    public final double getTopLeftVerticalRadius()
    The length of the vertical radii of the top-left corner.
    Interpolation Type:
      linear if both values are absolute or both values are `percentages`, discrete otherwise
    Returns:
      the length of the vertical radii of the top-left corner

  - ### getTopRightVerticalRadius

    public final double getTopRightVerticalRadius()
    The length of the vertical radii of the top-right corner.
    Interpolation Type:
      linear if both values are absolute or both values are `percentages`, discrete otherwise
    Returns:
      the length of the vertical radii of the top-right corner

  - ### getTopRightHorizontalRadius

    public final double getTopRightHorizontalRadius()
    The length of the horizontal radii of the top-right corner.
    Interpolation Type:
      linear if both values are absolute or both values are `percentages`, discrete otherwise
    Returns:
      the length of the horizontal radii of the top-right corner

  - ### getBottomRightHorizontalRadius

    public final double getBottomRightHorizontalRadius()
    The length of the horizontal radii of the bottom-right corner.
    Interpolation Type:
      linear if both values are absolute or both values are `percentages`, discrete otherwise
    Returns:
      the length of the horizontal radii of the bottom-right corner

  - ### getBottomRightVerticalRadius

    public final double getBottomRightVerticalRadius()
    The length of the vertical radii of the bottom-right corner.
    Interpolation Type:
      linear if both values are absolute or both values are `percentages`, discrete otherwise
    Returns:
      the length of the vertical radii of the bottom-right corner

  - ### getBottomLeftVerticalRadius

    public final double getBottomLeftVerticalRadius()
    The length of the vertical radii of the bottom-left corner.
    Interpolation Type:
      linear if both values are absolute or both values are `percentages`, discrete otherwise
    Returns:
      the length of the vertical radii of the bottom-left corner

  - ### getBottomLeftHorizontalRadius

    public final double getBottomLeftHorizontalRadius()
    The length of the horizontal radii of the bottom-left corner.
    Interpolation Type:
      linear if both values are absolute or both values are `percentages`, discrete otherwise
    Returns:
      the length of the horizontal radii of the bottom-left corner

  - ### isTopLeftHorizontalRadiusAsPercentage

    public final boolean isTopLeftHorizontalRadiusAsPercentage()
    Indicates whether `topLeftHorizontalRadius` is interpreted as a value or a percentage.
    Interpolation Type:
      discrete
    Returns:
      if true topLeftHorizontalRadius is in percentage, otherwise a value

  - ### isTopLeftVerticalRadiusAsPercentage

    public final boolean isTopLeftVerticalRadiusAsPercentage()
    Indicates whether `topLeftVerticalRadius` is interpreted as a value or a percentage.
    Interpolation Type:
      discrete
    Returns:
      if true topLeftVerticalRadius is in percentage, otherwise a value

  - ### isTopRightVerticalRadiusAsPercentage

    public final boolean isTopRightVerticalRadiusAsPercentage()
    Indicates whether `topRightVerticalRadius` is interpreted as a value or a percentage.
    Interpolation Type:
      discrete
    Returns:
      if true topRightVerticalRadius is in percentage, otherwise a value

  - ### isTopRightHorizontalRadiusAsPercentage

    public final boolean isTopRightHorizontalRadiusAsPercentage()
    Indicates whether `topRightHorizontalRadius` is interpreted as a value or a percentage.
    Interpolation Type:
      discrete
    Returns:
      if true topRightHorizontalRadius is in percentage, otherwise a value

  - ### isBottomRightHorizontalRadiusAsPercentage

    public final boolean isBottomRightHorizontalRadiusAsPercentage()
    Indicates whether `bottomRightHorizontalRadius` is interpreted as a value or a percentage.
    Interpolation Type:
      discrete
    Returns:
      if true bottomRightHorizontalRadius is in percentage, otherwise a value

  - ### isBottomRightVerticalRadiusAsPercentage

    public final boolean isBottomRightVerticalRadiusAsPercentage()
    Indicates whether `bottomRightVerticalRadius` is interpreted as a value or a percentage.
    Interpolation Type:
      discrete
    Returns:
      if true bottomRightVerticalRadius is in percentage, otherwise a value

  - ### isBottomLeftVerticalRadiusAsPercentage

    public final boolean isBottomLeftVerticalRadiusAsPercentage()
    Indicates whether `bottomLeftVerticalRadius` is interpreted as a value or a percentage.
    Interpolation Type:
      discrete
    Returns:
      if true bottomLeftVerticalRadius is in percentage, otherwise a value

  - ### isBottomLeftHorizontalRadiusAsPercentage

    public final boolean isBottomLeftHorizontalRadiusAsPercentage()
    Indicates whether `bottomLeftHorizontalRadius` is interpreted as a value or a percentage.
    Interpolation Type:
      discrete
    Returns:
      if true bottomLeftHorizontalRadius is in percentage, otherwise a value

  - ### isUniform

    public final boolean isUniform()
    Indicates whether each corner radius is exactly the same, and each are either uniformly percentage-based or not.
    Returns:
      if true each corner radius is uniformly percentage-based, otherwise not

  - ### interpolate

    public CornerRadii interpolate(CornerRadii endValue, double t)
    Returns an intermediate value between the value of this `Interpolatable` and the specified `endValue` using the linear interpolation factor `t`, ranging from 0 (inclusive) to 1 (inclusive).

    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<CornerRadii>`
    Parameters:
      `endValue` - the target value
      `t` - the interpolation factor
    Returns:
      the intermediate value
    Throws:
      `NullPointerException` - if `endValue` is `null`
    Since:
      24