# Class CubicCurve2D.Float

java.lang.Object
java.awt.geom.CubicCurve2D
java.awt.geom.CubicCurve2D.Float

All Implemented Interfaces:
  `Shape, Serializable, Cloneable`

Enclosing class:
  `CubicCurve2D`

public static class CubicCurve2D.Float extends CubicCurve2D implements Serializable
A cubic parametric curve segment specified with `float` coordinates.

Since:
  1.2
See Also:
  - Serialized Form

## Nested Class Summary

### Nested classes/interfaces declared in class CubicCurve2D

`CubicCurve2D.Double, CubicCurve2D.Float`
Modifier and Type
Class
Description
`static class`
`CubicCurve2D.Double`
A cubic parametric curve segment specified with `double` coordinates.
`static class`
`CubicCurve2D.Float`
A cubic parametric curve segment specified with `float` coordinates.

## Field Summary

Fields
Modifier and Type
Field
Description
`float`
`ctrlx1`
The X coordinate of the first control point of the cubic curve segment.
`float`
`ctrlx2`
The X coordinate of the second control point of the cubic curve segment.
`float`
`ctrly1`
The Y coordinate of the first control point of the cubic curve segment.
`float`
`ctrly2`
The Y coordinate of the second control point of the cubic curve segment.
`float`
`x1`
The X coordinate of the start point of the cubic curve segment.
`float`
`x2`
The X coordinate of the end point of the cubic curve segment.
`float`
`y1`
The Y coordinate of the start point of the cubic curve segment.
`float`
`y2`
The Y coordinate of the end point of the cubic curve segment.

## Constructor Summary

Constructors
Constructor
Description
`Float()`
Constructs and initializes a CubicCurve with coordinates (0, 0, 0, 0, 0, 0, 0, 0).
`Float(float x1, float y1, float ctrlx1, float ctrly1, float ctrlx2, float ctrly2, float x2, float y2)`
Constructs and initializes a `CubicCurve2D` from the specified `float` coordinates.

## Method Summary

Modifier and Type
Method
Description
`Point2D`
`getCtrlP1()`
Returns the first control point.
`Point2D`
`getCtrlP2()`
Returns the second control point.
`double`
`getCtrlX1()`
Returns the X coordinate of the first control point in double precision.
`double`
`getCtrlX2()`
Returns the X coordinate of the second control point in double precision.
`double`
`getCtrlY1()`
Returns the Y coordinate of the first control point in double precision.
`double`
`getCtrlY2()`
Returns the Y coordinate of the second control point in double precision.
`Point2D`
`getP1()`
Returns the start point.
`Point2D`
`getP2()`
Returns the end point.
`double`
`getX1()`
Returns the X coordinate of the start point in double precision.
`double`
`getX2()`
Returns the X coordinate of the end point in double precision.
`double`
`getY1()`
Returns the Y coordinate of the start point in double precision.
`double`
`getY2()`
Returns the Y coordinate of the end point in double precision.
`void`
`setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)`
Sets the location of the end points and control points of this curve to the specified double coordinates.
`void`
`setCurve(float x1, float y1, float ctrlx1, float ctrly1, float ctrlx2, float ctrly2, float x2, float y2)`
Sets the location of the end points and control points of this curve to the specified `float` coordinates.

### Methods declared in class CubicCurve2D

`clone, contains, contains, contains, contains, getBounds, getBounds2D, getFlatness, getFlatness, getFlatness, getFlatnessSq, getFlatnessSq, getFlatnessSq, getPathIterator, getPathIterator, intersects, intersects, setCurve, setCurve, setCurve, setCurve, solveCubic, solveCubic, subdivide, subdivide, subdivide`
Modifier and Type
Method
Description
`Object`
`clone()`
Creates a new object of the same class as this object.
`boolean`
`contains(double x, double y)`
Tests if the specified coordinates are inside the boundary of the `Shape`, as described by the definition of insideness.
`boolean`
`contains(double x, double y, double w, double h)`
Tests if the interior of the `Shape` entirely contains the specified rectangular area.
`boolean`
`contains(Point2D p)`
Tests if a specified `Point2D` is inside the boundary of the `Shape`, as described by the definition of insideness.
`boolean`
`contains(Rectangle2D r)`
Tests if the interior of the `Shape` entirely contains the specified `Rectangle2D`.
`Rectangle`
`getBounds()`
Returns an integer `Rectangle` that completely encloses the `Shape`.
`Rectangle2D`
`getBounds2D()`
Returns a high precision and more accurate bounding box of the `Shape` than the `getBounds` method.
`double`
`getFlatness()`
Returns the flatness of this curve.
`static double`
`getFlatness(double[] coords, int offset)`
Returns the flatness of the cubic curve specified by the control points stored in the indicated array at the indicated index.
`static double`
`getFlatness(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)`
Returns the flatness of the cubic curve specified by the indicated control points.
`double`
`getFlatnessSq()`
Returns the square of the flatness of this curve.
`static double`
`getFlatnessSq(double[] coords, int offset)`
Returns the square of the flatness of the cubic curve specified by the control points stored in the indicated array at the indicated index.
`static double`
`getFlatnessSq(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)`
Returns the square of the flatness of the cubic curve specified by the indicated control points.
`PathIterator`
`getPathIterator(AffineTransform at)`
Returns an iteration object that defines the boundary of the shape.
`PathIterator`
`getPathIterator(AffineTransform at, double flatness)`
Return an iteration object that defines the boundary of the flattened shape.
`boolean`
`intersects(double x, double y, double w, double h)`
Tests if the interior of the `Shape` intersects the interior of a specified rectangular area.
`boolean`
`intersects(Rectangle2D r)`
Tests if the interior of the `Shape` intersects the interior of a specified `Rectangle2D`.
`void`
`setCurve(double[] coords, int offset)`
Sets the location of the end points and control points of this curve to the double coordinates at the specified offset in the specified array.
`void`
`setCurve(CubicCurve2D c)`
Sets the location of the end points and control points of this curve to the same as those in the specified `CubicCurve2D`.
`void`
`setCurve(Point2D[] pts, int offset)`
Sets the location of the end points and control points of this curve to the coordinates of the `Point2D` objects at the specified offset in the specified array.
`void`
`setCurve(Point2D p1, Point2D cp1, Point2D cp2, Point2D p2)`
Sets the location of the end points and control points of this curve to the specified `Point2D` coordinates.
`static int`
`solveCubic(double[] eqn)`
Solves the cubic whose coefficients are in the `eqn` array and places the non-complex roots back into the same array, returning the number of roots.
`static int`
`solveCubic(double[] eqn, double[] res)`
Solve the cubic whose coefficients are in the `eqn` array and place the non-complex roots into the `res` array, returning the number of roots.
`static void`
`subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)`
Subdivides the cubic curve specified by the coordinates stored in the `src` array at indices `srcoff` through (`srcoff` + 7) and stores the resulting two subdivided curves into the two result arrays at the corresponding indices.
`void`
`subdivide(CubicCurve2D left, CubicCurve2D right)`
Subdivides this cubic curve and stores the resulting two subdivided curves into the left and right curve parameters.
`static void`
`subdivide(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right)`
Subdivides the cubic curve specified by the `src` parameter and stores the resulting two subdivided curves into the `left` and `right` curve parameters.

### Methods declared in class Object

`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
Modifier and Type
Method
Description
`boolean`
`equals(Object obj)`
Indicates whether some other object is "equal to" this one.
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`int`
`hashCode()`
Returns a hash code value for this object.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`String`
`toString()`
Returns a string representation of the object.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(long timeoutMillis)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
`final void`
`wait(long timeoutMillis, int nanos)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

## Field Details

### x1

public float x1
The X coordinate of the start point of the cubic curve segment.

Since:
  1.2

### y1

public float y1
The Y coordinate of the start point of the cubic curve segment.

Since:
  1.2

### ctrlx1

public float ctrlx1
The X coordinate of the first control point of the cubic curve segment.

Since:
  1.2

### ctrly1

public float ctrly1
The Y coordinate of the first control point of the cubic curve segment.

Since:
  1.2

### ctrlx2

public float ctrlx2
The X coordinate of the second control point of the cubic curve segment.

Since:
  1.2

### ctrly2

public float ctrly2
The Y coordinate of the second control point of the cubic curve segment.

Since:
  1.2

### x2

public float x2
The X coordinate of the end point of the cubic curve segment.

Since:
  1.2

### y2

public float y2
The Y coordinate of the end point of the cubic curve segment.

Since:
  1.2

## Constructor Details

### Float

public Float()
Constructs and initializes a CubicCurve with coordinates (0, 0, 0, 0, 0, 0, 0, 0).

Since:
  1.2

### Float

public Float(float x1, float y1, float ctrlx1, float ctrly1, float ctrlx2, float ctrly2, float x2, float y2)
Constructs and initializes a `CubicCurve2D` from the specified `float` coordinates.

Parameters:
  `x1` - the X coordinate for the start point of the resulting `CubicCurve2D`
  `y1` - the Y coordinate for the start point of the resulting `CubicCurve2D`
  `ctrlx1` - the X coordinate for the first control point of the resulting `CubicCurve2D`
  `ctrly1` - the Y coordinate for the first control point of the resulting `CubicCurve2D`
  `ctrlx2` - the X coordinate for the second control point of the resulting `CubicCurve2D`
  `ctrly2` - the Y coordinate for the second control point of the resulting `CubicCurve2D`
  `x2` - the X coordinate for the end point of the resulting `CubicCurve2D`
  `y2` - the Y coordinate for the end point of the resulting `CubicCurve2D`
Since:
  1.2

