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

Public Member Functions

 triSurfaceCurvatureEstimator (const triSurf &surface)
 Construct from triSurface. More...
 
 ~triSurfaceCurvatureEstimator ()
 
scalar edgePointCurvature (const label) const
 return curvature of points at feature edges More...
 
scalar curvatureAtEdge (const label) const
 
scalar gaussianCurvatureAtTriangle (const label) const
 return average curvature on a surface triangle More...
 
scalar meanCurvatureAtTriangle (const label) const
 
scalar maxCurvatureAtTriangle (const label) const
 
scalar minCurvatureAtTriangle (const label) const
 
vector maxCurvatureVectorAtTriangle (const label) const
 
vector minCurvatureVectorAtTriangle (const label) const
 

Private Member Functions

void calculateEdgeCurvature ()
 calculate curvature of feature edges More...
 
void calculateSurfaceCurvatures ()
 calculate curvatures of other surface points More...
 
void calculateGaussianCurvature ()
 calculate Gaussian curvature More...
 
void calculateMeanCurvature ()
 calculation of mean curvature More...
 
void calculateMinAndMaxCurvature ()
 calculation of min and max curvature More...
 
 triSurfaceCurvatureEstimator (const triSurfaceCurvatureEstimator &)
 Disallow default bitwise copy construct. More...
 
void operator= (const triSurfaceCurvatureEstimator &)
 Disallow default bitwise assignment. More...
 

Private Attributes

const triSurfsurface_
 reference to triSurface More...
 
scalarField edgePointCurvature_
 curvature of points at feature edges More...
 
FRWGraph< label, 3 > patchPositions_
 curvatures of other points More...
 
List< DynList< scalar, 1 > > gaussianCurvature_
 
List< DynList< scalar, 1 > > meanCurvature_
 
List< DynList< scalar, 1 > > maxCurvature_
 
List< DynList< scalar, 1 > > minCurvature_
 
List< DynList< vector, 1 > > maxCurvatureVector_
 
List< DynList< vector, 1 > > minCurvatureVector_
 

Detailed Description

Definition at line 51 of file triSurfaceCurvatureEstimator.H.

Constructor & Destructor Documentation

◆ triSurfaceCurvatureEstimator() [1/2]

Disallow default bitwise copy construct.

◆ triSurfaceCurvatureEstimator() [2/2]

triSurfaceCurvatureEstimator ( const triSurf surface)

Construct from triSurface.

Definition at line 45 of file triSurfaceCurvatureEstimator.C.

◆ ~triSurfaceCurvatureEstimator()

Definition at line 66 of file triSurfaceCurvatureEstimator.C.

Member Function Documentation

◆ calculateEdgeCurvature()

void calculateEdgeCurvature ( )
private

calculate curvature of feature edges

mark feature edges

loop through the points and calculate the curvature for points attached to two feature edges

calculate the curvature and store it in the map

Definition at line 208 of file triSurfaceCurvatureEstimatorCalculate.C.

References Foam::acos(), DynList< T, staticSize >::append(), triSurfAddressing::edgeFacets(), triSurfaceCurvatureEstimator::edgePointCurvature_, triSurfAddressing::edges(), forAll, forAllRow, Foam::mag(), Foam::max(), Foam::min(), triSurfAddressing::pointEdges(), points, triSurfPoints::points(), LongList< T, Offset >::size(), DynList< T, staticSize >::size(), VRWGraph::sizeOfRow(), and triSurfaceCurvatureEstimator::surface_.

Here is the call graph for this function:

◆ calculateSurfaceCurvatures()

void calculateSurfaceCurvatures ( )
private

calculate curvatures of other surface points

store the patches

find the position of point in the patch triangles

store point coordinates

fit the quadric patch to the surface

store curvatures

smooth curvatures using weighted Laplace

find neighbouring points for each patch

update min curvature for all point patches

store the value

update Gaussian and mean curvatures

Definition at line 293 of file triSurfaceCurvatureEstimatorCalculate.C.

