liba2ri  0.2
 All Data Structures
quality.h
1 /*************************************/
2 /* Auteur : Rémi Synave */
3 /* Date de création : 03/04/07 */
4 /* Date de modification : 08/01/10 */
5 /* Version : 0.2 */
6 /*************************************/
7 
8 /***************************************************************************/
9 /* This file is part of a2ri. */
10 /* */
11 /* a2ri is free software: you can redistribute it and/or modify it */
12 /* under the terms of the GNU Lesser General Public License as published */
13 /* by the Free Software Foundation, either version 3 of the License, or */
14 /* (at your option) any later version. */
15 /* */
16 /* a2ri is distributed in the hope that it will be useful, */
17 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
18 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
19 /* GNU Lesser General Public License for more details. */
20 /* */
21 /* You should have received a copy of the GNU Lesser General Public */
22 /* License along with a2ri. */
23 /* If not, see <http://www.gnu.org/licenses/>. */
24 /***************************************************************************/
25 
26 
27 
28 #ifndef HASH_QUALITY__H
29 #define HASH_QUALITY__H
30 
31 #include <math.h>
32 #include <gsl/gsl_linalg.h>
33 #include <gsl/gsl_math.h>
34 #include <gsl/gsl_blas.h>
35 #include "util.h"
36 #include "vector.h"
37 #include "point.h"
38 #include "vertex.h"
39 #include "face.h"
40 #include "model.h"
41 #include "matrix.h"
42 #include "geometry.h"
43 #include "hashtable.h"
44 #include "topology.h"
45 
46 #define NO_SAMPLING 0
47 #define SAMPLING 1
48 
55 double a2ri_vf_mean_ratio_metric_for_a_face (
56  vf_model * m,
57  int numface);
58 
64 double a2ri_vf_mean_ratio_metric (
65  vf_model * m);
66 
74 void a2ri_vf_list_angle (
75  vf_model * m,
76  double **list,
77  int *size);
78 
86 void a2ri_vf_list_area (
87  vf_model * m,
88  double **list,
89  int *size);
90 
98 void a2ri_vf_list_valence (
99  vf_model * m,
100  int **list,
101  int *size);
102 
110 void a2ri_vf_list_edge_length (
111  vf_model * m,
112  double **list,
113  int *size);
114 
122 void a2ri_vf_list_height_length (
123  vf_model * m,
124  double **list,
125  int *size);
126 
132 int *a2ri_vf_angle_measure (
133  vf_model * m);
134 
142 double a2ri_vf_hausdorff (
143  vf_model * m1,
144  vf_model * m2,
145  int sampling);
146 
154 double DPP (
155  point3d p,
156  point3d * points,
157  int size);
158 
166 double a2ri_vf_Emn_DPP (
167  vf_model * m1,
168  vf_model * m2,
169  int sampling);
170 
177 double a2ri_vf_triangle_aspect_ratio (
178  vf_model * m,
179  int numface);
180 
187 double a2ri_vf_triangle_rypl (
188  vf_model * m,
189  int numface);
190 
198 void a2ri_vf_list_triangle_aspect_ratio (
199  vf_model * m,
200  double **list,
201  int *size);
202 
203 
211 double a2ri_vf_face_size_variation (
212  vf_model * m,
213  int face1,
214  int face2);
215 
223 void a2ri_vf_list_radius_incircle (
224  vf_model * m,
225  double **list,
226  int *size);
227 
234 double a2ri_vf_gauss_curvature (
235  vf_model * m,
236  int ve);
237 
246 void a2ri_vf_gauss_curvature_list_of_vertex (
247  vf_model * m,
248  int *ve,
249  int size,
250  double **list);
251 
259 vector3d a2ri_vf_mean_curvature (
260  vf_model * m,
261  int ve1,
262  int ve2);
263 
273 void a2ri_vf_mean_curvature_path (
274  vf_model * m,
275  int *list,
276  int size,
277  vector3d ** list_vector,
278  int *size_list_vector);
279 
286 double a2ri_vf_levi_civita (
287  vf_model * m,
288  int numve);
289 
296 void a2ri_vf_levi_civita_list_of_vertex (
297  vf_model * m,
298  int *ve,
299  int size,
300  double **list);
301 
310 void a2ri_vf_garimella (
311  vf_model * m,
312  int numve,
313  double *K,
314  double *H);
315 
316 #endif