12#ifndef EASY3D_ALGO_SURFACE_MESH_SMOOTHING_H
13#define EASY3D_ALGO_SURFACE_MESH_SMOOTHING_H
15#include <easy3d/core/surface_mesh.h>
37 bool use_uniform_laplace =
false);
43 bool use_uniform_laplace =
false,
48 compute_edge_weights(use_uniform_laplace);
49 compute_vertex_weights(use_uniform_laplace);
54 void compute_edge_weights(
bool use_uniform_laplace);
57 void compute_vertex_weights(
bool use_uniform_laplace);
65 unsigned int how_many_edge_weights_;
A halfedge data structure for polygonal meshes of 2-manifold.
Definition: surface_mesh.h:52
A class for Laplacian smoothing.See the following papers for more details:
Definition: surface_mesh_smoothing.h:26
void initialize(bool use_uniform_laplace=false)
Initialize edge and vertex weights.
Definition: surface_mesh_smoothing.h:47
void implicit_smoothing(float timestep=0.001, bool use_uniform_laplace=false, bool rescale=true)
Perform implicit Laplacian smoothing with timestep. Decide whether to use uniform Laplacian or cotan ...
Definition: surface_mesh_smoothing.cpp:127
SurfaceMeshSmoothing(SurfaceMesh *mesh)
Construct with mesh to be smoothed.
Definition: surface_mesh_smoothing.cpp:29
void explicit_smoothing(unsigned int iters=10, bool use_uniform_laplace=false)
Perform iters iterations of explicit Laplacian smoothing. Decide whether to use uniform Laplacian or ...
Definition: surface_mesh_smoothing.cpp:77
Definition: collider.cpp:182