 # CubicCurve

#### object CubicCurve

Utility methods to deal with Bézier cubic curves.

Linear Supertypes
AnyRef, Any
Ordering
1. Alphabetic
2. By inheritance
Inherited
1. CubicCurve
2. AnyRef
3. Any
1. Hide All
2. Show all
Visibility
1. Public
2. All

### Value Members

1. #### final def !=(arg0: AnyRef): Boolean

Definition Classes
AnyRef
2. #### final def !=(arg0: Any): Boolean

Definition Classes
Any
3. #### final def ##(): Int

Definition Classes
AnyRef → Any
4. #### final def ==(arg0: AnyRef): Boolean

Definition Classes
AnyRef
5. #### final def ==(arg0: Any): Boolean

Definition Classes
Any
6. #### def approxIntersectionPointOnCurve(edge: GraphicEdge, c: Connector, camera: Camera, maxDepth: Int): (Point2, Double)

Use a dichotomy method to evaluate the intersection between the `edge` destination node shape and the Bézier curve of the connector `c`.

Use a dichotomy method to evaluate the intersection between the `edge` destination node shape and the Bézier curve of the connector `c`. The returned values are the point of intersection as well as the parametric position of this point on the curve (a float). The dichotomy can recurse at any level to increase precision, often 7 is sufficient, the `maxDepth` parameter allows to set this depth.

returns

A 2-tuple made of the point of intersection and the associated parametric position.

7. #### def approxIntersectionPointOnCurve(edge: GraphicEdge, c: Connector, camera: Camera): (Point2, Double)

Use a dichotomy method to evaluate the intersection between the `edge` destination node shape and the Bézier curve of the connector `c`.

Use a dichotomy method to evaluate the intersection between the `edge` destination node shape and the Bézier curve of the connector `c`. The returned values are the point of intersection as well as the parametric position of this point on the curve (a float). The maximal recursive depth of the dichotomy is fixed to 7 here.

returns

A 2-tuple made of the point of intersection and the associated parametric position.

8. #### def approxLengthOfCurve(c: Connector): Double

Evaluate the length of a Bézier curve by taking n points on the curve and summing the lengths of the n+1 segments thus defined.

9. #### def approxLengthOfCurveQuick(c: Connector): Double

Evaluate the length of a Bézier curve by taking four points on the curve and summing the lengths of the five segments thus defined.

10. #### def approxLengthOfCurveQuickAndDirty(c: Connector): Double

A quick and dirty hack to evaluate the length of a cubic bezier curve.

A quick and dirty hack to evaluate the length of a cubic bezier curve. This method simply compute the length of the three segments of the enclosing polygon and scale them. This is fast but inaccurate.

11. #### def approxVectorEnteringCurve(edge: GraphicEdge, c: Connector, camera: Camera): (Point2, Point2)

Return two points, one inside and the second outside of the shape of the destination node of the given `edge`, the points can be used to deduce a vector along the Bézier curve entering point in the shape.

12. #### final def asInstanceOf[T0]: T0

Definition Classes
Any
13. #### def clone(): AnyRef

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws()
14. #### def derivative(p0: Point3, p1: Point3, p2: Point3, p3: Point3, t: Double, result: Point3): Point3

Store in `result` the derivative point of a cubic Bézier curve according to control points `x0`, `x1`, `x2` and `x3` at parametric position `t` of the curve.

Store in `result` the derivative point of a cubic Bézier curve according to control points `x0`, `x1`, `x2` and `x3` at parametric position `t` of the curve.

returns

the given reference to `result`.

15. #### def derivative(p0: Point2, p1: Point2, p2: Point2, p3: Point3, t: Double, result: Point2): Point2

Store in `result` the derivative point of a cubic Bézier curve according to control points `x0`, `x1`, `x2` and `x3` at parametric position `t` of the curve.

Store in `result` the derivative point of a cubic Bézier curve according to control points `x0`, `x1`, `x2` and `x3` at parametric position `t` of the curve.

returns

the given reference to `result`.

16. #### def derivative(p0: Point3, p1: Point3, p2: Point3, p3: Point3, t: Double): Point3

Derivative point of a cubic Bézier curve according to control points `x0`, `x1`, `x2` and `x3` at parametric position `t` of the curve.

Derivative point of a cubic Bézier curve according to control points `x0`, `x1`, `x2` and `x3` at parametric position `t` of the curve.

returns

The derivative point at parametric position `t` on the curve.

17. #### def derivative(p0: Point2, p1: Point2, p2: Point2, p3: Point2, t: Double): Point2

Derivative point of a cubic Bézier curve according to control points `x0`, `x1`, `x2` and `x3` at parametric position `t` of the curve.

Derivative point of a cubic Bézier curve according to control points `x0`, `x1`, `x2` and `x3` at parametric position `t` of the curve.

returns

The derivative point at parametric position `t` on the curve.

18. #### def derivative(x0: Double, x1: Double, x2: Double, x3: Double, t: Double): Double

Derivative of a cubic Bézier curve according to control points `x0`, `x1`, `x2` and `x3` at parametric position `t` of the curve.

Derivative of a cubic Bézier curve according to control points `x0`, `x1`, `x2` and `x3` at parametric position `t` of the curve.

