geomc 1.0
A c++ linear algebra template library
Loading...
Searching...
No Matches
HermiteSpline< T, N > Class Template Reference

A cubic spline defined by two points and two velocities. More...

#include <geomc/shape/CubicSpline.h>

Inheritance diagram for HermiteSpline< T, N >:
CubicSpline< T, N, HermiteSpline< T, N > > Dimensional< T, N >

Public Types

using elem_t
 The coordinate type of this object.
 
using point_t
 The type of a point in this object's space.
 

Public Member Functions

constexpr HermiteSpline (const VecType< T, N > pts[4])
 Construct the spline from an array of control points.
 
constexpr HermiteSpline (VecType< T, N > p0, VecType< T, N > v0, VecType< T, N > p1, VecType< T, N > v1)
 Construct the spline from four control points.
 
constexpr Vec< T, Nacceleration (T s) const
 Compute the second derivative (acceleration) of the spline at a given parameter value.
 
constexpr Rect< T, Nbounds () const
 Compute the bounding box of the spline.
 
constexpr VecType< T, N > * control_points ()
 
constexpr const VecType< T, N > * control_points () const
 
constexpr operator PolynomialSpline< T, N > () const
 Convert this spline to its coefficient representation.
 
constexpr operator Spline () const
 Convert to another type of cubic spline.
 
constexpr Vec< T, Noperator() (T s) const
 Evaluate the spline at a given parameter value.
 
constexpr Vec< T, Nvelocity (T s) const
 Compute the derivative (velocity) of the spline at a given parameter value.
 

Static Public Member Functions

static constexpr SimpleMatrix< T, 4, 4 > basis ()
 
static constexpr SimpleMatrix< T, 4, 4 > inverse_basis ()
 

Public Attributes

VecType< T, Np0
 Position at s = 0.
 
VecType< T, Np1
 Position at s = 1.
 
VecType< T, Nv0
 Velocity at s = 0.
 
VecType< T, Nv1
 Velocity at s = 1.
 

Static Public Attributes

static constexpr SimpleMatrix< T, 4, 4 > CoefficientsToControl
 
static constexpr SimpleMatrix< T, 4, 4 > ControlToCoefficients
 
static constexpr index_t N
 The dimension of this object.
 

Related Symbols

(Note that these are not member symbols.)

template<typename T, index_t N, Transform< T, N > Xf>
HermiteSpline< T, Noperator* (const Xf &xf, const HermiteSpline< T, N > &spline)
 
template<typename T, index_t N, Transform< T, N > Xf>
HermiteSpline< T, Noperator/ (const HermiteSpline< T, N > &spline, const Xf &xf)
 

Detailed Description

template<typename T, index_t N>
class geom::HermiteSpline< T, N >

A cubic spline defined by two points and two velocities.

Member Typedef Documentation

◆ point_t

using point_t
inherited

The type of a point in this object's space.

An N-vector of T if N > 1, otherwise a T.

Member Data Documentation

◆ CoefficientsToControl

template<typename T, index_t N>
SimpleMatrix<T,4,4> CoefficientsToControl
staticconstexpr
Initial value:
= {
{-2, -1, -1, -1},
{-1, -2, -1, -1},
{ 2, 1, -4, 0},
{-3, -2, 1, -2},
}

◆ ControlToCoefficients

template<typename T, index_t N>
SimpleMatrix<T,4,4> ControlToCoefficients
staticconstexpr
Initial value:
= {
{ 1, 0, 0, 0},
{ 0, 1, 0, 0},
{-3, -2, 3, -1},
{ 2, 1, -2, 1},
}

The documentation for this class was generated from the following file: