# [−][src]Module splines::interpolate

The `Interpolate`

trait and associated symbols.

The `Interpolate`

trait is the central concept of the crate. It enables a spline to be
sampled at by interpolating in between control points.

In order for a type to be used in `Spline<K, V>`

, some properties must be met about the `K`

type must implementing several traits:

`One`

, giving a neutral element for the multiplication monoid.`Additive`

, making the type additive (i.e. one can add or subtract with it).`Linear`

, unlocking linear combinations, required for interpolating.`Trigo`

, a trait giving*π*and*cosine*, required for e.g. cosine interpolation.

Feel free to have a look at current implementors for further help.

Why doesn’t this crate use num-traits instead of defining its own traits?

The reason for this is quite simple: this crate provides a `no_std`

support, which is not
currently available easily with num-traits. Also, if something changes in num-traits with
those traits, it would make this whole crate unstable.

## Traits

Additive | Set of types that support additions and subtraction. |

Interpolate | Keys that can be interpolated in between. Implementing this trait is required to perform sampling on splines. |

Linear | Set of additive types that support outer multiplication and division, making them linear. |

One | Types with a neutral element for multiplication. |

Trigo | Types with a sane definition of π and cosine. |

## Functions

cubic_bezier_def | Default implementation of |

cubic_hermite_def | Default implementation of |

quadratic_bezier_def | Default implementation of |