Diese Klasse berechnet auf einer beliebigen Punktwolke (auch scattered data) eine B-Spline-Flaeche. More...
#include <ApproxSurface.h>
Public Member Functions | |
BSplineParameterCorrection (unsigned usUOrder=4, unsigned usVOrder=4, unsigned usUCtrlpoints=6, unsigned usVCtrlpoints=6) | |
virtual void | EnableSmoothing (bool bSmooth, double fSmoothInfl, double fFirst, double fSec, double fThird) |
Verwende Glaettungsterme. More... | |
virtual void | EnableSmoothing (bool bSmooth=true, double fSmoothInfl=1.0f) |
Verwende Glaettungsterme. More... | |
virtual const math_Matrix & | GetFirstSmoothMatrix () const |
Gibt die erste Matrix der Glaettungsterme zurueck, falls berechnet. More... | |
virtual const math_Matrix & | GetSecondSmoothMatrix () const |
Gibt die zweite Matrix der Glaettungsterme zurueck, falls berechnet. More... | |
virtual const math_Matrix & | GetThirdSmoothMatrix () const |
Gibt die dritte Matrix der Glaettungsterme zurueck, falls berechnet. More... | |
virtual void | SetFirstSmoothMatrix (const math_Matrix &rclMat) |
Setzt die erste Matrix der Glaettungsterme. More... | |
virtual void | SetSecondSmoothMatrix (const math_Matrix &rclMat) |
Setzt die zweite Matrix der Glaettungsterme. More... | |
virtual void | SetThirdSmoothMatrix (const math_Matrix &rclMat) |
Setzt die dritte Matrix der Glaettungsterme. More... | |
void | SetUKnots (const std::vector< double > &afKnots) |
Setzen des Knotenvektors. More... | |
void | SetVKnots (const std::vector< double > &afKnots) |
Setzen des Knotenvektors. More... | |
virtual | ~BSplineParameterCorrection () |
Public Member Functions inherited from Reen::ParameterCorrection | |
virtual Base::Vector3d | GetGravityPoint () const |
virtual void | GetUVW (Base::Vector3d &clU, Base::Vector3d &clV, Base::Vector3d &clW) const |
Gibt die u/v/w-Richtungen zurueck. More... | |
virtual | Handle (Geom_BSplineSurface) CreateSurface(const TColgp_Array1OfPnt &points |
Berechnet eine B-Spline-Flaeche.aus den geg. More... | |
ParameterCorrection (unsigned usUOrder=4, unsigned usVOrder=4, unsigned usUCtrlpoints=6, unsigned usVCtrlpoints=6) | |
virtual void | SetUV (const Base::Vector3d &clU, const Base::Vector3d &clV, bool bUseDir=true) |
Setzen der u/v-Richtungen Dritter Parameter gibt an, ob die Richtungen tatsaechlich verwendet werden sollen. More... | |
virtual | ~ParameterCorrection () |
Protected Member Functions | |
virtual void | CalcFirstSmoothMatrix (Base::SequencerLauncher &) |
Berechnet die Matrix zum ersten Glaettungsterm (siehe Diss. More... | |
virtual void | CalcSecondSmoothMatrix (Base::SequencerLauncher &) |
Berechnet die Matrix zum zweiten Glaettunsterm (siehe Diss. More... | |
virtual void | CalcSmoothingTerms (bool bRecalc, double fFirst, double fSecond, double fThird) |
Berechnet die Matrix zu den Glaettungstermen (siehe Dissertation U.Dietz) More... | |
virtual void | CalcThirdSmoothMatrix (Base::SequencerLauncher &) |
Berechnet die Matrix zum dritten Glaettungsterm. More... | |
virtual void | DoParameterCorrection (int iIter) |
Fuehrt eine Parameterkorrektur durch. More... | |
virtual void | Init () |
Initialisierung. More... | |
virtual bool | SolveWithoutSmoothing () |
Loest ein ueberbestimmtes LGS mit Hilfe der Householder-Transformation. More... | |
virtual bool | SolveWithSmoothing (double fWeight) |
Loest ein regulaeres Gleichungssystem durch LU-Zerlegung. More... | |
Protected Member Functions inherited from Reen::ParameterCorrection | |
virtual void | CalcEigenvectors () |
Berechnet die Eigenvektoren der Kovarianzmatrix. More... | |
virtual bool | DoInitialParameterCorrection (double fSizeFactor=0.0f) |
Berechnet eine initiale Flaeche zu Beginn des Algorithmus. More... | |
virtual bool | GetUVParameters (double fSizeFactor) |
Berechnet die u.v-Werte der Punkte. More... | |
void | ProjectControlPointsOnPlane () |
Projiziert die Kontrollpunkte auf die Fit-Ebene. More... | |
Additional Inherited Members | |
Public Attributes inherited from Reen::ParameterCorrection | |
virtual int bool | bParaCor |
virtual int bool double | fSizeFactor =0.0f) |
virtual int | iIter |
Detailed Description
Diese Klasse berechnet auf einer beliebigen Punktwolke (auch scattered data) eine B-Spline-Flaeche.
Die Flaeche wird iterativ mit Hilfe einer Parameterkorrektur erzeugt. Siehe dazu Hoschek/Lasser 2. Auflage (1992). Erweitert wird die Approximation um Glaettungsterme, so dass glatte Flaechen erzeugt werden koennen.
Constructor & Destructor Documentation
◆ BSplineParameterCorrection()
BSplineParameterCorrection::BSplineParameterCorrection | ( | unsigned | usUOrder = 4 , |
unsigned | usVOrder = 4 , |
||
unsigned | usUCtrlpoints = 6 , |
||
unsigned | usVCtrlpoints = 6 |
||
) |
References Init().
◆ ~BSplineParameterCorrection()
|
virtual |
Member Function Documentation
◆ CalcFirstSmoothMatrix()
|
protectedvirtual |
Berechnet die Matrix zum ersten Glaettungsterm (siehe Diss.
U.Dietz)
References Base::SequencerLauncher::next().
Referenced by CalcSmoothingTerms().
◆ CalcSecondSmoothMatrix()
|
protectedvirtual |
Berechnet die Matrix zum zweiten Glaettunsterm (siehe Diss.
U.Dietz)
References Base::SequencerLauncher::next().
Referenced by CalcSmoothingTerms().
◆ CalcSmoothingTerms()
|
protectedvirtual |
Berechnet die Matrix zu den Glaettungstermen (siehe Dissertation U.Dietz)
References CalcFirstSmoothMatrix(), CalcSecondSmoothMatrix(), and CalcThirdSmoothMatrix().
Referenced by EnableSmoothing().
◆ CalcThirdSmoothMatrix()
|
protectedvirtual |
Berechnet die Matrix zum dritten Glaettungsterm.
References Base::SequencerLauncher::next().
Referenced by CalcSmoothingTerms().
◆ DoParameterCorrection()
|
protectedvirtual |
Fuehrt eine Parameterkorrektur durch.
Implements Reen::ParameterCorrection.
References Reen::ParameterCorrection::Handle(), Reen::ParameterCorrection::iIter, Base::SequencerLauncher::next(), SolveWithoutSmoothing(), and SolveWithSmoothing().
◆ EnableSmoothing() [1/2]
|
virtual |
Verwende Glaettungsterme.
References CalcSmoothingTerms(), and Reen::ParameterCorrection::EnableSmoothing().
◆ EnableSmoothing() [2/2]
|
virtual |
Verwende Glaettungsterme.
Reimplemented from Reen::ParameterCorrection.
◆ GetFirstSmoothMatrix()
|
virtual |
Gibt die erste Matrix der Glaettungsterme zurueck, falls berechnet.
◆ GetSecondSmoothMatrix()
|
virtual |
Gibt die zweite Matrix der Glaettungsterme zurueck, falls berechnet.
◆ GetThirdSmoothMatrix()
|
virtual |
Gibt die dritte Matrix der Glaettungsterme zurueck, falls berechnet.
◆ Init()
|
protectedvirtual |
Initialisierung.
Referenced by BSplineParameterCorrection().
◆ SetFirstSmoothMatrix()
|
virtual |
Setzt die erste Matrix der Glaettungsterme.
◆ SetSecondSmoothMatrix()
|
virtual |
Setzt die zweite Matrix der Glaettungsterme.
◆ SetThirdSmoothMatrix()
|
virtual |
Setzt die dritte Matrix der Glaettungsterme.
◆ SetUKnots()
void BSplineParameterCorrection::SetUKnots | ( | const std::vector< double > & | afKnots | ) |
Setzen des Knotenvektors.
◆ SetVKnots()
void BSplineParameterCorrection::SetVKnots | ( | const std::vector< double > & | afKnots | ) |
Setzen des Knotenvektors.
◆ SolveWithoutSmoothing()
|
protectedvirtual |
Loest ein ueberbestimmtes LGS mit Hilfe der Householder-Transformation.
Implements Reen::ParameterCorrection.
Referenced by DoParameterCorrection().
◆ SolveWithSmoothing()
|
protectedvirtual |
Loest ein regulaeres Gleichungssystem durch LU-Zerlegung.
Es fliessen je nach Gewichtung Glaettungsterme mit ein
Implements Reen::ParameterCorrection.
References Reen::ScalarProduct::multiply().
Referenced by DoParameterCorrection().
The documentation for this class was generated from the following files:
- src/Mod/ReverseEngineering/App/ApproxSurface.h
- src/Mod/ReverseEngineering/App/ApproxSurface.cpp