ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/diamesh/src/m3d_macro.h
Revision: 253
Committed: Tue Jul 13 19:40:46 2010 UTC (14 years, 10 months ago) by francois
Content type: text/plain
File size: 1709 byte(s)
Log Message:
changement de hiearchie et utilisation de ccmake + mise a jour

File Contents

# User Rev Content
1 5 #define VECTEUR(vec,vec1,vec2)\
2     {\
3     vec[0] = vec2[0] - vec1[0] ;\
4     vec[1] = vec2[1] - vec1[1] ;\
5     vec[2] = vec2[2] - vec1[2] ;\
6     }
7    
8     #define IS_ALIGNE(in1,in2,ina,inb,inter) \
9     {\
10     float vec_12[3], vec_ab[3], pv1[3],v1a[3], v1b[3],v2a[3], v2b[3] ;\
11     inter = 0 ;\
12     VECTEUR(vec_12,(coord + in1), (coord + in2)) \
13     VECTEUR(vec_ab,(coord + ina), (coord + inb)) \
14     VECTEUR(v1a,(coord + in1), (coord + ina)) \
15     VECTEUR(v2a,(coord + in2), (coord + ina)) \
16     VECTEUR(v1b,(coord + in1), (coord + inb)) \
17     VECTEUR(v2b,(coord + in2), (coord + inb)) \
18     pv1[0] = PVECX(vec_12,vec_ab) ;\
19     pv1[1] = PVECY(vec_12,vec_ab) ;\
20     pv1[2] = PVECZ(vec_12,vec_ab) ;\
21     if (PROSCA(pv1,pv1)<eps4)\
22     {\
23     if (PROSCA(v1a,v2a) < 0.) inter = VRAI ;\
24     if (PROSCA(v1b,v2b) < 0.) inter = VRAI ;\
25     if (PROSCA(v1a,v1b) < 0.) inter = VRAI ;\
26     }\
27     }
28    
29     #define POINT_TRIANGLE(inp,in1,in2,in3,vn,inter) \
30     {\
31     float vec_1p[3], vec_2p[3], vec_3p[3], pv1[3], vec_12[3], vec_23[3], vec_31[3] ;\
32     inter = 0 ;\
33     VECTEUR(vec_12,(coord + in1), (coord + in2)) \
34     VECTEUR(vec_23,(coord + in2), (coord + in3)) \
35     VECTEUR(vec_31,(coord + in3), (coord + in1)) \
36     VECTEUR(vec_1p,(coord + in1), (coord + inp)) \
37     VECTEUR(vec_2p,(coord + in2), (coord + inp)) \
38     VECTEUR(vec_3p,(coord + in3), (coord + inp)) \
39     pv1[0] = PVECX(vec_12,vec_1p) ;\
40     pv1[1] = PVECY(vec_12,vec_1p) ;\
41     pv1[2] = PVECZ(vec_12,vec_1p) ;\
42     if (PROSCA(pv1,vn) > -eps4 ) \
43     {\
44     pv1[0] = PVECX(vec_23,vec_2p) ;\
45     pv1[1] = PVECY(vec_23,vec_2p) ;\
46     pv1[2] = PVECZ(vec_23,vec_2p) ;\
47     if (PROSCA(pv1,vn) > -eps4 ) \
48     {\
49     pv1[0] = PVECX(vec_31,vec_3p) ;\
50     pv1[1] = PVECY(vec_31,vec_3p) ;\
51     pv1[2] = PVECZ(vec_31,vec_3p) ;\
52     if (PROSCA(pv1,vn) > -eps4 ) inter = VRAI ;\
53     }\
54     }\
55     }
56