Subversion Repositories gelsvn

Rev

Rev 39 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 39 Rev 59
Line 3... Line 3...
3
 
3
 
4
#include "HMesh/Manifold.h"
4
#include "HMesh/Manifold.h"
5
 
5
 
6
namespace HMeshUtil
6
namespace HMeshUtil
7
{
7
{
-
 
8
  class EnergyFun
-
 
9
  {
-
 
10
  public:
-
 
11
    virtual double delta_energy(HMesh::HalfEdgeIter) const = 0;
-
 
12
    virtual double energy(HMesh::HalfEdgeIter) const {return 0;}
-
 
13
  };
-
 
14
 
-
 
15
  void priority_queue_optimization(HMesh::Manifold& m, const EnergyFun& efun);
-
 
16
 
-
 
17
  void simulated_annealing_optimization(HMesh::Manifold& m, 
-
 
18
					const EnergyFun& efun,
-
 
19
					int max_iter=10000);
-
 
20
    
-
 
21
 
-
 
22
    
8
	void minimize_dihedral_angle(HMesh::Manifold& m,
23
    void minimize_dihedral_angle(HMesh::Manifold& m,
9
															 int max_iter=10000,
24
				 int max_iter=10000,
10
															 bool anneal=false,
25
				 bool anneal=false,
11
															 bool alpha=false,
26
				 bool alpha=false,
12
															 double gamma=4.0);
27
				 double gamma=4.0);
13
	void minimize_curvature(HMesh::Manifold& m, bool anneal=false);
28
  void minimize_curvature(HMesh::Manifold& m, bool anneal=false);
14
	void minimize_gauss_curvature(HMesh::Manifold& m, bool anneal=false);
29
  void minimize_gauss_curvature(HMesh::Manifold& m, bool anneal=false);
15
	void maximize_min_angle(HMesh::Manifold& m, float thresh, bool anneal=false);
30
  void maximize_min_angle(HMesh::Manifold& m, float thresh, bool anneal=false);
16
	void optimize_valency(HMesh::Manifold& m, bool anneal=false);
31
  void optimize_valency(HMesh::Manifold& m, bool anneal=false);
17
	void randomize_mesh(HMesh::Manifold& m, int max_iter);
32
  void randomize_mesh(HMesh::Manifold& m, int max_iter);
-
 
33
 
18
}
34
}
19
 
35
 
20
 
36
 
21
#endif
37
#endif