ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/diamesh/src/m3d_cal2d.cpp
Revision: 5
Committed: Tue Jun 12 20:26:34 2007 UTC (17 years, 11 months ago)
Original Path: magic/lib/diamesh/diamesh/src/m3d_cal2d.cpp
File size: 1194 byte(s)
Log Message:

File Contents

# User Rev Content
1 5
2     #include <stdio.h>
3     #include <math.h>
4     #include "m3d_struct.h"
5     #include "m3d_const.h"
6     #include "m3d_hotes.h"
7     #include "m3d_erreur.h"
8     #include "prototype.h"
9     float m3d_cal2d(float *coord,int i1,int i2,int i3)
10     {
11     double vec_i1i2[3],vec_i1i3[3],vec_i2i3[3] ;
12     double d12,d13, d23 ;
13     double dmax, crit, p ;
14     float crits ;
15    
16     dmax = -1. ;
17     vec_i1i2[0] = coord[x(i2)]-coord[x(i1)] ;
18     vec_i1i2[1] = coord[y(i2)]-coord[y(i1)] ;
19     vec_i1i2[2] = coord[z(i2)]-coord[z(i1)] ;
20     d12 = PROSCA(vec_i1i2,vec_i1i2) ;
21     d12 = sqrt(d12) ;
22     dmax = max(dmax,d12) ;
23    
24     vec_i1i3[0] = coord[x(i3)]-coord[x(i1)] ;
25     vec_i1i3[1] = coord[y(i3)]-coord[y(i1)] ;
26     vec_i1i3[2] = coord[z(i3)]-coord[z(i1)] ;
27     d13 = PROSCA(vec_i1i3,vec_i1i3) ;
28     d13 = sqrt(d13) ;
29     dmax = max(dmax,d13) ;
30    
31     vec_i2i3[0] = coord[x(i3)]-coord[x(i2)] ;
32     vec_i2i3[1] = coord[y(i3)]-coord[y(i2)] ;
33     vec_i2i3[2] = coord[z(i3)]-coord[z(i2)] ;
34     d23 = PROSCA(vec_i2i3,vec_i2i3) ;
35     d23 = sqrt(d23) ;
36     dmax = max(dmax,d23) ;
37    
38     p = 0.5 * (d12 + d13 + d23) ;
39    
40     crit = (p - d12) * (p - d13) * (p - d23)/ p ;
41     crit = sqrt(crit) ;
42     crit = crit /dmax ;
43     crit = crit * 3.464101614 ;
44     crits = (float)crit ;
45     return(crits) ;
46     }