Path class

A 2D path representation. The class provides methods for creating paths and contours of 2D shapes similar to the 2D Canvas API.

final path = Path();

path.lineTo( 0, 0.8 );
path.quadraticCurveTo( 0, 1, 0.2, 1 );
path.lineTo( 1, 1 );

final points = path.getPoints();

final geometry = BufferGeometry().setFromPoints( points );
final material = LineBasicMaterial( { color: 0xffffff } );

final line = Line( geometry, material );
scene.add( line );
Inheritance
Implementers

Constructors

Path([List<Vector2>? points])
points -- (optional) array of Vector2.
Path.fromJson(Map<String, dynamic> json)

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
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

Methods

absarc(double aX, double aY, double aRadius, double aStartAngle, double aEndAngle, [bool? aClockwise]) Path
aX, aY -- The absolute center of the arc.
absellipse(double aX, double aY, double xRadius, double yRadius, double aStartAngle, double aEndAngle, [bool? aClockwise, double? aRotation]) Path
aX, aY -- The absolute center of the ellipse.
add(Curve curve) → void
inherited
arc(double aX, double aY, double aRadius, double aStartAngle, double aEndAngle, [bool? aClockwise]) Path
aX, aY -- The center of the arc offset from the last call.
bezierCurveTo(double aCP1x, double aCP1y, double aCP2x, double aCP2y, double aX, double aY) Path
This creates a bezier curve from currentPoint with (cp1X, cp1Y) and (cp2X, cp2Y) as control points and updates currentPoint to x and y.
clone() Curve
Creates a clone of this instance.
inherited
closePath() → void
Adds a lineCurve to close the path.
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) Path
Copies another name object to this instance.
override
ellipse(double aX, double aY, double xRadius, double yRadius, double aStartAngle, double aEndAngle, [bool? aClockwise, double? aRotation]) Path
aX, aY -- The center of the ellipse offset from the last call.
fromJson(Map<String, dynamic> json) Path
Copies the data from the given JSON object to this instance.
override
getCurveLengths() List<double>
inherited
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?
inherited
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 = 12]) List<Vector?>
divisions -- number of pieces to divide the curve into. Default is 12.
inherited
getSpacedPoints([num divisions = 40, num offset = 0.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
lineTo(double x, double y) Path
Connects a LineCurve from currentPoint to x, y onto the path.
moveTo(double x, double y) Path
Move the currentPoint to x, y.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
quadraticCurveTo(double aCPx, double aCPy, double aX, double aY) Path
Creates a quadratic curve from currentPoint with cpX and cpY as control point and updates currentPoint to x and y.
setFromPoints(List<Vector2> points) Path
points -- array of Vector2.
splineThru(List<Vector2> pts) Path
points - An array of Vector2
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