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 );
Constructors
-
Path([List<
Vector2> ? points]) -
points
-- (optional) array ofVector2
. -
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
orExtrudeGeometry
.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 range0, 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 range0, 1
.inherited -
getTangentAt(
double u, [Vector? optionalTarget]) → Vector -
u
- A position on the curve according to the arc length. Must be in the range0, 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 ofVector2
. -
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