Class SurfaceSmoothing

Class Documentation

class SurfaceSmoothing

A class for Laplacian smoothing.

See also desbrun_1999_implicit and kazhdan_2012

Public Functions

SurfaceSmoothing(SurfaceMesh &mesh)

Construct with mesh to be smoothed.

~SurfaceSmoothing()
void explicit_smoothing(unsigned int iters = 10, float smooth_factor = 0.5, bool use_uniform_laplace = false)

Perform iters iterations of explicit Laplacian smoothing. Decide whether to use uniform Laplacian or cotan Laplacian (default: cotan).

void implicit_smoothing(Scalar timestep = 0.001, bool use_uniform_laplace = false, bool rescale = true)

Perform implicit Laplacian smoothing.

Parameters:
  • timestep – The time step taken.

  • use_uniform_laplace – Decide whether to use uniform Laplacian or cotan Laplacian. Default: cotan.

  • rescale – Decide whether to re-center and re-scale model after smoothing. Default: true.

Throws:

SolverException – in case of a failure to solve the linear system.

inline void initialize(bool use_uniform_laplace = false)

Initialize edge and vertex weights.