[page:Curve] →

# [name]

An abstract base class further extending [page:Curve]. A CurvePath is simply an array of connected curves, but retains the api of a curve.

## Constructor

### [name]()

The constructor take no parameters.

## Properties

### [property:array curves]

The array of [page:Curve]s

### [property:array bends]

An array of [page:Curve]s used to transform and bend the curve using [page:CurvePath.getWrapPoints].

### [property:boolean autoClose]

Whether or not to automatically close the path.

## Methods

### [method:Array getWrapPoints]( [page:Array vertices], [page:Curve curve] )

vertices -- An array of [page:Vector2]s to modify
curve -- An array of 2d [page:Curve]s
Modifies the array of vertices by warping it by the curve. The curve parameter also accepts objects with similar interfaces such as [page:CurvePath], [page:Path], [page:SplineCurve], etc. Returns the original vertices after modification.

### [method:null addWrapPath]( [page:Curve curve] )

curve -- A [page:Curve] or object with a similar interface.
Pushes a curve onto the bends array.

### [method:Geometry createGeometry]( [page:Vector3 points] )

points -- An array of [page:Vector3]s
Creates a geometry from points

### [method:Geometry createPointsGeometry]( [page:Integer divisions] )

divisions -- How many segments to create with [page:Vector3]s. Defaults to 12.
Creates a [page:Geometry] object comprised of [page:Vector3]s

### [method:Geometry createSpacedPointsGeometry]( [page:Integer divisions] )

divisions -- How many segments to create with [page:Vector3]s. Defaults to 12.
Creates a [page:Geometry] object comprised of [page:Vector3]s that are equidistant.

### [method:null add]( [page:Curve curve] )

curve -- The [page:Curve curve] to add
Pushes a curve onto the curves array.

### [method:null closePath]()

Adds a curve to close the path.

### [method:Object getBoundingBox]()

Returns an object with the keys minX, minY, maxX, maxY, (if 3d: maxZ, minZ)

### [method:Float getCurveLengths]()

Adds together the length of the curves

### [method:Array getTransformedPoints]( [page:Integer segments], [page:Array bends] )

segments -- The number of segments to create using the getPoints()
bends -- (optional) An array of [page:Curve]s used to transform the points. Defaults to this.bends if blank.
Uses this CurvePath to generate a series of points transformed by the curves in the bends array. Returns an array of [page:Vector2]s.

### [method:Array getTransformedSpacedPoints]( [page:Integer segments], [page:Array bends] )

segments -- The number of segments to create using the getPoints()
bends -- (optional) Defaults to this.bends if blank. An array of [page:Curve]s used to transform the points.
Uses this CurvePath to generate a series equidistant points that are then transformed by the curves in the bends. Returns an array of [page:Vector2]s.

## Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]