Subversion Repositories gelsvn

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
39 bj 1
#ifndef __HMESHUTIL_MESH_OPTIMIZATION_H
2
#define __HMESHUTIL_MESH_OPTIMIZATION_H
3
 
4
#include "HMesh/Manifold.h"
5
 
6
namespace HMeshUtil
7
{
59 jab 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
 
23
    void minimize_dihedral_angle(HMesh::Manifold& m,
24
				 int max_iter=10000,
25
				 bool anneal=false,
26
				 bool alpha=false,
27
				 double gamma=4.0);
28
  void minimize_curvature(HMesh::Manifold& m, bool anneal=false);
29
  void minimize_gauss_curvature(HMesh::Manifold& m, bool anneal=false);
30
  void maximize_min_angle(HMesh::Manifold& m, float thresh, bool anneal=false);
31
  void optimize_valency(HMesh::Manifold& m, bool anneal=false);
32
  void randomize_mesh(HMesh::Manifold& m, int max_iter);
33
 
39 bj 34
}
35
 
36
 
37
#endif