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 triSurf & | surface_ |
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_ |
Definition at line 51 of file triSurfaceCurvatureEstimator.H.
|
private |
Disallow default bitwise copy construct.
triSurfaceCurvatureEstimator | ( | const triSurf & | surface | ) |
Construct from triSurface.
Definition at line 45 of file triSurfaceCurvatureEstimator.C.
Definition at line 66 of file triSurfaceCurvatureEstimator.C.
|
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_.
|
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.
|
private |
calculate Gaussian curvature
|
private |
calculation of mean curvature
|
private |
calculation of min and max curvature
|
private |
Disallow default bitwise assignment.
scalar edgePointCurvature | ( | const label | pI | ) | const |
return curvature of points at feature edges
Definition at line 71 of file triSurfaceCurvatureEstimator.C.
References triSurfaceCurvatureEstimator::edgePointCurvature_.
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().
scalar gaussianCurvatureAtTriangle | ( | const label | triI | ) | const |
return average curvature on a surface triangle
Definition at line 87 of file triSurfaceCurvatureEstimator.C.
scalar meanCurvatureAtTriangle | ( | const label | triI | ) | const |
Definition at line 102 of file triSurfaceCurvatureEstimator.C.
Referenced by meshOctreeAutomaticRefinement::refineBasedOnCurvature().
scalar maxCurvatureAtTriangle | ( | const label | triI | ) | const |
Definition at line 117 of file triSurfaceCurvatureEstimator.C.
scalar minCurvatureAtTriangle | ( | const label | triI | ) | const |
Definition at line 132 of file triSurfaceCurvatureEstimator.C.
Definition at line 147 of file triSurfaceCurvatureEstimator.C.
References Vector< scalar >::zero.
Definition at line 162 of file triSurfaceCurvatureEstimator.C.
References Vector< scalar >::zero.
|
private |
reference to triSurface
Definition at line 55 of file triSurfaceCurvatureEstimator.H.
Referenced by triSurfaceCurvatureEstimator::calculateEdgeCurvature(), triSurfaceCurvatureEstimator::calculateSurfaceCurvatures(), and triSurfaceCurvatureEstimator::curvatureAtEdge().
|
private |
curvature of points at feature edges
Definition at line 58 of file triSurfaceCurvatureEstimator.H.
Referenced by triSurfaceCurvatureEstimator::calculateEdgeCurvature(), triSurfaceCurvatureEstimator::curvatureAtEdge(), and triSurfaceCurvatureEstimator::edgePointCurvature().
curvatures of other points
Definition at line 61 of file triSurfaceCurvatureEstimator.H.
Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures().
Definition at line 62 of file triSurfaceCurvatureEstimator.H.
Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures().
Definition at line 63 of file triSurfaceCurvatureEstimator.H.
Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures().
Definition at line 64 of file triSurfaceCurvatureEstimator.H.
Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures().
Definition at line 65 of file triSurfaceCurvatureEstimator.H.
Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures().
Definition at line 66 of file triSurfaceCurvatureEstimator.H.
Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures().
Definition at line 67 of file triSurfaceCurvatureEstimator.H.
Referenced by triSurfaceCurvatureEstimator::calculateSurfaceCurvatures().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.