returns

The derivative at parametric position `t` on the curve.

19. #### final def eq(arg0: AnyRef): Boolean

Definition Classes
AnyRef
20. #### def equals(arg0: Any): Boolean

Definition Classes
AnyRef → Any
21. #### def eval(p0: Point3, p1: Point3, p2: Point3, p3: Point3, t: Double, result: Point3): Point3

Evaluate a cubic Bézier curve according to control points `p0`, `p1`, `p2` and `p3` and store the position at parametric position `t` of the curve in `result`.

Evaluate a cubic Bézier curve according to control points `p0`, `p1`, `p2` and `p3` and store the position at parametric position `t` of the curve in `result`.

returns

the given reference to `result`.

22. #### def eval(p0: Point2, p1: Point2, p2: Point2, p3: Point2, t: Double, result: Point2): Point2

Evaluate a cubic Bézier curve according to control points `p0`, `p1`, `p2` and `p3` and store the position at parametric position `t` of the curve in `result`.

Evaluate a cubic Bézier curve according to control points `p0`, `p1`, `p2` and `p3` and store the position at parametric position `t` of the curve in `result`.

returns

the given reference to `result`.

23. #### def eval(p0: Double, p1: Double, p2: Double, p3: Double, t: Double): Double

Evaluate a cubic Bézier curve according to control points `p0`, `p1`, `p2` and `p3` and return the position at parametric position `t` of the curve.

Evaluate a cubic Bézier curve according to control points `p0`, `p1`, `p2` and `p3` and return the position at parametric position `t` of the curve.

returns

The point at parametric position `t` on the curve.

24. #### def eval(p0: Point3, p1: Point3, p2: Point3, p3: Point3, t: Double): Point3

Evaluate a cubic Bézier curve according to control points `p0`, `p1`, `p2` and `p3` and return the position at parametric position `t` of the curve.

Evaluate a cubic Bézier curve according to control points `p0`, `p1`, `p2` and `p3` and return the position at parametric position `t` of the curve.

returns

The point at parametric position `t` on the curve.

25. #### def eval(p0: Point2, p1: Point2, p2: Point2, p3: Point2, t: Double): Point2

Evaluate a cubic Bézier curve according to control points `p0`, `p1`, `p2` and `p3` and return the position at parametric position `t` of the curve.

Evaluate a cubic Bézier curve according to control points `p0`, `p1`, `p2` and `p3` and return the position at parametric position `t` of the curve.

returns

The point at parametric position `t` on the curve.

26. #### def eval(x0: Double, x1: Double, x2: Double, x3: Double, t: Double): Double

Evaluate a cubic Bézier curve according to control points `x0`, `x1`, `x2` and `x3` and return the position at parametric position `t` of the curve.

Evaluate a cubic Bézier curve according to control points `x0`, `x1`, `x2` and `x3` and return the position at parametric position `t` of the curve.

returns

The coordinate at parametric position `t` on the curve.

27. #### def finalize(): Unit

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws()
28. #### final def getClass(): Class[_]

Definition Classes
AnyRef → Any
29. #### def hashCode(): Int

Definition Classes
AnyRef → Any
30. #### final def isInstanceOf[T0]: Boolean

Definition Classes
Any

32. #### final def ne(arg0: AnyRef): Boolean

Definition Classes
AnyRef
33. #### final def notify(): Unit

Definition Classes
AnyRef
34. #### final def notifyAll(): Unit

Definition Classes
AnyRef
35. #### def perpendicular(p0: Double, p1: Double, p2: Double, p3: Double, t: Double): Double

The perpendicular vector to the curve defined by control points `p0`, `p1`, `p2` and `p3` at parametric position `t`.

The perpendicular vector to the curve defined by control points `p0`, `p1`, `p2` and `p3` at parametric position `t`.

returns

A vector perpendicular to the curve at position `t`.

36. #### def perpendicular(p0: Point2, p1: Point2, p2: Point2, p3: Point2, t: Double, result: Vector2): Vector2

Store in `result` the perpendicular vector to the curve defined by control points `p0`, `p1`, `p2` and `p3` at parametric position `t`.

Store in `result` the perpendicular vector to the curve defined by control points `p0`, `p1`, `p2` and `p3` at parametric position `t`.

returns

the given reference to `result`.

37. #### def perpendicular(p0: Point2, p1: Point2, p2: Point2, p3: Point2, t: Double): Vector2

The perpendicular vector to the curve defined by control points `p0`, `p1`, `p2` and `p3` at parametric position `t`.

The perpendicular vector to the curve defined by control points `p0`, `p1`, `p2` and `p3` at parametric position `t`.

returns

A vector perpendicular to the curve at position `t`.

38. #### final def synchronized[T0](arg0: ⇒ T0): T0

Definition Classes
AnyRef
39. #### def toString(): String

Definition Classes
AnyRef → Any
40. #### final def wait(): Unit

Definition Classes
AnyRef
Annotations
@throws()
41. #### final def wait(arg0: Long, arg1: Int): Unit

Definition Classes
AnyRef
Annotations
@throws()
42. #### final def wait(arg0: Long): Unit

Definition Classes
AnyRef
Annotations
@throws()