12#ifndef EASY3D_ALGO_SURFACE_MESH_CURVATURE_H
13#define EASY3D_ALGO_SURFACE_MESH_CURVATURE_H
15#include <easy3d/core/surface_mesh.h>
40 void analyze(
unsigned int post_smoothing_steps = 0);
47 void analyze_tensor(
unsigned int post_smoothing_steps = 0,
bool two_ring_neighborhood =
false);
69 return 0.5f * (min_curvature_[v] + max_curvature_[v]);
74 return min_curvature_[v] * max_curvature_[v];
85 return std::max(fabs(min_curvature_[v]), fabs(max_curvature_[v]));
90 void smooth_curvatures(
unsigned int iterations);
Compute per-vertex curvatures, i.e., principle (min, max), mean, Gaussian.
Definition: surface_mesh_curvature.h:29
void compute_gauss_curvature()
Definition: surface_mesh_curvature.cpp:333
void compute_max_abs_curvature()
Definition: surface_mesh_curvature.cpp:341
float min_curvature(SurfaceMesh::Vertex v) const
return minimum (signed) curvature
Definition: surface_mesh_curvature.h:78
void compute_mean_curvature()
Definition: surface_mesh_curvature.cpp:323
float max_abs_curvature(SurfaceMesh::Vertex v) const
return maximum absolute curvature
Definition: surface_mesh_curvature.h:84
float max_curvature(SurfaceMesh::Vertex v) const
return maximum (signed) curvature
Definition: surface_mesh_curvature.h:81
float gauss_curvature(SurfaceMesh::Vertex v) const
return Gaussian curvature
Definition: surface_mesh_curvature.h:73
void analyze(unsigned int post_smoothing_steps=0)
Definition: surface_mesh_curvature.cpp:30
float mean_curvature(SurfaceMesh::Vertex v) const
return mean curvature
Definition: surface_mesh_curvature.h:68
void analyze_tensor(unsigned int post_smoothing_steps=0, bool two_ring_neighborhood=false)
Definition: surface_mesh_curvature.cpp:122
A halfedge data structure for polygonal meshes of 2-manifold.
Definition: surface_mesh.h:52
Definition: collider.cpp:182
Definition: surface_mesh.h:104