[brlcad-commits] SF.net SVN: brlcad:[48163] brlcad/trunk/src/libgcv/test_bottess.c
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <eri...@us...> - 2011-12-23 18:04:32
|
Revision: 48163 http://brlcad.svn.sourceforge.net/brlcad/?rev=48163&view=rev Author: erikgreenwald Date: 2011-12-23 18:04:22 +0000 (Fri, 23 Dec 2011) Log Message: ----------- macro up the test harness for simple triangle intersection (obfuscate to clarify) Modified Paths: -------------- brlcad/trunk/src/libgcv/test_bottess.c Modified: brlcad/trunk/src/libgcv/test_bottess.c =================================================================== --- brlcad/trunk/src/libgcv/test_bottess.c 2011-12-23 04:18:14 UTC (rev 48162) +++ brlcad/trunk/src/libgcv/test_bottess.c 2011-12-23 18:04:22 UTC (rev 48163) @@ -51,7 +51,7 @@ VMOVE(f[0].vert[2], t1[2]); VSUB2(tmp[0], t1[1], t1[0]); VSUB2(tmp[1], t1[2], t1[0]); - VCROSS(f[0].plane,tmp[0], tmp[1]); + VCROSS(f[0].plane,tmp[0], tmp[1]); f[0].foo = 0; VMOVE(f[1].vert[0], t2[0]); @@ -59,7 +59,7 @@ VMOVE(f[1].vert[2], t2[2]); VSUB2(tmp[0], t2[1], t2[0]); VSUB2(tmp[1], t2[2], t2[0]); - VCROSS(f[1].plane,tmp[0], tmp[1]); + VCROSS(f[1].plane,tmp[0], tmp[1]); f[1].foo = 0; if( gcv_tri_tri_intersect_with_isectline(NULL,NULL, f, f+1, &coplanar, (point_t *)&i[0], &tol) == 0 && should == 0) @@ -70,30 +70,18 @@ int test_tri_intersections() { - int i = 0; - point_t t1[3], t2[3], p1, p2; + int count = 0; +#define TRY(suc, t00x,t00y,t00z, t01x,t01y,t01z, t02x,t02y,t02z, t10x,t10y,t10z, t11x,t11y,t11z, t12x,t12y,t12z, p0x,p0y,p0z, p1x,p1y,p1z) { \ + point_t t0[3], t1[3], p0, p1; \ + VSET(t0[0],t00x,t00y,t00z); VSET(t0[1],t01x,t01y,t01z); VSET(t0[2],t02x,t02y,t02z); \ + VSET(t1[0],t10x,t10y,t10z); VSET(t1[1],t11x,t11y,t11z); VSET(t1[2],t12x,t12y,t12z); \ + VSET(p0,p0x,p0y,p0z); VSET(p1,p1x,p1y,p1z) \ + count += test_intersection(suc, t0, t1, p0, p1); } - VSET(t1[0], 0, 0, 0); - VSET(t1[1], 0, 1, 0); - VSET(t1[2], 0, 0, 1); - VSET(t2[0],-1, 0, 0.5); - VSET(t2[1], 0, 1, 0.5); - VSET(t2[2], 1, 0, 0.5); - VSET(p1, 0, 0, .5) - VSET(p2, 0, .5, .5) - i += test_intersection(1, t1, t2, p1, p2); + TRY(1,0,0,0,0,1,0,0,0,1,-1,0,0.5,0,1,0.5,1,0,0.5,0,0,.5,0,.5,.5); /* ep ef */ + TRY(0,0,0,0,0,1,0,0,0,1,-1,2,0.5,0,3,0.5,1,2,0.5,0,0,.5,0,.5,.5); /* no intersect */ - VSET(t1[0], 0, 0, 0); - VSET(t1[1], 0, 1, 0); - VSET(t1[2], 0, 0, 1); - VSET(t2[0],-1, 2, 0.5); - VSET(t2[1], 0, 3, 0.5); - VSET(t2[2], 1, 2, 0.5); - VSET(p1, 0, 0, .5) - VSET(p2, 0, .5, .5) - i += test_intersection(0, t1, t2, p1, p2); - - return i; + return count; } int This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |