Reen::BSplineBasis Class Reference

#include <ApproxSurface.h>

Inheritance diagram for Reen::BSplineBasis:
Reen::SplineBasisfunction

List of all members.

Public Member Functions

virtual void AllBasisFunctions (double fParam, TColStd_Array1OfReal &vFuncVals)
 Berechnet die Funktionswerte der an der Stelle fParam nicht verschwindenden Basisfunktionen.
virtual double BasisFunction (int iIndex, double fParam)
 Berechnet den Funktionswert Nik(t) an der Stelle fParam (aus: Piegl/Tiller 96 The NURBS-Book).
 BSplineBasis (TColStd_Array1OfReal &vKnots, TColStd_Array1OfInteger &vMults, int iSize, int iOrder=1)
 Konstruktor.
 BSplineBasis (TColStd_Array1OfReal &vKnots, int iOrder=1)
 Konstruktor.
 BSplineBasis (int iSize)
 Konstruktor.
virtual double DerivativeOfBasisFunction (int iIndex, int k, double fParam)
 Berechnet die k-te Ableitung an der Stelle fParam.
virtual void DerivativesOfBasisFunction (int iIndex, int iMaxDer, double fParam, TColStd_Array1OfReal &Derivat)
 Berechnet die Funktionswerte der ersten iMaxDer Ableitungen an der Stelle fParam (aus: Piegl/Tiller 96 The NURBS-Book).
virtual int FindSpan (double fParam)
 Bestimmt den Knotenindex zum Parameterwert (aus: Piegl/Tiller 96 The NURBS-Book).
virtual double GetIntegralOfProductOfBSplines (int i, int j, int r, int s)
 Berechnet das Integral des Produkts zweier B-Splines bzw.
virtual ~BSplineBasis ()
 Destruktor.

Protected Member Functions

int CalcSize (int r, int s)
 Berechnet in Abhängigkeit vom Grad die Anzahl der zu verwendenden Nullstellen/Gewichte der Legendre-Polynome.
virtual void FindIntegrationArea (int iIdx1, int iIdx2, int &iBegin, int &iEnd)
 Berechnet die Integrationsgrenzen (Indexe der Knoten).
virtual void GenerateRootsAndWeights (TColStd_Array1OfReal &vAbscissas, TColStd_Array1OfReal &vWeights)
 Berechnet die Nullstellen der Legendre-Polynome und die zugehörigen Gewichte.

Detailed Description

Definition at line 128 of file ApproxSurface.h.


Constructor & Destructor Documentation

BSplineBasis::BSplineBasis ( int  iSize  ) 

Konstruktor.

Parameters:
iSize Länge des Knotenvektors

Definition at line 121 of file ApproxSurface.cpp.

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

Konstruktor.

Parameters:
vKnots Knotenvektor
iOrder 
Todo:
undocumented parameter iOrder

Definition at line 132 of file ApproxSurface.cpp.

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

Konstruktor.

Parameters:
vKnots Knotenvektor der Form (Wert,Vielfachheit)
vMults 
iSize 
iOrder 
Todo:
undocumented parameters

Definition at line 126 of file ApproxSurface.cpp.

BSplineBasis::~BSplineBasis (  ) 

Destruktor.

Definition at line 137 of file ApproxSurface.cpp.


Member Function Documentation

void BSplineBasis::AllBasisFunctions ( double  fParam,
TColStd_Array1OfReal &  vFuncVals 
) [virtual]

Berechnet die Funktionswerte der an der Stelle fParam nicht verschwindenden Basisfunktionen.

Es muß darauf geachtet werden, daß die Liste für d(=Grad des B-Splines) Elemente (0,...,d-1) ausreicht. (aus: Piegl/Tiller 96 The NURBS-Book)

Parameters:
fParam 
vFuncVals Index, Parameterwert
Returns:
Liste der Funktionswerte
Todo:
undocumented parameter

Definition at line 163 of file ApproxSurface.cpp.

References Reen::SplineBasisfunction::_iOrder, Reen::SplineBasisfunction::_vKnotVector, and FindSpan().

double BSplineBasis::BasisFunction ( int  iIndex,
double  fParam 
) [virtual]

Berechnet den Funktionswert Nik(t) an der Stelle fParam (aus: Piegl/Tiller 96 The NURBS-Book).

Parameters:
iIndex Index
fParam Parameterwert
Returns:
Funktionswert Nik(t)

Implements Reen::SplineBasisfunction.

Definition at line 190 of file ApproxSurface.cpp.

