Reen::SplineBasisfunction Class Referenceabstract

#include <ApproxSurface.h>

Public Types

enum  ValueT { Zero = 0 , Full , Other }
 

Public Member Functions

virtual double BasisFunction (int iIndex, double fParam)=0
 Calculates the function value Nik(t) at the point fParam (from: Piegl/Tiller 96 The NURBS-Book) More...
 
virtual double DerivativeOfBasisFunction (int iIndex, int k, double fParam)=0
 Calculates the kth derivative at the point fParam. More...
 
virtual void DerivativesOfBasisFunction (int iIndex, int iMaxDer, double fParam, TColStd_Array1OfReal &Derivat)=0
 Calculates the function values of the first iMaxDer derivatives on the fParam position (from: Piegl/Tiller 96 The NURBS-Book) More...
 
virtual ValueT LocalSupport (int iIndex, double fParam)=0
 Indicates whether the function value Nik(t) at the point fParam results in 0, 1 or a value in between. More...
 
virtual void SetKnots (TColStd_Array1OfReal &vKnots, int iOrder=1)
 Sets the knot vector and the order. More...
 
virtual void SetKnots (TColStd_Array1OfReal &vKnots, TColStd_Array1OfInteger &vMults, int iOrder=1)
 Sets the knot vector and the order. More...
 
 SplineBasisfunction (int iSize)
 Constructor. More...
 
 SplineBasisfunction (TColStd_Array1OfReal &vKnots, int iOrder=1)
 Constructor. More...
 
 SplineBasisfunction (TColStd_Array1OfReal &vKnots, TColStd_Array1OfInteger &vMults, int iSize, int iOrder=1)
 Constructor. More...
 
virtual ~SplineBasisfunction ()
 

Member Enumeration Documentation

◆ ValueT

Enumerator
Zero 
Full 
Other 

Constructor & Destructor Documentation

◆ SplineBasisfunction() [1/3]

SplineBasisfunction::SplineBasisfunction ( int  iSize)

Constructor.

Parameters
iSizeLength of Knots vector

◆ SplineBasisfunction() [2/3]

SplineBasisfunction::SplineBasisfunction ( TColStd_Array1OfReal &  vKnots,
int  iOrder = 1 
)

Constructor.

Parameters
vKnotsKnot vector
iOrderOrder (degree + 1) of the basic polynomial

◆ SplineBasisfunction() [3/3]

SplineBasisfunction::SplineBasisfunction ( TColStd_Array1OfReal &  vKnots,
TColStd_Array1OfInteger &  vMults,
int  iSize,
int  iOrder = 1 
)

Constructor.

Parameters
vKnotsKnot vector of shape (value)
vMultsKnot vector of shape (multiplicity)
iSizeLength of the knot vector The arrays vKnots and vMults have to be of the same size and the sum of the values in vMults has to be identical to iSize.
iOrderOrder (degree + 1) of the basic polynomial

◆ ~SplineBasisfunction()

SplineBasisfunction::~SplineBasisfunction ( )
virtual

Member Function Documentation

◆ BasisFunction()

virtual double Reen::SplineBasisfunction::BasisFunction ( int  iIndex,
double  fParam 
)
pure virtual

Calculates the function value Nik(t) at the point fParam (from: Piegl/Tiller 96 The NURBS-Book)

Parameters
iIndexIndex
fParamParameter value
Returns
Function value Nik(t)

Implemented in Reen::BSplineBasis.

◆ DerivativeOfBasisFunction()

virtual double Reen::SplineBasisfunction::DerivativeOfBasisFunction ( int  iIndex,
int  k,
double  fParam 
)
pure virtual

Calculates the kth derivative at the point fParam.

Implemented in Reen::BSplineBasis.

◆ DerivativesOfBasisFunction()

virtual void Reen::SplineBasisfunction::DerivativesOfBasisFunction ( int  iIndex,
int  iMaxDer,
double  fParam,
TColStd_Array1OfReal &  Derivat 
)
pure virtual

Calculates the function values of the first iMaxDer derivatives on the fParam position (from: Piegl/Tiller 96 The NURBS-Book)

Parameters
iIndexIndex
iMaxDermax. derivative
fParamParameter value.
Returns
Derivative list of function values

The list must be sufficiently long for iMaxDer+1 elements.

Implemented in Reen::BSplineBasis.

◆ LocalSupport()

virtual ValueT Reen::SplineBasisfunction::LocalSupport ( int  iIndex,
double  fParam 
)
pure virtual

Indicates whether the function value Nik(t) at the point fParam results in 0, 1 or a value in between.

This serves to speed up the calculation under certain circumstances.

Parameters
iIndexIndex
fParamParameter value
Returns
ValueT

Implemented in Reen::BSplineBasis.

◆ SetKnots() [1/2]

void SplineBasisfunction::SetKnots ( TColStd_Array1OfReal &  vKnots,
int  iOrder = 1 
)
virtual

Sets the knot vector and the order.

The size of the knot vector has to be exactly as large as defined in the constructor.

◆ SetKnots() [2/2]

void SplineBasisfunction::SetKnots ( TColStd_Array1OfReal &  vKnots,
TColStd_Array1OfInteger &  vMults,
int  iOrder = 1 
)
virtual

Sets the knot vector and the order.

The knot vector in the form of (Value, Multiplicity) is passed on. Internally, this is converted into a knot vector in the form of (value, 1). The size of this new vector has to be exactly as big as specified in the constructor.


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