This class calculates a B-spline area on any point cloud (AKA scattered data). 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) |
| Use smoothing-terms. More... | |
| virtual void | EnableSmoothing (bool bSmooth=true, double fSmoothInfl=1.0f) |
| Use smoothing-terms. More... | |
| virtual const math_Matrix & | GetFirstSmoothMatrix () const |
| Returns the first matrix of smoothing terms, if calculated. More... | |
| virtual const math_Matrix & | GetSecondSmoothMatrix () const |
| Returns the second matrix of smoothing terms, if calculated. More... | |
| virtual const math_Matrix & | GetThirdSmoothMatrix () const |
| Returns the third matrix of smoothing terms, if calculated. More... | |
| virtual void | SetFirstSmoothMatrix (const math_Matrix &rclMat) |
| Sets the first matrix of the smoothing terms. More... | |
| virtual void | SetSecondSmoothMatrix (const math_Matrix &rclMat) |
| Sets the second matrix of smoothing terms. More... | |
| virtual void | SetThirdSmoothMatrix (const math_Matrix &rclMat) |
| Sets the third matrix of smoothing terms. More... | |
| void | SetUKnots (const std::vector< double > &afKnots) |
| Setting the knot vector. More... | |
| void | SetVKnots (const std::vector< double > &afKnots) |
| Setting the knot vector. More... | |
| virtual | ~BSplineParameterCorrection () |
Public Member Functions inherited from Reen::ParameterCorrection | |
| virtual void | EnableSmoothing (bool bSmooth=true, double fSmoothInfl=1.0f) |
| Use smoothing-terms. More... | |
| virtual Base::Vector3d | GetGravityPoint () const |
| Get the center of gravity. More... | |
| virtual void | GetUVW (Base::Vector3d &clU, Base::Vector3d &clV, Base::Vector3d &clW) const |
| Returns the u/v/w directions. More... | |
| virtual | Handle (Geom_BSplineSurface) CreateSurface(const TColgp_Array1OfPnt &points |
| Calculates a B-spline surface from the given points. 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) |
| Setting the u/v directions The third parameter specifies whether the directions should actually be used. More... | |
| virtual | ~ParameterCorrection () |
Protected Member Functions | |
| virtual void | CalcFirstSmoothMatrix (Base::SequencerLauncher &) |
| Calculates the matrix for the first smoothing term (see U.Dietz dissertation) More... | |
| virtual void | CalcSecondSmoothMatrix (Base::SequencerLauncher &) |
| Calculates the matrix for the second smoothing term (see U.Dietz dissertation) More... | |
| virtual void | CalcSmoothingTerms (bool bRecalc, double fFirst, double fSecond, double fThird) |
| Calculates the matrix for the smoothing terms (see U.Dietz dissertation) More... | |
| virtual void | CalcThirdSmoothMatrix (Base::SequencerLauncher &) |
| Calculates the matrix for the third smoothing term. More... | |
| virtual void | DoParameterCorrection (int iIter) |
| Carries out a parameter correction. More... | |
| virtual void | Init () |
| Initialization. More... | |
| virtual bool | SolveWithoutSmoothing () |
| Solve an overdetermined LGS with the help of the Householder-Tansformation. More... | |
| virtual bool | SolveWithSmoothing (double fWeight) |
| Solve a regular system of equations by LU decomposition. More... | |
Protected Member Functions inherited from Reen::ParameterCorrection | |
| virtual void | CalcEigenvectors () |
| Calculates the eigenvectors of the covariance matrix. More... | |
| virtual bool | DoInitialParameterCorrection (double fSizeFactor=0.0f) |
| Calculates an initial area at the beginning of the algorithm. More... | |
| virtual void | DoParameterCorrection (int iIter)=0 |
| Carries out a parameter correction. More... | |
| virtual bool | GetUVParameters (double fSizeFactor) |
| Calculates the (u, v) values of the points. More... | |
| void | ProjectControlPointsOnPlane () |
| Projects the control points onto the fit plane. More... | |
| virtual bool | SolveWithoutSmoothing ()=0 |
| Solves system of equations. More... | |
| virtual bool | SolveWithSmoothing (double fWeight)=0 |
| Solve a regular system of equations. More... | |
Additional Inherited Members | |
Public Attributes inherited from Reen::ParameterCorrection | |
| virtual int bool | bParaCor |
| virtual int bool double | fSizeFactor =0.0f) |
| virtual int | iIter |
This class calculates a B-spline area on any point cloud (AKA scattered data).
The surface is generated iteratively with the help of a parameter correction. See Hoschek/Lasser 2nd ed. (1992). The approximation is expanded to include smoothing terms so that smooth surfaces can be generated.
| BSplineParameterCorrection::BSplineParameterCorrection | ( | unsigned | usUOrder = 4, |
| unsigned | usVOrder = 4, |
||
| unsigned | usUCtrlpoints = 6, |
||
| unsigned | usVCtrlpoints = 6 |
||
| ) |
References Init().
|
virtual |
|
protectedvirtual |
Calculates the matrix for the first smoothing term (see U.Dietz dissertation)
References Base::SequencerLauncher::next().
Referenced by CalcSmoothingTerms().
|
protectedvirtual |
Calculates the matrix for the second smoothing term (see U.Dietz dissertation)
References Base::SequencerLauncher::next().
Referenced by CalcSmoothingTerms().
|
protectedvirtual |
Calculates the matrix for the smoothing terms (see U.Dietz dissertation)
References CalcFirstSmoothMatrix(), CalcSecondSmoothMatrix(), and CalcThirdSmoothMatrix().
Referenced by EnableSmoothing().
|
protectedvirtual |
Calculates the matrix for the third smoothing term.
References Base::SequencerLauncher::next().
Referenced by CalcSmoothingTerms().
|
protectedvirtual |
Carries out a parameter correction.
Implements Reen::ParameterCorrection.
References Reen::ParameterCorrection::Handle(), Reen::ParameterCorrection::iIter, Base::SequencerLauncher::next(), SolveWithoutSmoothing(), and SolveWithSmoothing().
|
virtual |
Use smoothing-terms.
References CalcSmoothingTerms(), and Reen::ParameterCorrection::EnableSmoothing().
|
virtual |
Use smoothing-terms.
Reimplemented from Reen::ParameterCorrection.
References EnableSmoothing().
Referenced by EnableSmoothing().
|
virtual |
Returns the first matrix of smoothing terms, if calculated.
|
virtual |
Returns the second matrix of smoothing terms, if calculated.
|
virtual |
Returns the third matrix of smoothing terms, if calculated.
|
protectedvirtual |
Initialization.
Referenced by BSplineParameterCorrection().
|
virtual |
Sets the first matrix of the smoothing terms.
|
virtual |
Sets the second matrix of smoothing terms.
|
virtual |
Sets the third matrix of smoothing terms.
| void BSplineParameterCorrection::SetUKnots | ( | const std::vector< double > & | afKnots | ) |
Setting the knot vector.
| void BSplineParameterCorrection::SetVKnots | ( | const std::vector< double > & | afKnots | ) |
Setting the knot vector.
|
protectedvirtual |
Solve an overdetermined LGS with the help of the Householder-Tansformation.
Implements Reen::ParameterCorrection.
Referenced by DoParameterCorrection().
|
protectedvirtual |
Solve a regular system of equations by LU decomposition.
Depending on the weighting, smoothing terms are included
Implements Reen::ParameterCorrection.
References draftgeoutils.faces::bind(), and Reen::ScalarProduct::multiply().
Referenced by DoParameterCorrection().