29 #ifndef BSPLINE_DATA_INCLUDED
30 #define BSPLINE_DATA_INCLUDED
33 #include "ppolynomial.h"
41 template<
int Degree ,
class Real >
78 virtual void setValueTables(
int flags,
double valueSmooth,
double normalSmooth);
81 void setSampleSpan(
int idx ,
int& start ,
int& end ,
double smooth=0 )
const;
92 void set(
int maxDepth ,
bool useDotRatios=
true ,
bool reflectBoundary=
false );
94 inline int Index(
int i1 ,
int i2 )
const;
99 template<
int Degree >
107 template<
int Degree >
110 static const int _off = (Degree+1)/2;
111 void _addLeft (
int offset ,
int boundary );
112 void _addRight(
int offset ,
int boundary );
131 for(
int i=0 ; i<this->size() ; i++ )
134 for(
int j=0 ; j<=Degree ; j++ ) printf(
" %d" , (*
this)[i][j] );
146 #include "bspline_data.hpp"
148 #endif // BSPLINE_DATA_INCLUDED
virtual void clearDotTables(int flags)
BSplineComponents rightBSpline
PPolynomial< Degree-1 > dRightBaseFunction
static int SymmetricIndex(int i1, int i2)
Polynomial< Degree > polys[Degree+1]
Polynomial< Degree > & operator[](int idx)
PPolynomial< Degree > * baseFunctions
virtual void clearValueTables(void)
PPolynomial< Degree-1 > dLeftBaseFunction
void _addLeft(int offset, int boundary)
virtual void setDotTables(int flags)
void upSample(BSplineElements &high) const
void differentiate(BSplineElements< Degree-1 > &d) const
int & operator[](int idx)
PPolynomial< Degree > leftBaseFunction
void _addRight(int offset, int boundary)
BSplineComponents shift(double s) const
PPolynomial< Degree > rightBaseFunction
int Index(int i1, int i2) const
static const int DD_DOT_FLAG
static const int VALUE_FLAG
void print(FILE *fp=stdout) const
void set(int maxDepth, bool useDotRatios=true, bool reflectBoundary=false)
PPolynomial< Degree-1 > dBaseFunction
static const int VV_DOT_FLAG
const int & operator[](int idx) const
void setSampleSpan(int idx, int &start, int &end, double smooth=0) const
BSplineElementCoefficients(void)
BSplineComponents baseBSpline
BSplineComponents scale(double s) const
void SetBSplineElementIntegrals(double integrals[Degree1+1][Degree2+1])
virtual void setValueTables(int flags, double smooth=0)
BSplineComponents * baseBSplines
static const int D_VALUE_FLAG
static const int DV_DOT_FLAG
PPolynomial< Degree > baseFunction
BSplineComponents leftBSpline