Properties
.arcLengthDivisions : number
This value determines the amount of divisions when calculating the cumulative segment lengths of a curve via Curve#getLengths. To ensure precision when using methods like Curve#getSpacedPoints, it is recommended to increase the value of this property if the curve is very large.
Default is 200.
.needsUpdate : boolean
Must be set to true if the curve parameters have changed.
Default is false.
.type : string (readonly)
The type property is used for detecting the object type in context of serialization/deserialization.
Methods
.clone() : Curve
Returns a new curve with copied values from this instance.
- Returns: A clone of this instance.
.computeFrenetFrames( segments : number, closed : boolean ) : Object
Generates the Frenet Frames. Requires a curve definition in 3D space. Used in geometries like TubeGeometry or ExtrudeGeometry.
| segments |
The number of segments. |
| closed |
Whether the curve is closed or not. Default is |
- Returns: The Frenet Frames.
.copy( source : Curve ) : Curve
Copies the values of the given curve to this instance.
| source |
The curve to copy. |
- Returns: A reference to this curve.
.fromJSON( json : Object ) : Curve
Deserializes the curve from the given JSON.
| json |
The JSON holding the serialized curve. |
- Returns: A reference to this curve.
.getLength() : number
Returns the total arc length of the curve.
- Returns: The length of the curve.
.getLengths( divisions : number ) : Array.<number>
Returns an array of cumulative segment lengths of the curve.
| divisions |
The number of divisions. Default is |
- Returns: An array holding the cumulative segment lengths.
.getPoint( t : number, optionalTarget : Vector2 | Vector3 ) : Vector2 | Vector3 (abstract)
This method returns a vector in 2D or 3D space (depending on the curve definition) for the given interpolation factor.
| t |
A interpolation factor representing a position on the curve. Must be in the range |
| optionalTarget |
The optional target vector the result is written to. |
- Returns: The position on the curve. It can be a 2D or 3D vector depending on the curve definition.
.getPointAt( u : number, optionalTarget : Vector2 | Vector3 ) : Vector2 | Vector3
This method returns a vector in 2D or 3D space (depending on the curve definition) for the given interpolation factor. Unlike Curve#getPoint, this method honors the length of the curve which equidistant samples.
| u |
A interpolation factor representing a position on the curve. Must be in the range |
| optionalTarget |
The optional target vector the result is written to. |
- Returns: The position on the curve. It can be a 2D or 3D vector depending on the curve definition.
.getPoints( divisions : number ) : Array.<(Vector2|Vector3)>
This method samples the curve via Curve#getPoint and returns an array of points representing the curve shape.
| divisions |
The number of divisions. Default is |
- Returns: An array holding the sampled curve values. The number of points is
divisions + 1.
.getSpacedPoints( divisions : number ) : Array.<(Vector2|Vector3)>
This method samples the curve via Curve#getPointAt and returns an array of points representing the curve shape. Unlike Curve#getPoints, this method returns equi-spaced points across the entire curve.
| divisions |
The number of divisions. Default is |
- Returns: An array holding the sampled curve values. The number of points is
divisions + 1.
.getTangent( t : number, optionalTarget : Vector2 | Vector3 ) : Vector2 | Vector3
Returns a unit vector tangent for the given interpolation factor. If the derived curve does not implement its tangent derivation, two points a small delta apart will be used to find its gradient which seems to give a reasonable approximation.
| t |
The interpolation factor. |
| optionalTarget |
The optional target vector the result is written to. |
- Returns: The tangent vector.
.getTangentAt( u : number, optionalTarget : Vector2 | Vector3 ) : Vector2 | Vector3
Same as Curve#getTangent but with equidistant samples.
| u |
The interpolation factor. |
| optionalTarget |
The optional target vector the result is written to. |
- See:
- Returns: The tangent vector.
.getUtoTmapping( u : number, distance : number ) : number
Given an interpolation factor in the range [0,1], this method returns an updated
interpolation factor in the same range that can be ued to sample equidistant points
from a curve.
| u |
The interpolation factor. |
| distance |
An optional distance on the curve. Default is |
- Returns: The updated interpolation factor.
.toJSON() : Object
Serializes the curve into JSON.
- See:
- Returns: A JSON object representing the serialized curve.
.updateArcLengths()
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, this method must be called on the composed curve, too.