References DynList< T, staticSize >::append(), List::append(), Foam::constRow, Foam::endl(), forAll, forAllConstIter(), forAllIter, forAllRow, quadricFitting::gaussianCurvature(), triSurfaceCurvatureEstimator::gaussianCurvature_, Foam::Info, HashSet< Key, Hash >::insert(), Foam::mag(), quadricFitting::maxCurvature(), triSurfaceCurvatureEstimator::maxCurvature_, quadricFitting::maxCurvatureVector(), triSurfaceCurvatureEstimator::maxCurvatureVector_, quadricFitting::meanCurvature(), triSurfaceCurvatureEstimator::meanCurvature_, quadricFitting::minCurvature(), triSurfaceCurvatureEstimator::minCurvature_, quadricFitting::minCurvatureVector(), triSurfaceCurvatureEstimator::minCurvatureVector_, Foam::name(), triSurfaceCurvatureEstimator::patchPositions_, triSurfAddressing::pointFacets(), points, triSurfPoints::points(), Foam::pos(), labelledTri::region(), Foam::help::scalarToText(), FRWGraph< T, width >::setSize(), List::setSize(), triSurfFacets::size(), DynList< T, staticSize >::size(), triSurfaceCurvatureEstimator::surface_, Foam::writeSurfaceToVTK(), and Vector< scalar >::zero.

Here is the call graph for this function:

◆ calculateGaussianCurvature()

void calculateGaussianCurvature ( )
private

calculate Gaussian curvature

◆ calculateMeanCurvature()

void calculateMeanCurvature ( )
private

calculation of mean curvature

◆ calculateMinAndMaxCurvature()

void calculateMinAndMaxCurvature ( )
private

calculation of min and max curvature

◆ operator=()

void operator= ( const triSurfaceCurvatureEstimator )
private

Disallow default bitwise assignment.

◆ edgePointCurvature()

scalar edgePointCurvature ( const label  pI) const

return curvature of points at feature edges

Definition at line 71 of file triSurfaceCurvatureEstimator.C.

References triSurfaceCurvatureEstimator::edgePointCurvature_.

◆ curvatureAtEdge()

scalar curvatureAtEdge ( const label  edgeI) const

Definition at line 76 of file triSurfaceCurvatureEstimator.C.

References triSurfaceCurvatureEstimator::edgePointCurvature_, triSurfAddressing::edges(), edge::end(), edge::start(), and triSurfaceCurvatureEstimator::surface_.

Referenced by meshOctreeAutomaticRefinement::refineBasedOnCurvature().

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

◆ gaussianCurvatureAtTriangle()

scalar gaussianCurvatureAtTriangle ( const label  triI) const

return average curvature on a surface triangle

Definition at line 87 of file triSurfaceCurvatureEstimator.C.

◆ meanCurvatureAtTriangle()

scalar meanCurvatureAtTriangle ( const label  triI) const

Definition at line 102 of file triSurfaceCurvatureEstimator.C.

Referenced by meshOctreeAutomaticRefinement::refineBasedOnCurvature().

Here is the caller graph for this function:

◆ maxCurvatureAtTriangle()

scalar maxCurvatureAtTriangle ( const label  triI) const

Definition at line 117 of file triSurfaceCurvatureEstimator.C.

◆ minCurvatureAtTriangle()

scalar minCurvatureAtTriangle ( const label  triI) const

Definition at line 132 of file triSurfaceCurvatureEstimator.C.

◆ maxCurvatureVectorAtTriangle()

vector maxCurvatureVectorAtTriangle ( const label  triI) const

Definition at line 147 of file triSurfaceCurvatureEstimator.C.

References Vector< scalar >::zero.

◆ minCurvatureVectorAtTriangle()

vector minCurvatureVectorAtTriangle ( const label  triI) const

Definition at line 162 of file triSurfaceCurvatureEstimator.C.

References Vector< scalar >::zero.

Field Documentation

◆ surface_

const triSurf& surface_
private

◆ edgePointCurvature_

scalarField edgePointCurvature_
private

◆ patchPositions_

FRWGraph<label, 3> patchPositions_
private

curvatures of other points

Definition at line 61 of file triSurfaceCurvatureEstimator.H.

Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures().

◆ gaussianCurvature_

List<DynList<scalar, 1> > gaussianCurvature_
private

◆ meanCurvature_

List<DynList<scalar, 1> > meanCurvature_
private

◆ maxCurvature_

List<DynList<scalar, 1> > maxCurvature_
private

◆ minCurvature_

List<DynList<scalar, 1> > minCurvature_
private

◆ maxCurvatureVector_

List<DynList<vector, 1> > maxCurvatureVector_
private

◆ minCurvatureVector_

List<DynList<vector, 1> > minCurvatureVector_
private

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