Easy3D 2.6.1
Loading...
Searching...
No Matches
SurfaceMeshCurvature Class Reference

Compute per-vertex curvatures, i.e., principle (min, max), mean, Gaussian. More...

#include <easy3d/algo/surface_mesh_curvature.h>

Public Member Functions

 SurfaceMeshCurvature (SurfaceMesh *mesh)
 Constructor that initializes the curvature analysis with a given mesh.
 
 ~SurfaceMeshCurvature ()
 Destructor.
 
void analyze (unsigned int post_smoothing_steps=0)
 Computes principle curvature information for each vertex.
 
void analyze_tensor (unsigned int post_smoothing_steps=0, bool two_ring_neighborhood=false)
 Computes principle curvature information for each vertex using tensor analysis.
 
void compute_mean_curvature ()
 
void compute_gauss_curvature ()
 
void compute_max_abs_curvature ()
 Computes the maximum absolute curvature.
 
float mean_curvature (SurfaceMesh::Vertex v) const
 Returns the mean curvature of a given vertex.
 
float gauss_curvature (SurfaceMesh::Vertex v) const
 Returns the Gaussian curvature of a given vertex.
 
float min_curvature (SurfaceMesh::Vertex v) const
 Returns the minimum (signed) curvature of a given vertex.
 
float max_curvature (SurfaceMesh::Vertex v) const
 Returns the maximum (signed) curvature of a given vertex.
 
float max_abs_curvature (SurfaceMesh::Vertex v) const
 Returns the maximum absolute curvature of a given vertex.
 

Detailed Description

Compute per-vertex curvatures, i.e., principle (min, max), mean, Gaussian.

Curvature values for boundary vertices are interpolated from their interior neighbors. Curvature values can be smoothed. For more details, please refer to the following papers:

  • Discrete Differential-Geometry Operators for Triangulated 2-Manifolds. Meyer et al. 2003.
  • Restricted Delaunay triangulations and normal cycle. Cohen-Steiner and Morvan. 2003.

Constructor & Destructor Documentation

◆ SurfaceMeshCurvature()

SurfaceMeshCurvature ( SurfaceMesh * mesh)
explicit

Constructor that initializes the curvature analysis with a given mesh.

Parameters
meshThe surface mesh to analyze.

Member Function Documentation

◆ analyze()

void analyze ( unsigned int post_smoothing_steps = 0)

Computes principle curvature information for each vertex.

Parameters
post_smoothing_stepsNumber of smoothing iterations to apply after computing curvatures.

Upon finish, the principle curvatures are stored as vertex properties "v:curv-min" and "v:curv-max".

◆ analyze_tensor()

void analyze_tensor ( unsigned int post_smoothing_steps = 0,
bool two_ring_neighborhood = false )

Computes principle curvature information for each vertex using tensor analysis.

Parameters
post_smoothing_stepsNumber of smoothing iterations to apply after computing curvatures.
two_ring_neighborhoodIf true, uses a two-ring neighborhood for the analysis.

Upon finish, the principle curvatures are stored as vertex properties "v:curv-min" and "v:curv-max".

◆ compute_gauss_curvature()

void compute_gauss_curvature ( )

Computes the Gaussian curvature.

Attention
This function must be called after calling to the "analyze" function.

◆ compute_max_abs_curvature()

void compute_max_abs_curvature ( )

Computes the maximum absolute curvature.

Attention
This function must be called after calling the "analyze" function.

◆ compute_mean_curvature()

void compute_mean_curvature ( )

Computes the mean curvature.

Attention
This function must be called after calling to the "analyze" function.

◆ gauss_curvature()

float gauss_curvature ( SurfaceMesh::Vertex v) const
inline

Returns the Gaussian curvature of a given vertex.

Parameters
vThe vertex for which to return the Gaussian curvature.
Returns
The Gaussian curvature.

◆ max_abs_curvature()

float max_abs_curvature ( SurfaceMesh::Vertex v) const
inline

Returns the maximum absolute curvature of a given vertex.

Parameters
vThe vertex for which to return the maximum absolute curvature.
Returns
The maximum absolute curvature.

◆ max_curvature()

float max_curvature ( SurfaceMesh::Vertex v) const
inline

Returns the maximum (signed) curvature of a given vertex.

Parameters
vThe vertex for which to return the maximum curvature.
Returns
The maximum curvature.

◆ mean_curvature()

float mean_curvature ( SurfaceMesh::Vertex v) const
inline

Returns the mean curvature of a given vertex.

Parameters
vThe vertex for which to return the mean curvature.
Returns
The mean curvature.

◆ min_curvature()

float min_curvature ( SurfaceMesh::Vertex v) const
inline

Returns the minimum (signed) curvature of a given vertex.

Parameters
vThe vertex for which to return the minimum curvature.
Returns
The minimum curvature.

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