Reen::BSplineParameterCorrection Class Reference

Diese Klasse berechnet auf einer beliebigen Punktwolke (auch scattered data) eine B-Spline-Fl�che. More...

#include <ApproxSurface.h>

Inheritance diagram for Reen::BSplineParameterCorrection:
Reen::ParameterCorrection

List of all members.

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.

Detailed Description

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.


Constructor & Destructor Documentation

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.


Member Function Documentation

void BSplineParameterCorrection::CalcFirstSmoothMatrix ( Base::SequencerLauncher seq  )  [protected, virtual]
void BSplineParameterCorrection::CalcSecondSmoothMatrix ( Base::SequencerLauncher seq  )  [protected, virtual]
void BSplineParameterCorrection::CalcSmoothingTerms ( bool  bRecalc,
float  fFirst,
float  fSecond,
float  fThird 
) [protected, virtual]
void BSplineParameterCorrection::CalcThirdSmoothMatrix ( Base::SequencerLauncher seq  )  [protected, virtual]
void BSplineParameterCorrection::DoParameterCorrection ( unsigned short  usIter  )  [protected, virtual]
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]
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  ) 
void BSplineParameterCorrection::SetVKnots ( const std::vector< float > &  afKnots  ) 
bool BSplineParameterCorrection::SolveWithoutSmoothing (  )  [protected, virtual]
bool BSplineParameterCorrection::SolveWithSmoothing ( float  fWeight  )  [protected, virtual]

Member Data Documentation

Matrix der Gl�ttungsfunktionale.

Definition at line 463 of file ApproxSurface.h.

Referenced by CalcFirstSmoothMatrix(), CalcSmoothingTerms(), GetFirstSmoothMatrix(), Init(), and SetFirstSmoothMatrix().

Matrix der 1. Gl�ttungsfunktionale.

Definition at line 464 of file ApproxSurface.h.

Referenced by CalcSecondSmoothMatrix(), CalcSmoothingTerms(), GetSecondSmoothMatrix(), Init(), and SetSecondSmoothMatrix().

B-Spline-Basisfunktion in v-Richtung.

Definition at line 462 of file ApproxSurface.h.

Referenced by CalcSmoothingTerms(), Init(), and SolveWithSmoothing().

Matrix der 2. Gl�ttungsfunktionale.

Definition at line 465 of file ApproxSurface.h.

Referenced by CalcSmoothingTerms(), CalcThirdSmoothMatrix(), GetThirdSmoothMatrix(), Init(), and SetThirdSmoothMatrix().

B-Spline-Basisfunktion in u-Richtung.

Definition at line 461 of file ApproxSurface.h.

Referenced by CalcFirstSmoothMatrix(), CalcSecondSmoothMatrix(), CalcThirdSmoothMatrix(), Init(), SetVKnots(), SolveWithoutSmoothing(), and SolveWithSmoothing().


The documentation for this class was generated from the following files:

Generated on Wed Nov 23 19:02:45 2011 for FreeCAD by  doxygen 1.6.1