ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/acismesh/m2d_cal_qual.cpp
Revision: 1
Committed: Mon Jun 11 22:53:07 2007 UTC (17 years, 11 months ago)
File size: 2057 byte(s)
Log Message:

File Contents

# User Rev Content
1 1 /*****************************************************************
2    
3     m2d_cal_qual.c Type:Func
4    
5     Calcul de la qualite d un triangle
6    
7     Date de creation : Wed Mar 6 16:25:11 1996
8    
9     Derniere version : Tue Apr 22 12:03:24 1997
10    
11    
12    
13    
14    
15    
16    
17     Vincent FRANCOIS
18    
19     *****************************************************************/
20    
21    
22    
23    
24    
25     /**************************/
26     /* include */
27     #include <stdio.h>
28     #include <math.h>
29     #include "const.h"
30     #include "memoire.h"
31     #include "struct.h"
32     #include "prototype.h"
33    
34     /**************************/
35     /* variables globales */
36     extern struct environnement env;
37     extern struct s_mesh *mesh;
38    
39    
40     /**************************/
41     /* programme principal */
42    
43     float m2d_cal_qual(int n1,int n2,int n3)
44     {
45     struct s_noeud *no1,*no2,*no3;
46     float vec12[3],vec13[3],vec23[3];
47     float d12,d13,d23,dmax,crit,p;
48    
49     no1=ADRESSE(n1,noeud,mesh->);
50     no2=ADRESSE(n2,noeud,mesh->);
51     no3=ADRESSE(n3,noeud,mesh->);
52     VEC(vec12,no1,no2);
53     VEC(vec13,no1,no3);
54     VEC(vec23,no2,no3);
55     d12=PSCA(vec12,vec12);
56     d13=PSCA(vec13,vec13);
57     d23=PSCA(vec23,vec23);
58     d12=(float)sqrt((double)d12);
59     d13=(float)sqrt((double)d13);
60     d23=(float)sqrt((double)d23);
61     MAXI(dmax,d12,d13);
62     MAXI(dmax,dmax,d23);
63     p=0.5*(d12+d13+d23);
64     crit=(p-d12)*(p-d13)*(p-d23)/p;
65     crit=(float)sqrt((double)crit);
66     crit=crit/dmax;
67     crit=crit*3.4641101614;
68     return(crit);
69     }