# Spline

#### new Cesium.Spline()
engine/Source/Core/Spline.js 21

Creates a curve parameterized and evaluated by time. This type describes an interface and is not intended to be instantiated directly.

##### See:

- CatmullRomSpline
- LinearSpline
- HermiteSpline
- QuaternionSpline
- MorphWeightSpline

### Members

#### points : Array.<Cartesian3>|Array.<Quaternion>
engine/Source/Core/Spline.js 34

An array of control points.

Default Value: `undefined`

#### times : Array.<number>
engine/Source/Core/Spline.js 27

An array of times for the control points.

Default Value: `undefined`

### Methods

#### clampTime(time) → number
engine/Source/Core/Spline.js 180

Clamps the given time to the period covered by the spline.

Name | Type | Description
--- | --- | ---
`time` | number | The time.

##### Returns:

The time, clamped to the animation period.

#### evaluate(time, result) → Cartesian3|Quaternion|Array.<number>
engine/Source/Core/Spline.js 80

Evaluates the curve at a given time.

Name | Type | Description
--- | --- | ---
`time` | number | The time at which to evaluate the curve.
`result` | Cartesian3 | Quaternion | Array.<number> | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new instance of the point on the curve at the given time.

##### Throws:

- DeveloperError : time must be in the range `[t0, tn]`, where `t0` is the first element in the array `times` and `tn` is the last element in the array `times`.

#### findTimeInterval(time, startIndex) → number
engine/Source/Core/Spline.js 94

Finds an index `i` in `times` such that the parameter `time` is in the interval `[times[i], times[i + 1]]`.

Name | Type | Description
--- | --- | ---
`time` | number | The time.
`startIndex` | number | The index from which to start the search.

##### Returns:

The index for the element at the start of the interval.

##### Throws:

- DeveloperError : time must be in the range `[t0, tn]`, where `t0` is the first element in the array `times` and `tn` is the last element in the array `times`.

#### wrapTime(time) → number
engine/Source/Core/Spline.js 152

Wraps the given time to the period covered by the spline.

Name | Type | Description
--- | --- | ---
`time` | number | The time.

##### Returns:

The time, wrapped around the animation period.

Need help? The fastest way to get answers is from the community and team on the Cesium Forum.