Subversion Repositories gelsvn

Rev

Rev 646 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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

Generated by GNU Enscript 1.6.6.
37

Generated by GNU Enscript 1.6.6.
34
 
38
 
35
 
39
 
36
 
40