Diese Klasse berechnet auf einer beliebigen Punktwolke (auch scattered data) eine B-Spline-Fl�che. More...
#include <ApproxSurface.h>
Public Member Functions | |
BSplineParameterCorrection (unsigned short usUOrder=4, unsigned short usVOrder=4, unsigned short usUCtrlpoints=6, unsigned short usVCtrlpoints=6) | |
virtual void | EnableSmoothing (bool bSmooth, float fSmoothInfl, float fFirst, float fSec, float fThird) |
Verwende Gl�ttungsterme. | |
virtual void | EnableSmoothing (bool bSmooth=true, float fSmoothInfl=1.0f) |
Verwende Gl�ttungsterme. | |
virtual const math_Matrix & | GetFirstSmoothMatrix () const |
Gibt die erste Matrix der Gl�ttungsterme zur�ck, falls berechnet. | |
virtual const math_Matrix & | GetSecondSmoothMatrix () const |
Gibt die zweite Matrix der Gl�ttungsterme zur�ck, falls berechnet. | |
virtual const math_Matrix & | GetThirdSmoothMatrix () const |
Gibt die dritte Matrix der Gl�ttungsterme zur�ck, falls berechnet. | |
virtual void | SetFirstSmoothMatrix (const math_Matrix &rclMat) |
Setzt die erste Matrix der Gl�ttungsterme. | |
virtual void | SetSecondSmoothMatrix (const math_Matrix &rclMat) |
Setzt die zweite Matrix der Gl�ttungsterme. | |
virtual void | SetThirdSmoothMatrix (const math_Matrix &rclMat) |
Setzt die dritte Matrix der Gl�ttungsterme. | |
void | SetUKnots (const std::vector< float > &afKnots) |
Setzen des Knotenvektors. | |
void | SetVKnots (const std::vector< float > &afKnots) |
Setzen des Knotenvektors. | |
virtual | ~BSplineParameterCorrection () |
Protected Member Functions | |
virtual void | CalcFirstSmoothMatrix (Base::SequencerLauncher &) |
Berechnet die Matrix zum ersten Gl�ttungsterm (siehe Diss. | |
virtual void | CalcSecondSmoothMatrix (Base::SequencerLauncher &) |
Berechnet die Matrix zum zweiten Gl�ttunsterm (siehe Diss. | |
virtual void | CalcSmoothingTerms (bool bRecalc, float fFirst, float fSecond, float fThird) |
Berechnet die Matrix zu den Gl�ttungstermen (siehe Dissertation U.Dietz). | |
virtual void | CalcThirdSmoothMatrix (Base::SequencerLauncher &) |
Berechnet die Matrix zum dritten Gl�ttungsterm. | |
virtual void | DoParameterCorrection (unsigned short usIter) |
F�hrt eine Parameterkorrektur durch. | |
virtual void | Init () |
Initialisierung. | |
virtual bool | SolveWithoutSmoothing () |
L�st ein �berbestimmtes LGS mit Hilfe der Householder-Transformation. | |
virtual bool | SolveWithSmoothing (float fWeight) |
L�st ein regul�res Gleichungssystem durch LU-Zerlegung. | |
Protected Attributes | |
math_Matrix | _clFirstMatrix |
Matrix der Gl�ttungsfunktionale. | |
math_Matrix | _clSecondMatrix |
Matrix der 1. Gl�ttungsfunktionale. | |
math_Matrix | _clSmoothMatrix |
B-Spline-Basisfunktion in v-Richtung. | |
math_Matrix | _clThirdMatrix |
Matrix der 2. Gl�ttungsfunktionale. | |
BSplineBasis | _clUSpline |
BSplineBasis | _clVSpline |
B-Spline-Basisfunktion in u-Richtung. |
Diese Klasse berechnet auf einer beliebigen Punktwolke (auch scattered data) eine B-Spline-Fl�che.
Die Fl�che wird iterativ mit Hilfe einer Parameterkorrektur erzeugt. Siehe dazu Hoschek/Lasser 2. Auflage (1992). Erweitert wird die Approximation um Gl�ttungsterme, so da� glatte Fl�chen erzeugt werden k�nnen.
Definition at line 348 of file ApproxSurface.h.
BSplineParameterCorrection::BSplineParameterCorrection | ( | unsigned short | usUOrder = 4 , |
|
unsigned short | usVOrder = 4 , |
|||
unsigned short | usUCtrlpoints = 6 , |
|||
unsigned short | usVCtrlpoints = 6 | |||
) |
Definition at line 786 of file ApproxSurface.cpp.
References Init().
virtual Reen::BSplineParameterCorrection::~BSplineParameterCorrection | ( | ) | [inline, virtual] |
Definition at line 359 of file ApproxSurface.h.
void BSplineParameterCorrection::CalcFirstSmoothMatrix | ( | Base::SequencerLauncher & | seq | ) | [protected, virtual] |
Berechnet die Matrix zum ersten Gl�ttungsterm (siehe Diss.
U.Dietz)
Definition at line 1121 of file ApproxSurface.cpp.
References _clFirstMatrix, _clUSpline, _clVSpline, Reen::ParameterCorrection::_usUCtrlpoints, Reen::ParameterCorrection::_usVCtrlpoints, Reen::BSplineBasis::GetIntegralOfProductOfBSplines(), k, RobotExample::l, FemExample::m, and Base::SequencerLauncher::next().
Referenced by CalcSmoothingTerms().
void BSplineParameterCorrection::CalcSecondSmoothMatrix | ( | Base::SequencerLauncher & | seq | ) | [protected, virtual] |
Berechnet die Matrix zum zweiten Gl�ttunsterm (siehe Diss.
U.Dietz)
Definition at line 1147 of file ApproxSurface.cpp.
References _clSecondMatrix, _clUSpline, _clVSpline, Reen::ParameterCorrection::_usUCtrlpoints, Reen::ParameterCorrection::_usVCtrlpoints, Reen::BSplineBasis::GetIntegralOfProductOfBSplines(), k, RobotExample::l, FemExample::m, and Base::SequencerLauncher::next().
Referenced by CalcSmoothingTerms().
void BSplineParameterCorrection::CalcSmoothingTerms | ( | bool | bRecalc, | |
float | fFirst, | |||
float | fSecond, | |||
float | fThird | |||
) | [protected, virtual] |
Berechnet die Matrix zu den Gl�ttungstermen (siehe Dissertation U.Dietz).
Definition at line 1106 of file ApproxSurface.cpp.
References _clFirstMatrix, _clSecondMatrix, _clSmoothMatrix, _clThirdMatrix, Reen::ParameterCorrection::_usUCtrlpoints, Reen::ParameterCorrection::_usVCtrlpoints, CalcFirstSmoothMatrix(), CalcSecondSmoothMatrix(), and CalcThirdSmoothMatrix().
Referenced by EnableSmoothing().
void BSplineParameterCorrection::CalcThirdSmoothMatrix | ( | Base::SequencerLauncher & | seq | ) | [protected, virtual] |
Berechnet die Matrix zum dritten Gl�ttungsterm.
Definition at line 1175 of file ApproxSurface.cpp.
References _clThirdMatrix, _clUSpline, _clVSpline, Reen::ParameterCorrection::_usUCtrlpoints, Reen::ParameterCorrection::_usVCtrlpoints, Reen::BSplineBasis::GetIntegralOfProductOfBSplines(), k, RobotExample::l, FemExample::m, and Base::SequencerLauncher::next().
Referenced by CalcSmoothingTerms().
void BSplineParameterCorrection::DoParameterCorrection | ( | unsigned short | usIter | ) | [protected, virtual] |
F�hrt eine Parameterkorrektur durch.
Implements Reen::ParameterCorrection.
Definition at line 883 of file ApproxSurface.cpp.
References Reen::ParameterCorrection::_bSmoothing, Reen::ParameterCorrection::_fSmoothInfluence, Reen::ParameterCorrection::_pvcPoints, Reen::ParameterCorrection::_pvcUVParam, Reen::ParameterCorrection::_usUOrder, Reen::ParameterCorrection::_usVOrder, Reen::ParameterCorrection::_vCtrlPntsOfSurf, Reen::ParameterCorrection::_vUKnots, Reen::ParameterCorrection::_vUMults, Reen::ParameterCorrection::_vVKnots, Reen::ParameterCorrection::_vVMults, SketcherExample::f, FLOAT_EPS, SolveWithoutSmoothing(), and SolveWithSmoothing().
void BSplineParameterCorrection::EnableSmoothing | ( | bool | bSmooth, | |
float | fSmoothInfl, | |||
float | fFirst, | |||
float | fSec, | |||
float | fThird | |||
) | [virtual] |
Verwende Gl�ttungsterme.
Definition at line 1218 of file ApproxSurface.cpp.
References Reen::ParameterCorrection::_bSmoothing, CalcSmoothingTerms(), and EnableSmoothing().
void BSplineParameterCorrection::EnableSmoothing | ( | bool | bSmooth = true , |
|
float | fSmoothInfl = 1.0f | |||
) | [virtual] |
Verwende Gl�ttungsterme.
Reimplemented from Reen::ParameterCorrection.
Definition at line 1213 of file ApproxSurface.cpp.
References SketcherExample::f.
Referenced by approxSurface(), and EnableSmoothing().
const math_Matrix & BSplineParameterCorrection::GetFirstSmoothMatrix | ( | ) | const [virtual] |
Gibt die erste Matrix der Gl�ttungsterme zur�ck, falls berechnet.
Definition at line 1229 of file ApproxSurface.cpp.
References _clFirstMatrix.
const math_Matrix & BSplineParameterCorrection::GetSecondSmoothMatrix | ( | ) | const [virtual] |
Gibt die zweite Matrix der Gl�ttungsterme zur�ck, falls berechnet.
Definition at line 1234 of file ApproxSurface.cpp.
References _clSecondMatrix.
const math_Matrix & BSplineParameterCorrection::GetThirdSmoothMatrix | ( | ) | const [virtual] |
Gibt die dritte Matrix der Gl�ttungsterme zur�ck, falls berechnet.
Definition at line 1239 of file ApproxSurface.cpp.
References _clThirdMatrix.
void BSplineParameterCorrection::Init | ( | void | ) | [protected, virtual] |
Initialisierung.
Definition at line 808 of file ApproxSurface.cpp.
References _clFirstMatrix, _clSecondMatrix, _clSmoothMatrix, _clThirdMatrix, _clUSpline, _clVSpline, Reen::ParameterCorrection::_pvcPoints, Reen::ParameterCorrection::_pvcUVParam, Reen::ParameterCorrection::_usUCtrlpoints, Reen::ParameterCorrection::_usUOrder, Reen::ParameterCorrection::_usVCtrlpoints, Reen::ParameterCorrection::_usVOrder, Reen::ParameterCorrection::_vUKnots, Reen::ParameterCorrection::_vUMults, Reen::ParameterCorrection::_vVKnots, Reen::ParameterCorrection::_vVMults, SketcherExample::f, and Reen::SplineBasisfunction::SetKnots().
Referenced by BSplineParameterCorrection().
void BSplineParameterCorrection::SetFirstSmoothMatrix | ( | const math_Matrix & | rclMat | ) | [virtual] |
Setzt die erste Matrix der Gl�ttungsterme.
Definition at line 1244 of file ApproxSurface.cpp.
References _clFirstMatrix.
void BSplineParameterCorrection::SetSecondSmoothMatrix | ( | const math_Matrix & | rclMat | ) | [virtual] |
Setzt die zweite Matrix der Gl�ttungsterme.
Definition at line 1249 of file ApproxSurface.cpp.
References _clSecondMatrix.
void BSplineParameterCorrection::SetThirdSmoothMatrix | ( | const math_Matrix & | rclMat | ) | [virtual] |
Setzt die dritte Matrix der Gl�ttungsterme.
Definition at line 1254 of file ApproxSurface.cpp.
References _clThirdMatrix.
void BSplineParameterCorrection::SetUKnots | ( | const std::vector< float > & | afKnots | ) |
Setzen des Knotenvektors.
Definition at line 845 of file ApproxSurface.cpp.
References _clUSpline, Reen::ParameterCorrection::_usUCtrlpoints, Reen::ParameterCorrection::_usUOrder, Reen::ParameterCorrection::_vUKnots, Reen::ParameterCorrection::_vUMults, Py::long, and Reen::SplineBasisfunction::SetKnots().
void BSplineParameterCorrection::SetVKnots | ( | const std::vector< float > & | afKnots | ) |
Setzen des Knotenvektors.
Definition at line 864 of file ApproxSurface.cpp.
References _clVSpline, Reen::ParameterCorrection::_usVCtrlpoints, Reen::ParameterCorrection::_usVOrder, Reen::ParameterCorrection::_vVKnots, Reen::ParameterCorrection::_vVMults, Py::long, and Reen::SplineBasisfunction::SetKnots().
bool BSplineParameterCorrection::SolveWithoutSmoothing | ( | ) | [protected, virtual] |
L�st ein �berbestimmtes LGS mit Hilfe der Householder-Transformation.
Implements Reen::ParameterCorrection.
Definition at line 963 of file ApproxSurface.cpp.
References _clUSpline, _clVSpline, Reen::ParameterCorrection::_pvcPoints, Reen::ParameterCorrection::_pvcUVParam, Reen::ParameterCorrection::_usUCtrlpoints, Reen::ParameterCorrection::_usVCtrlpoints, Reen::ParameterCorrection::_vCtrlPntsOfSurf, Reen::BSplineBasis::BasisFunction(), and k.
Referenced by DoParameterCorrection().
bool BSplineParameterCorrection::SolveWithSmoothing | ( | float | fWeight | ) | [protected, virtual] |
L�st ein regul�res Gleichungssystem durch LU-Zerlegung.
Es flie�en je nach Gewichtung Gl�ttungsterme mit ein
Implements Reen::ParameterCorrection.
Definition at line 1022 of file ApproxSurface.cpp.
References _clSmoothMatrix, _clUSpline, _clVSpline, Reen::ParameterCorrection::_pvcPoints, Reen::ParameterCorrection::_pvcUVParam, Reen::ParameterCorrection::_usUCtrlpoints, Reen::ParameterCorrection::_usVCtrlpoints, Reen::ParameterCorrection::_vCtrlPntsOfSurf, Reen::BSplineBasis::BasisFunction(), k, and FemExample::m.
Referenced by DoParameterCorrection().
math_Matrix Reen::BSplineParameterCorrection::_clFirstMatrix [protected] |
Matrix der Gl�ttungsfunktionale.
Definition at line 463 of file ApproxSurface.h.
Referenced by CalcFirstSmoothMatrix(), CalcSmoothingTerms(), GetFirstSmoothMatrix(), Init(), and SetFirstSmoothMatrix().
math_Matrix Reen::BSplineParameterCorrection::_clSecondMatrix [protected] |
Matrix der 1. Gl�ttungsfunktionale.
Definition at line 464 of file ApproxSurface.h.
Referenced by CalcSecondSmoothMatrix(), CalcSmoothingTerms(), GetSecondSmoothMatrix(), Init(), and SetSecondSmoothMatrix().
math_Matrix Reen::BSplineParameterCorrection::_clSmoothMatrix [protected] |
B-Spline-Basisfunktion in v-Richtung.
Definition at line 462 of file ApproxSurface.h.
Referenced by CalcSmoothingTerms(), Init(), and SolveWithSmoothing().
math_Matrix Reen::BSplineParameterCorrection::_clThirdMatrix [protected] |
Matrix der 2. Gl�ttungsfunktionale.
Definition at line 465 of file ApproxSurface.h.
Referenced by CalcSmoothingTerms(), CalcThirdSmoothMatrix(), GetThirdSmoothMatrix(), Init(), and SetThirdSmoothMatrix().
Definition at line 460 of file ApproxSurface.h.
Referenced by CalcFirstSmoothMatrix(), CalcSecondSmoothMatrix(), CalcThirdSmoothMatrix(), Init(), SetUKnots(), SolveWithoutSmoothing(), and SolveWithSmoothing().
B-Spline-Basisfunktion in u-Richtung.
Definition at line 461 of file ApproxSurface.h.
Referenced by CalcFirstSmoothMatrix(), CalcSecondSmoothMatrix(), CalcThirdSmoothMatrix(), Init(), SetVKnots(), SolveWithoutSmoothing(), and SolveWithSmoothing().