References Reen::SplineBasisfunction::_iOrder, Reen::SplineBasisfunction::_vKnotVector, SketcherExample::f, k, FemExample::m, and draftTools::p.

Referenced by DerivativeOfBasisFunction(), Reen::BSplineParameterCorrection::SolveWithoutSmoothing(), and Reen::BSplineParameterCorrection::SolveWithSmoothing().

int BSplineBasis::CalcSize ( int  r,
int  s 
) [protected]

Berechnet in Abhängigkeit vom Grad die Anzahl der zu verwendenden Nullstellen/Gewichte der Legendre-Polynome.

Definition at line 565 of file ApproxSurface.cpp.

References Reen::SplineBasisfunction::_iOrder.

Referenced by GetIntegralOfProductOfBSplines().

double BSplineBasis::DerivativeOfBasisFunction ( int  iIndex,
int  k,
double  fParam 
) [virtual]

Berechnet die k-te Ableitung an der Stelle fParam.

Implements Reen::SplineBasisfunction.

Definition at line 349 of file ApproxSurface.cpp.

References Reen::SplineBasisfunction::_iOrder, Reen::SplineBasisfunction::_vKnotVector, BasisFunction(), SketcherExample::f, k, and draftTools::p.

Referenced by GetIntegralOfProductOfBSplines().

void BSplineBasis::DerivativesOfBasisFunction ( int  iIndex,
int  iMaxDer,
double  fParam,
TColStd_Array1OfReal &  Derivat 
) [virtual]

Berechnet die Funktionswerte der ersten iMaxDer Ableitungen an der Stelle fParam (aus: Piegl/Tiller 96 The NURBS-Book).

Parameters:
iIndex Index
iMaxDer max. Ableitung
fParam Parameterwert.
Derivat Die Liste muß für iMaxDer+1 Elemente ausreichen.
Returns:
Liste der Funktionswerte
Todo:
undocumented parameter Derivat

Implements Reen::SplineBasisfunction.

Definition at line 245 of file ApproxSurface.cpp.

References Reen::SplineBasisfunction::_iOrder, Reen::SplineBasisfunction::_vKnotVector, SketcherExample::f, k, and draftTools::p.

void BSplineBasis::FindIntegrationArea ( int  iIdx1,
int  iIdx2,
int &  iBegin,
int &  iEnd 
) [protected, virtual]

Berechnet die Integrationsgrenzen (Indexe der Knoten).

Definition at line 549 of file ApproxSurface.cpp.

References Reen::SplineBasisfunction::_iOrder, and Reen::SplineBasisfunction::_vKnotVector.

Referenced by GetIntegralOfProductOfBSplines().

int BSplineBasis::FindSpan ( double  fParam  )  [virtual]

Bestimmt den Knotenindex zum Parameterwert (aus: Piegl/Tiller 96 The NURBS-Book).

Parameters:
fParam Parameterwert
Returns:
Knotenindex

Definition at line 141 of file ApproxSurface.cpp.

References Reen::SplineBasisfunction::_iOrder, Reen::SplineBasisfunction::_vKnotVector, and Sketcher::mid.

Referenced by AllBasisFunctions().

void BSplineBasis::GenerateRootsAndWeights ( TColStd_Array1OfReal &  vAbscissas,
TColStd_Array1OfReal &  vWeights 
) [protected, virtual]

Berechnet die Nullstellen der Legendre-Polynome und die zugehörigen Gewichte.

Definition at line 478 of file ApproxSurface.cpp.

Referenced by GetIntegralOfProductOfBSplines().

double BSplineBasis::GetIntegralOfProductOfBSplines ( int  i,
int  j,
int  r,
int  s 
) [virtual]

Berechnet das Integral des Produkts zweier B-Splines bzw.

deren Ableitungen. Der Integrationsbereich erstreckt sich über den ganzen Definitionsbereich. Berechnet wird das Integral mittels der Gaußschen Quadraturformeln.

Definition at line 444 of file ApproxSurface.cpp.

References Reen::SplineBasisfunction::_vKnotVector, CalcSize(), DerivativeOfBasisFunction(), FindIntegrationArea(), and GenerateRootsAndWeights().

Referenced by Reen::BSplineParameterCorrection::CalcFirstSmoothMatrix(), Reen::BSplineParameterCorrection::CalcSecondSmoothMatrix(), and Reen::BSplineParameterCorrection::CalcThirdSmoothMatrix().


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

Generated on Wed Nov 23 19:02:45 2011 for FreeCAD by  doxygen 1.6.1