Subversion Repositories gelsvn

Rev

Rev 631 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
595 jab 1
/**
2
 * @file smooth.h
3
 * @brief Functions for mesh smoothing.
4
 */
5
 
6
/* ----------------------------------------------------------------------- *
7
 * This file is part of GEL, http://www.imm.dtu.dk/GEL
8
 * Copyright (C) the authors and DTU Informatics
9
 * For license and list of authors, see ../../doc/intro.pdf
10
 * ----------------------------------------------------------------------- */
11
 
448 jab 12
#ifndef __HMESH_SMOOTH_H
13
#define __HMESH_SMOOTH_H
149 jab 14
 
646 janba 15
#include <vector>
16
#include "Manifold.h"
17
 
150 jab 18
namespace HMesh
149 jab 19
{
646 janba 20
   enum NormalSmoothMethod {FVM_NORMAL_SMOOTH, BILATERAL_NORMAL_SMOOTH};
631 janba 21
 
595 jab 22
    /// Simple laplacian smoothing with an optional weight.
631 janba 23
    void laplacian_smooth(HMesh::Manifold& m, float t=1.0f, int iter=1);
215 jab 24
 
595 jab 25
    /// Taubin smoothing is similar to laplacian smoothing but reduces shrinkage
631 janba 26
    void taubin_smooth(HMesh::Manifold& m, int iter=1);
595 jab 27
 
631 janba 28
    /** Smooth meshes by first filtering normals and then refitting the mesh */
29
    void anisotropic_smooth(HMesh::Manifold& m, int iter, NormalSmoothMethod nsm);
149 jab 30
}
595 jab 31
#endif