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 () | |
![]() | |
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... | |
![]() | |
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 | |
![]() | |
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