This crate supports the following types of splines: * B-spline * Bezier * Catmull-Rom * Hermite * Linear * Power
If you come from a background of shading languages used in offline rendering this crate should feel like home.
The code is a Rust port of the resp. implementation found in the Open Shading Language C++ source.
Using a combination of spline()
and spline_inverse()
it is
possible to compute a full spline-with-nonuniform-abscissæ:
```rust
use uniformcubicsplines::{
spline, spline_inverse, basis::CatmullRom
};
// We want to evaluate the spline at knot value 0.3. let x = 0.3;
// The first and last points are never interpolated. let knots = [0.0, 0.0, 0.1, 0.3, 1.0, 1.0]; let values = [0.0, 0.0, 1.3, 4.2, 3.2, 3.2];
let v = spline_inverse::
assert!(y - 4.2 < 1e-6); ```