CubicBezierCurve3 class

Create a smooth 3d cubic bezier curve, defined by a start point, endpoint and two control points.

final curve = CubicBezierCurve(
  Vector3( -10, 0, 0 ),
  Vector3( -5, 15, 0 ),
  Vector3( 20, 15, 0 ),
  Vector3( 10, 0, 0 )
);

final points = curve.getPoints( 50 );
final geometry = BufferGeometry().setFromPoints( points );

final material = LineBasicMaterial.fromMap( { 'color': 0xff0000 } );

// Create the final object to add to the scene
final curveObject = Line( geometry, material );
Inheritance

Constructors

CubicBezierCurve3([Vector3? v0, Vector3? v1, Vector3? v2, Vector3? v3])
v0 – The starting point.

Properties

arcLengthDivisions int
This value determines the amount of divisions when calculating the cumulative segment lengths of a curve via getLengths. To ensure precision when using methods like getSpacedPoints, it is recommended to increase arcLengthDivisions if the curve is very large. Default is 200.
getter/setter pairinherited
autoClose bool
getter/setter pairinherited
cacheArcLengths List<double>?
getter/setter pairinherited
cacheLengths List<double>?
getter/setter pairinherited
currentPoint ↔ Vector2
getter/setter pairinherited
curves List<Curve>
getter/setter pairinherited
hashCode int
The hash code for this object.
no setterinherited
isCubicBezierCurve bool
getter/setter pairinherited
isCubicBezierCurve3 bool
getter/setter pair
isEllipseCurve bool
getter/setter pairinherited
isLineCurve bool
getter/setter pairinherited
isLineCurve3 bool
getter/setter pairinherited
isQuadraticBezierCurve bool
getter/setter pairinherited
isSplineCurve bool
getter/setter pairinherited
needsUpdate bool
getter/setter pairinherited
points List<Vector>
getter/setter pairinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
userData Map<String, dynamic>
getter/setter pairinherited
v0 ↔ Vector
getter/setter pairinherited
v1 ↔ Vector
getter/setter pairinherited
v2 ↔ Vector
getter/setter pairinherited
v3 ↔ Vector3
getter/setter pair

Methods

clone() Curve
Creates a clone of this instance.
inherited
computeFrenetFrames(int segments, bool closed) FrenetFrames
Generates the Frenet Frames. Requires a curve definition in 3D space. Used in geometries like TubeGeometry or ExtrudeGeometry.
inherited
copy(Curve source) CubicBezierCurve3
Copies another name object to this instance.
override
fromJson(Map<String, dynamic> json) CubicBezierCurve3
Copies the data from the given JSON object to this instance.
override
getLength() double
Get total curve arc length
inherited
getLengths(int? divisions) List<double>
Get list of cumulative segment lengths
inherited
getPoint(double t, [Vector? optionalTarget]) → Vector?
override
getPointAt(double u, [Vector? optionalTarget]) → Vector?
u - A position on the curve according to the arc length. Must be in the range 0, 1 .
inherited
getPoints([int divisions = 5]) List<Vector?>
divisions -- number of pieces to divide the curve into. Default is 5.
inherited
getSpacedPoints([int divisions = 5, int offset = 0]) List<Vector?>
divisions -- number of pieces to divide the curve into. Default is 5.
inherited
getTangent(double t, [Vector? optionalTarget]) → Vector
t - A position on the curve. Must be in the range 0, 1 .
inherited
getTangentAt(double u, [Vector? optionalTarget]) → Vector
u - A position on the curve according to the arc length. Must be in the range 0, 1 .
inherited
getUtoTmapping(double u, [double? distance]) double
Given u in the range ( 0 .. 1 ), returns t also in the range ( 0 .. 1 ). u and t can then be used to give you points which are equidistant from the ends of the curve, using getPoint.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() Map<String, dynamic>
Returns a JSON object representation of this instance.
override
toString() String
A string representation of this object.
inherited
updateArcLengths() → void
Update the cumulative segment distance cache. The method must be called every time curve parameters are changed. If an updated curve is part of a composed curve like CurvePath, updateArcLengths must be called on the composed curve, too.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited