- data BSpline v
- bSpline :: Knots (Scalar a) -> [a] -> BSpline a
- evalBSpline :: (Fractional (Scalar v), Ord (Scalar v), VectorSpace v) => BSpline v -> Scalar v -> v
- insertKnot :: (VectorSpace a, Ord (Scalar a), Fractional (Scalar a)) => BSpline a -> Scalar a -> BSpline a
- splitBSpline :: (VectorSpace v, Ord (Scalar v), Fractional (Scalar v)) => BSpline v -> Scalar v -> Maybe (BSpline v, BSpline v)
- differentiateBSpline :: (VectorSpace v, Fractional (Scalar v), Ord (Scalar v)) => BSpline v -> BSpline v
- integrateBSpline :: (VectorSpace v, Fractional (Scalar v), Ord (Scalar v)) => BSpline v -> BSpline v

# Documentation

bSpline :: Knots (Scalar a) -> [a] -> BSpline aSource

`bSpline kts cps`

creates a B-spline with the given knot vector and control
points. The degree is automatically inferred as the difference between the
number of spans in the knot vector (`numKnots kts - 1`

) and the number of
control points (`length cps`

).

evalBSpline :: (Fractional (Scalar v), Ord (Scalar v), VectorSpace v) => BSpline v -> Scalar v -> vSource

insertKnot :: (VectorSpace a, Ord (Scalar a), Fractional (Scalar a)) => BSpline a -> Scalar a -> BSpline aSource

Insert one knot into a `BSpline`

splitBSpline :: (VectorSpace v, Ord (Scalar v), Fractional (Scalar v)) => BSpline v -> Scalar v -> Maybe (BSpline v, BSpline v)Source

differentiateBSpline :: (VectorSpace v, Fractional (Scalar v), Ord (Scalar v)) => BSpline v -> BSpline vSource

integrateBSpline :: (VectorSpace v, Fractional (Scalar v), Ord (Scalar v)) => BSpline v -> BSpline vSource