# HyperSpline

Artifact: [androidx.constraintlayout:constraintlayout-core](https://developer.android.com/jetpack/androidx/releases/constraintlayout) [View Source](https://cs.android.com/search?q=file:androidx/constraintlayout/core/motion/utils/HyperSpline.java+class:androidx.constraintlayout.core.motion.utils.HyperSpline) Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

*** ** * ** ***

<br />

```
class HyperSpline
```

<br />

*** ** * ** ***

Provides spline interpolation code. Currently not used but it is anticipated that we will be using it in the KeyMotion

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/HyperSpline.Cubic` |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/HyperSpline#HyperSpline()()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/HyperSpline#HyperSpline(double[][])(points: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html>!>!)` Spline in N dimensions |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/HyperSpline#approxLength(androidx.constraintlayout.core.motion.utils.HyperSpline.Cubic[])(curve: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/HyperSpline.Cubic!>!)` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/HyperSpline#getPos(double,int)(p: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html, splineNumber: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/HyperSpline#getPos(double,double[])(p: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html, x: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html>!)` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/HyperSpline#getPos(double,float[])(p: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html, x: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html>!)` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/HyperSpline#getVelocity(double,double[])(p: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html, v: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html>!)` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/HyperSpline#setup(double[][])(points: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html>!>!)` |

## Public constructors

### HyperSpline

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
HyperSpline()
```

### HyperSpline

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
HyperSpline(points: Array<DoubleArray<Double>!>!)
```

Spline in N dimensions

| Parameters |
|---|---|
| `points: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html>!>!` | \[mPoints\]\[dimensionality\] |

## Public functions

### approxLength

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun approxLength(curve: Array<HyperSpline.Cubic!>!): Double
```

### getPos

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun getPos(p: Double, splineNumber: Int): Double
```

### getPos

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun getPos(p: Double, x: DoubleArray<Double>!): Unit
```

### getPos

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun getPos(p: Double, x: FloatArray<Float>!): Unit
```

### getVelocity

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun getVelocity(p: Double, v: DoubleArray<Double>!): Unit
```

### setup

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun setup(points: Array<DoubleArray<Double>!>!): Unit
```