## Method Details

### getX1

public double getX1()
Returns the X coordinate of the start point in double precision.

Specified by:
  `getX1` in class `CubicCurve2D`
Returns:
  the X coordinate of the start point of the `CubicCurve2D`.
Since:
  1.2

### getY1

public double getY1()
Returns the Y coordinate of the start point in double precision.

Specified by:
  `getY1` in class `CubicCurve2D`
Returns:
  the Y coordinate of the start point of the `CubicCurve2D`.
Since:
  1.2

### getP1

public Point2D getP1()
Returns the start point.

Specified by:
  `getP1` in class `CubicCurve2D`
Returns:
  a `Point2D` that is the start point of the `CubicCurve2D`.
Since:
  1.2

### getCtrlX1

public double getCtrlX1()
Returns the X coordinate of the first control point in double precision.

Specified by:
  `getCtrlX1` in class `CubicCurve2D`
Returns:
  the X coordinate of the first control point of the `CubicCurve2D`.
Since:
  1.2

### getCtrlY1

public double getCtrlY1()
Returns the Y coordinate of the first control point in double precision.

Specified by:
  `getCtrlY1` in class `CubicCurve2D`
Returns:
  the Y coordinate of the first control point of the `CubicCurve2D`.
Since:
  1.2

### getCtrlP1

public Point2D getCtrlP1()
Returns the first control point.

Specified by:
  `getCtrlP1` in class `CubicCurve2D`
Returns:
  a `Point2D` that is the first control point of the `CubicCurve2D`.
Since:
  1.2

### getCtrlX2

public double getCtrlX2()
Returns the X coordinate of the second control point in double precision.

Specified by:
  `getCtrlX2` in class `CubicCurve2D`
Returns:
  the X coordinate of the second control point of the `CubicCurve2D`.
Since:
  1.2

### getCtrlY2

public double getCtrlY2()
Returns the Y coordinate of the second control point in double precision.

Specified by:
  `getCtrlY2` in class `CubicCurve2D`
Returns:
  the Y coordinate of the second control point of the `CubicCurve2D`.
Since:
  1.2

### getCtrlP2

public Point2D getCtrlP2()
Returns the second control point.

Specified by:
  `getCtrlP2` in class `CubicCurve2D`
Returns:
  a `Point2D` that is the second control point of the `CubicCurve2D`.
Since:
  1.2

### getX2

public double getX2()
Returns the X coordinate of the end point in double precision.

Specified by:
  `getX2` in class `CubicCurve2D`
Returns:
  the X coordinate of the end point of the `CubicCurve2D`.
Since:
  1.2

### getY2

public double getY2()
Returns the Y coordinate of the end point in double precision.

Specified by:
  `getY2` in class `CubicCurve2D`
Returns:
  the Y coordinate of the end point of the `CubicCurve2D`.
Since:
  1.2

### getP2

public Point2D getP2()
Returns the end point.

Specified by:
  `getP2` in class `CubicCurve2D`
Returns:
  a `Point2D` that is the end point of the `CubicCurve2D`.
Since:
  1.2

### setCurve

public void setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
Sets the location of the end points and control points of this curve to the specified double coordinates.

Specified by:
  `setCurve` in class `CubicCurve2D`
Parameters:
  `x1` - the X coordinate used to set the start point of this `CubicCurve2D`
  `y1` - the Y coordinate used to set the start point of this `CubicCurve2D`
  `ctrlx1` - the X coordinate used to set the first control point of this `CubicCurve2D`
  `ctrly1` - the Y coordinate used to set the first control point of this `CubicCurve2D`
  `ctrlx2` - the X coordinate used to set the second control point of this `CubicCurve2D`
  `ctrly2` - the Y coordinate used to set the second control point of this `CubicCurve2D`
  `x2` - the X coordinate used to set the end point of this `CubicCurve2D`
  `y2` - the Y coordinate used to set the end point of this `CubicCurve2D`
Since:
  1.2

### setCurve

public void setCurve(float x1, float y1, float ctrlx1, float ctrly1, float ctrlx2, float ctrly2, float x2, float y2)
Sets the location of the end points and control points of this curve to the specified `float` coordinates.

Parameters:
  `x1` - the X coordinate used to set the start point of this `CubicCurve2D`
  `y1` - the Y coordinate used to set the start point of this `CubicCurve2D`
  `ctrlx1` - the X coordinate used to set the first control point of this `CubicCurve2D`
  `ctrly1` - the Y coordinate used to set the first control point of this `CubicCurve2D`
  `ctrlx2` - the X coordinate used to set the second control point of this `CubicCurve2D`
  `ctrly2` - the Y coordinate used to set the second control point of this `CubicCurve2D`
  `x2` - the X coordinate used to set the end point of this `CubicCurve2D`
  `y2` - the Y coordinate used to set the end point of this `CubicCurve2D`
Since:
  1.2