#include <ApproxSurface.h>
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. |
Definition at line 128 of file ApproxSurface.h.
BSplineBasis::BSplineBasis | ( | int | iSize | ) |
Konstruktor.
iSize | Länge des Knotenvektors |
Definition at line 121 of file ApproxSurface.cpp.
BSplineBasis::BSplineBasis | ( | TColStd_Array1OfReal & | vKnots, | |
int | iOrder = 1 | |||
) |
Konstruktor.
vKnots | Knotenvektor | |
iOrder |
Definition at line 132 of file ApproxSurface.cpp.
BSplineBasis::BSplineBasis | ( | TColStd_Array1OfReal & | vKnots, | |
TColStd_Array1OfInteger & | vMults, | |||
int | iSize, | |||
int | iOrder = 1 | |||
) |
Konstruktor.
vKnots | Knotenvektor der Form (Wert,Vielfachheit) | |
vMults | ||
iSize | ||
iOrder |
Definition at line 126 of file ApproxSurface.cpp.
BSplineBasis::~BSplineBasis | ( | ) |
Destruktor.
Definition at line 137 of file ApproxSurface.cpp.
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)
fParam | ||
vFuncVals | Index, Parameterwert |
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).
iIndex | Index | |
fParam | Parameterwert |
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).
iIndex | Index | |
iMaxDer | max. Ableitung | |
fParam | Parameterwert. | |
Derivat | Die Liste muß für iMaxDer+1 Elemente ausreichen. |
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).
fParam | Parameterwert |
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().