OMToolkit
1.0
The polygonal mesh processing tool.
|
#include <OMCurvature.h>
Public Member Functions | |
OMCurvature (Mesh *mesh, OpenMesh::VPropHandleT< Normal > &curvVectorHandle, OpenMesh::VPropHandleT< Scalar > &curvMagHandle) | |
bool | calcMeanCurvature () |
bool | calcGaussCurvature () |
bool | calcMinCurvature () |
bool | calcMaxCurvature () |
Protected Types | |
typedef Mesh::Normal | Normal |
typedef Mesh::VertexHandle | VertexHandle |
typedef Mesh::FaceHandle | FaceHandle |
typedef Mesh::HalfedgeHandle | HalfedgeHandle |
typedef Eigen::Matrix< Scalar, 3, 3 > | Matrix3x3 |
typedef Eigen::Matrix< Scalar, 2, 2 > | Matrix2x2 |
typedef Eigen::Matrix< Scalar, 1, 3 > | RowVector3 |
typedef Eigen::Matrix< Scalar, 1, 2 > | RowVector2 |
typedef Eigen::Matrix< Scalar, 3, 1 > | ColumnVector3 |
typedef Eigen::Matrix< Scalar, 3, 1 > | ColumnVector2 |
typedef OpenMesh::VectorT < Scalar, 3 > | AreasVector |
Protected Member Functions | |
void | getCurvatureDirections (VertexHandle vertex, Normal &max, Normal &min) |
Scalar | getVoronoiArea (VertexHandle vertex) |
Normal | getMeanOperator (VertexHandle vertex) |
Scalar | getGaussOperator (VertexHandle vertex) |
Scalar | getVoronoiAreaTri (FaceHandle face, VertexHandle vertex) |
Scalar | getVoronoiAreaTriO (FaceHandle face, VertexHandle vertex) |
bool | isObtuse (FaceHandle face, HalfedgeHandle &half_edge) |
Protected Attributes | |
Mesh * | m_mesh |
OpenMesh::VPropHandleT< Normal > | m_curvVectorHandle |
OpenMesh::VPropHandleT< Scalar > | m_curvMagHandle |
OpenMesh::FPropHandleT < AreasVector > | m_areas |
Class computes curvatures on a mesh
Mesh | Mesh type to work with |
Scalar | type of computed curvature |
|
protected |
Precomputed voronoi area vector for each face
|
protected |
Eigen column vector 2D
|
protected |
Eigen column vector 3D
|
protected |
Mesh face handle type
|
protected |
Mesh halfedge handle type
|
protected |
Eigen matrix 2x2
|
protected |
Eigen matrix 3x3
|
protected |
Mesh vector type
|
protected |
Eigen row vector 2D
|
protected |
Eigen row vector 3D
|
protected |
Mesh vertex handle type
OMCurvature::OMCurvature | ( | Mesh * | mesh, |
OpenMesh::VPropHandleT< Normal > & | curvVectorHandle, | ||
OpenMesh::VPropHandleT< Scalar > & | curvMagHandle | ||
) |
Constructor - create an instance of this class
mesh | Mesh to work with |
curvVectorHandle | Handle to a curvature direction vertex property |
curvMagHandle | Handle to a curvature magnitude vertex property |
bool OMCurvature::calcGaussCurvature | ( | ) |
Calculates Gauss curvature and for all mesh vertices
bool OMCurvature::calcMaxCurvature | ( | ) |
Calculates maximal curvature and for all mesh vertices
bool OMCurvature::calcMeanCurvature | ( | ) |
Calculates mean curvature and its direction for all mesh vertices
bool OMCurvature::calcMinCurvature | ( | ) |
Calculates minimal curvature and for all mesh vertices
|
protected |
Function returns principal curvature directions for specified vertex Computation from paper of Gabriel Taubin - Estimating the tenspr of curvature of a surface from a polyhedral approximation
vertex | Vertex handle |
max | maximum curvature direction vector |
min | minimum curvature direction vector |
|
protected |
Computes Gauss curvature value for specified vertex
vertex | Vertex handle |
|
protected |
Computes mean curvature operator (vector, which direction equals mean curvature direction, its norm equals 2*mean curvature) for specified vertex
vertex | Vertex handle |
|
protected |
Returns area of voronoi region aroun specified vertex
vertex | Vertex handle |
|
protected |
Computes voronoi area of non-obtuse triangle from given vertex
face | Given triangle |
face | Vertex handle |
|
protected |
Computes voronoi area of obtuse triangle from given vertex
face | Given triangle |
face | Vertex handle |
|
protected |
Predicate, is triangle obtuse? (Is one of its angles obtuse?)
face | Specified triangle |
half_edge | Half edge handle pointing on found obtuse angle (if not obtuse, it is not specified) |
|
protected |
Precomputed voronoi area property handle
|
protected |
Curvature magnitude property handle
|
protected |
Curvature direction property handle
|
protected |
Intern pointer to a mesh