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 vector & | normal () 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< point > | otherPoints_ |
other points More... | |
DynList< point > | transformedPoints_ |
transformed coordinates of other points More... | |
scalarField | coefficients_ |
coefficients of the quadric surface More... | |
Definition at line 51 of file quadricFitting.H.
|
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.
|
inline |
Construct from point and other points.
Definition at line 245 of file quadricFittingI.H.
References forAll.
|
inline |
Definition at line 267 of file quadricFittingI.H.
|
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.
|
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().
|
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().
|
private |
iterative procedure for updating normals until the best fit is achieved
correct the normal
Definition at line 158 of file quadricFittingI.H.
References quadricFitting::calculateCoordinateSystem(), quadricFitting::calculateQuadricCoeffs(), quadricFitting::coefficients_, Foam::endl(), Foam::Info, Foam::mag(), quadricFitting::normal_, quadricFitting::otherPoints_, Foam::sqr(), Foam::sqrt(), quadricFitting::transformedPoints_, quadricFitting::vecX_, and quadricFitting::vecY_.
Return surface normal.
Definition at line 273 of file quadricFittingI.H.
References quadricFitting::normal_.
|
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().
|
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().
|
inline |
Return mean curvature.
Definition at line 299 of file quadricFittingI.H.
References quadricFitting::maxCurvature(), and quadricFitting::minCurvature().
Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures().
|
inline |
Return Gaussian curvature.
Definition at line 305 of file quadricFittingI.H.
References quadricFitting::maxCurvature(), and quadricFitting::minCurvature().
Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures().
|
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().
|
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().
|
private |
seed point for fitting the quadric surface
Definition at line 55 of file quadricFitting.H.
Referenced by quadricFitting::calculateCoordinateSystem(), and quadricFitting::calculateNormalVector().
|
private |
normal vector at the origin
Definition at line 58 of file quadricFitting.H.
Referenced by quadricFitting::calculateBestFit(), quadricFitting::calculateCoordinateSystem(), quadricFitting::calculateNormalVector(), quadricFitting::calculateQuadricCoeffs(), and quadricFitting::normal().
|
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().
|
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().
other points
Definition at line 67 of file quadricFitting.H.
Referenced by quadricFitting::calculateBestFit(), quadricFitting::calculateCoordinateSystem(), and quadricFitting::calculateNormalVector().
transformed coordinates of other points
Definition at line 70 of file quadricFitting.H.
Referenced by quadricFitting::calculateBestFit(), quadricFitting::calculateCoordinateSystem(), and quadricFitting::calculateQuadricCoeffs().
|
private |
coefficients of the quadric surface
Definition at line 73 of file quadricFitting.H.
Referenced by quadricFitting::calculateBestFit(), quadricFitting::calculateQuadricCoeffs(), quadricFitting::maxCurvature(), quadricFitting::maxCurvatureVector(), quadricFitting::minCurvature(), and quadricFitting::minCurvatureVector().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.