Public Member Functions | Private Member Functions | Private Attributes
quadricFitting Class Reference
Collaboration diagram for quadricFitting:
Collaboration graph
[legend]

Public Member Functions

template<class ListType >
 quadricFitting (const point &, const vector, const ListType &)
 Construct from point, normal, and neighbouring points. More...
 
template<class ListType >
 quadricFitting (const point &, const ListType &)
 Construct from point and other points. More...
 
 ~quadricFitting ()
 
const vectornormal () const
 Return surface normal. More...
 
scalar minCurvature () const
 Return min curvature. More...
 
scalar maxCurvature () const
 Return max curvature. More...
 
scalar meanCurvature () const
 Return mean curvature. More...
 
scalar gaussianCurvature () const
 Return Gaussian curvature. More...
 
vector minCurvatureVector () const
 Return min curvature vector. More...
 
vector maxCurvatureVector () const
 Return max curvature vector. More...
 

Private Member Functions

void calculateNormalVector ()
 initial estimate of the normal vector More...
 
void calculateCoordinateSystem ()
 calculate transformed coordinate system More...
 
void calculateQuadricCoeffs ()
 calculate coefficients of the quadric surface fit More...
 
void calculateBestFit ()
 

Private Attributes

point origin_
 seed point for fitting the quadric surface More...
 
vector normal_
 normal vector at the origin More...
 
vector vecX_
 x-coordinate vector for the transformed coordinate system More...
 
vector vecY_
 y-coordinate vector for the transformed coordinate system More...
 
DynList< pointotherPoints_
 other points More...
 
DynList< pointtransformedPoints_
 transformed coordinates of other points More...
 
scalarField coefficients_
 coefficients of the quadric surface More...
 

Detailed Description

Definition at line 51 of file quadricFitting.H.

Constructor & Destructor Documentation

◆ quadricFitting() [1/2]

quadricFitting ( const point origin,
const vector  normal,
const ListType &  otherPoints 
)
inline

Construct from point, normal, and neighbouring points.

Definition at line 201 of file quadricFittingI.H.

References Foam::exit(), Foam::FatalError, FatalErrorIn, forAll, Foam::mag(), Foam::magSqr(), and Vector< scalar >::zero.

Here is the call graph for this function:

◆ quadricFitting() [2/2]

quadricFitting ( const point origin,
const ListType &  otherPoints 
)
inline

Construct from point and other points.

Definition at line 245 of file quadricFittingI.H.

References forAll.

◆ ~quadricFitting()

~quadricFitting ( )
inline

Definition at line 267 of file quadricFittingI.H.

Member Function Documentation

◆ calculateNormalVector()

void calculateNormalVector ( )
private

initial estimate of the normal vector

find the eigenvalues of the tensor

estimate the normal as the eigenvector associated to the smallest eigenvalue

Definition at line 37 of file quadricFittingI.H.

References Foam::eigenValues(), Foam::eigenVector(), forAll, quadricFitting::normal_, quadricFitting::origin_, quadricFitting::otherPoints_, Foam::symm(), and SymmTensor< scalar >::zero.

Here is the call graph for this function:

◆ calculateCoordinateSystem()

void calculateCoordinateSystem ( )
private

calculate transformed coordinate system

transform other points to this new coordinate system

Definition at line 58 of file quadricFittingI.H.

References delta, Foam::endl(), FatalErrorIn, forAll, Foam::mag(), Foam::magSqr(), plane::nearestPoint(), quadricFitting::normal_, quadricFitting::origin_, quadricFitting::otherPoints_, p, quadricFitting::transformedPoints_, quadricFitting::vecX_, quadricFitting::vecY_, and Vector< scalar >::zero.

Referenced by quadricFitting::calculateBestFit().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculateQuadricCoeffs()

void calculateQuadricCoeffs ( )
private

calculate coefficients of the quadric surface fit

Definition at line 114 of file quadricFittingI.H.

References quadricFitting::coefficients_, forAll, simpleMatrix::LUsolve(), Foam::mag(), quadricFitting::normal_, p, DynList< T, staticSize >::setSize(), simpleMatrix::source(), Foam::sqr(), and quadricFitting::transformedPoints_.

Referenced by quadricFitting::calculateBestFit().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculateBestFit()

void calculateBestFit ( )
private

◆ normal()

const vector & normal ( ) const
inline

Return surface normal.

Definition at line 273 of file quadricFittingI.H.

References quadricFitting::normal_.

◆ minCurvature()

scalar minCurvature ( ) const
inline

Return min curvature.

Definition at line 279 of file quadricFittingI.H.

References quadricFitting::coefficients_, Foam::sqr(), and Foam::sqrt().

Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures(), quadricFitting::gaussianCurvature(), and quadricFitting::meanCurvature().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ maxCurvature()

scalar maxCurvature ( ) const
inline

Return max curvature.

Definition at line 289 of file quadricFittingI.H.

References quadricFitting::coefficients_, Foam::sqr(), and Foam::sqrt().

Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures(), quadricFitting::gaussianCurvature(), and quadricFitting::meanCurvature().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ meanCurvature()

scalar meanCurvature ( ) const
inline

Return mean curvature.

Definition at line 299 of file quadricFittingI.H.

References quadricFitting::maxCurvature(), and quadricFitting::minCurvature().

Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gaussianCurvature()

scalar gaussianCurvature ( ) const
inline

Return Gaussian curvature.

Definition at line 305 of file quadricFittingI.H.

References quadricFitting::maxCurvature(), and quadricFitting::minCurvature().

Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ minCurvatureVector()

vector minCurvatureVector ( ) const
inline

Return min curvature vector.

Definition at line 311 of file quadricFittingI.H.

References Foam::atan(), quadricFitting::coefficients_, Foam::cos(), Foam::sin(), Foam::stabilise(), quadricFitting::vecX_, and quadricFitting::vecY_.

Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ maxCurvatureVector()

vector maxCurvatureVector ( ) const
inline

Return max curvature vector.

Definition at line 324 of file quadricFittingI.H.

References Foam::atan(), quadricFitting::coefficients_, Foam::cos(), Foam::sin(), Foam::stabilise(), quadricFitting::vecX_, and quadricFitting::vecY_.

Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures().

Here is the call graph for this function:
Here is the caller graph for this function:

Field Documentation

◆ origin_

point origin_
private

seed point for fitting the quadric surface

Definition at line 55 of file quadricFitting.H.

Referenced by quadricFitting::calculateCoordinateSystem(), and quadricFitting::calculateNormalVector().

◆ normal_

vector normal_
private

◆ vecX_

vector vecX_
private

x-coordinate vector for the transformed coordinate system

Definition at line 61 of file quadricFitting.H.

Referenced by quadricFitting::calculateBestFit(), quadricFitting::calculateCoordinateSystem(), quadricFitting::maxCurvatureVector(), and quadricFitting::minCurvatureVector().

◆ vecY_

vector vecY_
private

y-coordinate vector for the transformed coordinate system

Definition at line 64 of file quadricFitting.H.

Referenced by quadricFitting::calculateBestFit(), quadricFitting::calculateCoordinateSystem(), quadricFitting::maxCurvatureVector(), and quadricFitting::minCurvatureVector().

◆ otherPoints_

DynList<point> otherPoints_
private

◆ transformedPoints_

DynList<point> transformedPoints_
private

transformed coordinates of other points

Definition at line 70 of file quadricFitting.H.

Referenced by quadricFitting::calculateBestFit(), quadricFitting::calculateCoordinateSystem(), and quadricFitting::calculateQuadricCoeffs().

◆ coefficients_

scalarField coefficients_
private

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