Class xlifepp::Spline#

class Spline#

abstract Spline class type_, subtype_: C2Spline,_CatmullRomSpline, _BSpline, BezierSpline, Nurbs and _SplineInterpolation, _SplineApproximation degree: degree of polynoms used by spline (called spline degree) controlPoints, knots: internal arrays common to any splines but handling different stuff splinePar_: type of spline parametrization (change the derivatives but not the tangent) yps_, ype_: tangent vector at end points (required by some boundary conditions) (1D) bces_, bce_: boundary condition at start point and end point parameterBounds_: real bounds (a,b) of spline parametrization: parametrization are always set on [0,1] but the spline parametrization functions does the mapping s = a + (b-a)t

Subclassed by xlifepp::BSpline, xlifepp::BezierSpline, xlifepp::C2Spline, xlifepp::CatmullRomSpline, xlifepp::Nurbs

Public Functions

Spline(const Spline&)#

copy constructor

copy constructor (deep copy)

virtual std::vector<Point> boundNodes() const#

return bound nodes

inline virtual C2Spline *c2Spline()#

downcast to child

void checkBC(SplineBC defBC)#

boundary conditions of spline

check boundary condition bcs_, bcse with the following rules bcs_= undef -> bcs_=defBC bcs_!= undef & bce_= undef -> bce_=bcs_ bcs_= periodic | bce_= periodic -> bce_=bcs_=periodic

virtual Spline *clone() const = 0#

virtual copy like constructor

virtual Vector<Point> evaluate(const std::vector<real_t> &ts, DiffOpType d = _id) const#

evaluate spline or its derivative at a list of x

inline virtual Point evaluate(real_t t, DiffOpType d = _id) const#

< evaluate spline or its derivative at x

virtual std::multimap<real_t, number_t>::const_iterator locate(real_t t) const#

locate parameter interval

virtual RealPair parameterBounds() const#

return parameter bounds

return parameter bounds same as knot bounds!

virtual void print(std::ostream&, bool nocpt = false) const#

print utility

Public Members

Parametrization *parametrization_#

pointer to parametrization if not 0