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