Subversion Repositories gelsvn

Rev

Rev 630 | Rev 646 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 630 Rev 631
Line 13... Line 13...
13
#define __HMESH_SMOOTH_H
13
#define __HMESH_SMOOTH_H
14
 
14
 
15
namespace HMesh
15
namespace HMesh
16
{
16
{
17
    class Manifold;
17
    class Manifold;
-
 
18
    
-
 
19
    enum NormalSmoothMethod {FVM_NORMAL_SMOOTH, BILATERAL_NORMAL_SMOOTH};
18
 
20
 
19
    /// Simple laplacian smoothing with an optional weight.
21
    /// Simple laplacian smoothing with an optional weight.
20
    void laplacian_smooth(HMesh::Manifold& m, float t=1.0f);
22
    void laplacian_smooth(HMesh::Manifold& m, float t=1.0f, int iter=1);
21
 
23
 
22
    /// Taubin smoothing is similar to laplacian smoothing but reduces shrinkage
24
    /// Taubin smoothing is similar to laplacian smoothing but reduces shrinkage
23
    void taubin_smooth(HMesh::Manifold& m, int iter);
25
    void taubin_smooth(HMesh::Manifold& m, int iter=1);
24
 
26
 
25
    /// Fuzzy vector median smoothing is effective when it comes to preserving sharp edges.
27
    /** Smooth meshes by first filtering normals and then refitting the mesh */
26
    void fvm_smooth(HMesh::Manifold& m, int iter);
28
    void anisotropic_smooth(HMesh::Manifold& m, int iter, NormalSmoothMethod nsm);
27
}
29
}
28
#endif
30
#endif
29
 
31