#include <ApproxSurface.h>
Public Member Functions | |
virtual Handle_Geom_BSplineSurface | CreateSurface (const TColgp_Array1OfPnt &points, unsigned short usIter, bool bParaCor, float fSizeFactor=0.0f) |
Berechnet eine B-Spline-Fläche.aus den geg. | |
virtual void | EnableSmoothing (bool bSmooth=true, float fSmoothInfl=1.0f) |
Verwende Glättungsterme. | |
virtual Base::Vector3f | GetGravityPoint () const |
virtual void | GetUVW (Base::Vector3f &clU, Base::Vector3f &clV, Base::Vector3f &clW) const |
Gibt die u/v/w-Richtungen zurück. | |
ParameterCorrection (unsigned short usUOrder=4, unsigned short usVOrder=4, unsigned short usUCtrlpoints=6, unsigned short usVCtrlpoints=6) | |
virtual void | SetUVW (const Base::Vector3f &clU, const Base::Vector3f &clV, const Base::Vector3f &clW, bool bUseDir=true) |
Setzen der u/v-Richtungen Dritter Parameter gibt an, ob die Richtungen tatsächlich verwendet werden sollen. | |
virtual | ~ParameterCorrection () |
Protected Member Functions | |
virtual void | CalcEigenvectors () |
Berechnet die Eigenvektoren der Kovarianzmatrix. | |
virtual bool | DoInitialParameterCorrection (float fSizeFactor=0.0f) |
Berechnet eine initiale Fläche zu Beginn des Algorithmus. | |
virtual void | DoParameterCorrection (unsigned short usIter)=0 |
Führt eine Parameterkorrektur durch. | |
virtual bool | GetUVParameters (float fSizeFactor) |
Berechnet die u.v-Werte der Punkte. | |
virtual bool | SolveWithoutSmoothing ()=0 |
Löst Gleichungssystem. | |
virtual bool | SolveWithSmoothing (float fWeight)=0 |
Löst ein reguläres Gleichungssystem. | |
Protected Attributes | |
bool | _bGetUVDir |
bool | _bSmoothing |
Stellt fest, ob u/v-Richtung vorgegeben wird. | |
Base::Vector3f | _clU |
Anzahl der Kontrollpunkte in v-Richtung. | |
Base::Vector3f | _clV |
u-Richtung | |
Base::Vector3f | _clW |
v-Richtung | |
float | _fSmoothInfluence |
Glättung verwenden. | |
TColgp_Array1OfPnt * | _pvcPoints |
w-Richtung (senkrecht zu u-und w-Richtung) | |
TColgp_Array1OfPnt2d * | _pvcUVParam |
Punktliste der Rohdaten. | |
unsigned short | _usUCtrlpoints |
Ordnung in v-Richtung. | |
unsigned short | _usUOrder |
Einfluß der Glättung. | |
unsigned short | _usVCtrlpoints |
Anzahl der Kontrollpunkte in u-Richtung. | |
unsigned short | _usVOrder |
Ordnung in u-Richtung. | |
TColgp_Array2OfPnt | _vCtrlPntsOfSurf |
Parameterwerte zu den Punkten aus der Liste. | |
TColStd_Array1OfReal | _vUKnots |
Array von Kontrollpunkten. | |
TColStd_Array1OfInteger | _vUMults |
Knotenvektor der B-Spline-Fläche in v-Richtung. | |
TColStd_Array1OfReal | _vVKnots |
Knotenvektor der B-Spline-Fläche in u-Richtung. | |
TColStd_Array1OfInteger | _vVMults |
Vielfachheit der Knoten im Knotenvektor. |
Definition at line 236 of file ApproxSurface.h.
ParameterCorrection::ParameterCorrection | ( | unsigned short | usUOrder = 4 , |
|
unsigned short | usVOrder = 4 , |
|||
unsigned short | usUCtrlpoints = 6 , |
|||
unsigned short | usVCtrlpoints = 6 | |||
) |
Definition at line 587 of file ApproxSurface.cpp.
References _bGetUVDir, _bSmoothing, and _fSmoothInfluence.
virtual Reen::ParameterCorrection::~ParameterCorrection | ( | ) | [inline, virtual] |
Definition at line 247 of file ApproxSurface.h.
void ParameterCorrection::CalcEigenvectors | ( | ) | [protected, virtual] |
Berechnet die Eigenvektoren der Kovarianzmatrix.
Definition at line 604 of file ApproxSurface.cpp.
References _clU, _clV, _clW, _pvcPoints, MeshCore::Approximation::AddPoint(), MeshCore::PlaneFit::Fit(), MeshCore::PlaneFit::GetDirU(), MeshCore::PlaneFit::GetDirV(), and MeshCore::PlaneFit::GetNormal().
Referenced by DoInitialParameterCorrection().
virtual Handle_Geom_BSplineSurface Reen::ParameterCorrection::CreateSurface | ( | const TColgp_Array1OfPnt & | points, | |
unsigned short | usIter, | |||
bool | bParaCor, | |||
float | fSizeFactor = 0.0f | |||
) | [virtual] |
bool ParameterCorrection::DoInitialParameterCorrection | ( | float | fSizeFactor = 0.0f |
) | [protected, virtual] |
Berechnet eine initiale Fläche zu Beginn des Algorithmus.
Dazu wird die Ausgleichsebene zu der Punktwolke berechnet. Die Punkte werden bzgl. der Basis bestehend aus den Eigenvektoren der Kovarianzmatrix berechnet und auf die Ausgleichsebene projiziert. Von diesen Punkten wird die Boundingbox berechnet, dann werden die u/v-Parameter für die Punkte berechnet.
Definition at line 623 of file ApproxSurface.cpp.
References _bGetUVDir, _bSmoothing, _fSmoothInfluence, CalcEigenvectors(), GetUVParameters(), SolveWithoutSmoothing(), and SolveWithSmoothing().
virtual void Reen::ParameterCorrection::DoParameterCorrection | ( | unsigned short | usIter | ) | [protected, pure virtual] |
Führt eine Parameterkorrektur durch.
Implemented in Reen::BSplineParameterCorrection.
void ParameterCorrection::EnableSmoothing | ( | bool | bSmooth = true , |
|
float | fSmoothInfl = 1.0f | |||
) | [virtual] |
Verwende Glättungsterme.
Reimplemented in Reen::BSplineParameterCorrection.
Definition at line 777 of file ApproxSurface.cpp.
References _bSmoothing, and _fSmoothInfluence.
Base::Vector3f ParameterCorrection::GetGravityPoint | ( | void | ) | const [virtual] |
Definition at line 729 of file ApproxSurface.cpp.
References _pvcPoints, MovieTool::x, and MovieTool::y.
bool ParameterCorrection::GetUVParameters | ( | float | fSizeFactor | ) | [protected, virtual] |
Berechnet die u.v-Werte der Punkte.
Definition at line 644 of file ApproxSurface.cpp.
References _clU, _clV, _clW, _pvcPoints, _pvcUVParam, FemExample::b, SketcherExample::f, Base::BoundBox2D::fMaxX, Base::BoundBox2D::fMaxY, Base::BoundBox2D::fMinX, Base::BoundBox2D::fMinY, Wm4::Vector3< Real >::X(), and Wm4::Vector3< Real >::Y().
Referenced by DoInitialParameterCorrection().
void ParameterCorrection::GetUVW | ( | Base::Vector3f & | clU, | |
Base::Vector3f & | clV, | |||
Base::Vector3f & | clW | |||
) | const [virtual] |
Gibt die u/v/w-Richtungen zurück.
Definition at line 722 of file ApproxSurface.cpp.
void ParameterCorrection::SetUVW | ( | const Base::Vector3f & | clU, | |
const Base::Vector3f & | clV, | |||
const Base::Vector3f & | clW, | |||
bool | bUseDir = true | |||
) | [virtual] |
Setzen der u/v-Richtungen Dritter Parameter gibt an, ob die Richtungen tatsächlich verwendet werden sollen.
Definition at line 714 of file ApproxSurface.cpp.
References _bGetUVDir, _clU, _clV, and _clW.
virtual bool Reen::ParameterCorrection::SolveWithoutSmoothing | ( | ) | [protected, pure virtual] |
Löst Gleichungssystem.
Implemented in Reen::BSplineParameterCorrection.
Referenced by DoInitialParameterCorrection().
virtual bool Reen::ParameterCorrection::SolveWithSmoothing | ( | float | fWeight | ) | [protected, pure virtual] |
Löst ein reguläres Gleichungssystem.
Implemented in Reen::BSplineParameterCorrection.
Referenced by DoInitialParameterCorrection().
bool Reen::ParameterCorrection::_bGetUVDir [protected] |
Definition at line 319 of file ApproxSurface.h.
Referenced by DoInitialParameterCorrection(), ParameterCorrection(), and SetUVW().
bool Reen::ParameterCorrection::_bSmoothing [protected] |
Stellt fest, ob u/v-Richtung vorgegeben wird.
Definition at line 320 of file ApproxSurface.h.
Referenced by DoInitialParameterCorrection(), Reen::BSplineParameterCorrection::DoParameterCorrection(), Reen::BSplineParameterCorrection::EnableSmoothing(), EnableSmoothing(), and ParameterCorrection().
Base::Vector3f Reen::ParameterCorrection::_clU [protected] |
Anzahl der Kontrollpunkte in v-Richtung.
Definition at line 326 of file ApproxSurface.h.
Referenced by CalcEigenvectors(), GetUVParameters(), GetUVW(), and SetUVW().
Base::Vector3f Reen::ParameterCorrection::_clV [protected] |
u-Richtung
Definition at line 327 of file ApproxSurface.h.
Referenced by CalcEigenvectors(), GetUVParameters(), GetUVW(), and SetUVW().
Base::Vector3f Reen::ParameterCorrection::_clW [protected] |
v-Richtung
Definition at line 328 of file ApproxSurface.h.
Referenced by CalcEigenvectors(), GetUVParameters(), GetUVW(), and SetUVW().
float Reen::ParameterCorrection::_fSmoothInfluence [protected] |
Glättung verwenden.
Definition at line 321 of file ApproxSurface.h.
Referenced by DoInitialParameterCorrection(), Reen::BSplineParameterCorrection::DoParameterCorrection(), EnableSmoothing(), and ParameterCorrection().
TColgp_Array1OfPnt* Reen::ParameterCorrection::_pvcPoints [protected] |
w-Richtung (senkrecht zu u-und w-Richtung)
Definition at line 329 of file ApproxSurface.h.
Referenced by CalcEigenvectors(), Reen::BSplineParameterCorrection::DoParameterCorrection(), GetGravityPoint(), GetUVParameters(), Reen::BSplineParameterCorrection::Init(), Reen::BSplineParameterCorrection::SolveWithoutSmoothing(), and Reen::BSplineParameterCorrection::SolveWithSmoothing().
TColgp_Array1OfPnt2d* Reen::ParameterCorrection::_pvcUVParam [protected] |
Punktliste der Rohdaten.
Definition at line 330 of file ApproxSurface.h.
Referenced by Reen::BSplineParameterCorrection::DoParameterCorrection(), GetUVParameters(), Reen::BSplineParameterCorrection::Init(), Reen::BSplineParameterCorrection::SolveWithoutSmoothing(), and Reen::BSplineParameterCorrection::SolveWithSmoothing().
unsigned short Reen::ParameterCorrection::_usUCtrlpoints [protected] |
Ordnung in v-Richtung.
Definition at line 324 of file ApproxSurface.h.
Referenced by Reen::BSplineParameterCorrection::CalcFirstSmoothMatrix(), Reen::BSplineParameterCorrection::CalcSecondSmoothMatrix(), Reen::BSplineParameterCorrection::CalcSmoothingTerms(), Reen::BSplineParameterCorrection::CalcThirdSmoothMatrix(), Reen::BSplineParameterCorrection::Init(), Reen::BSplineParameterCorrection::SetUKnots(), Reen::BSplineParameterCorrection::SolveWithoutSmoothing(), and Reen::BSplineParameterCorrection::SolveWithSmoothing().
unsigned short Reen::ParameterCorrection::_usUOrder [protected] |
Einfluß der Glättung.
Definition at line 322 of file ApproxSurface.h.
Referenced by Reen::BSplineParameterCorrection::DoParameterCorrection(), Reen::BSplineParameterCorrection::Init(), and Reen::BSplineParameterCorrection::SetUKnots().
unsigned short Reen::ParameterCorrection::_usVCtrlpoints [protected] |
Anzahl der Kontrollpunkte in u-Richtung.
Definition at line 325 of file ApproxSurface.h.
Referenced by Reen::BSplineParameterCorrection::CalcFirstSmoothMatrix(), Reen::BSplineParameterCorrection::CalcSecondSmoothMatrix(), Reen::BSplineParameterCorrection::CalcSmoothingTerms(), Reen::BSplineParameterCorrection::CalcThirdSmoothMatrix(), Reen::BSplineParameterCorrection::Init(), Reen::BSplineParameterCorrection::SetVKnots(), Reen::BSplineParameterCorrection::SolveWithoutSmoothing(), and Reen::BSplineParameterCorrection::SolveWithSmoothing().
unsigned short Reen::ParameterCorrection::_usVOrder [protected] |
Ordnung in u-Richtung.
Definition at line 323 of file ApproxSurface.h.
Referenced by Reen::BSplineParameterCorrection::DoParameterCorrection(), Reen::BSplineParameterCorrection::Init(), and Reen::BSplineParameterCorrection::SetVKnots().
TColgp_Array2OfPnt Reen::ParameterCorrection::_vCtrlPntsOfSurf [protected] |
Parameterwerte zu den Punkten aus der Liste.
Definition at line 331 of file ApproxSurface.h.
Referenced by Reen::BSplineParameterCorrection::DoParameterCorrection(), Reen::BSplineParameterCorrection::SolveWithoutSmoothing(), and Reen::BSplineParameterCorrection::SolveWithSmoothing().
TColStd_Array1OfReal Reen::ParameterCorrection::_vUKnots [protected] |
Array von Kontrollpunkten.
Definition at line 332 of file ApproxSurface.h.
Referenced by Reen::BSplineParameterCorrection::DoParameterCorrection(), Reen::BSplineParameterCorrection::Init(), and Reen::BSplineParameterCorrection::SetUKnots().
TColStd_Array1OfInteger Reen::ParameterCorrection::_vUMults [protected] |
Knotenvektor der B-Spline-Fläche in v-Richtung.
Definition at line 334 of file ApproxSurface.h.
Referenced by Reen::BSplineParameterCorrection::DoParameterCorrection(), Reen::BSplineParameterCorrection::Init(), and Reen::BSplineParameterCorrection::SetUKnots().
TColStd_Array1OfReal Reen::ParameterCorrection::_vVKnots [protected] |
Knotenvektor der B-Spline-Fläche in u-Richtung.
Definition at line 333 of file ApproxSurface.h.
Referenced by Reen::BSplineParameterCorrection::DoParameterCorrection(), Reen::BSplineParameterCorrection::Init(), and Reen::BSplineParameterCorrection::SetVKnots().
TColStd_Array1OfInteger Reen::ParameterCorrection::_vVMults [protected] |
Vielfachheit der Knoten im Knotenvektor.
Definition at line 335 of file ApproxSurface.h.
Referenced by Reen::BSplineParameterCorrection::DoParameterCorrection(), Reen::BSplineParameterCorrection::Init(), and Reen::BSplineParameterCorrection::SetVKnots().