home *** CD-ROM | disk | FTP | other *** search
- #
- # A test of intersection of two cubes. Assumes double precision floating point.
- #
- # Gershon Elber, April 94.
- #
-
- length = 1;
-
- angle = 10;
- b1 = box( vector( -length / 2, -length / 2, -length / 2 ),
- length, length, length );
- b2 = box( vector( 0, -length / 2, -length / 2 ),
- length, length, length ) * rotx( angle );
- attrib( b1, "width", 0.0001 );
- attrib( b2, "width", 0.0001 );
- b12a = b1 * b2;
- attrib( b12a, "width", 0.01 );
- interact( b12a );
-
- angle = 1;
- b1 = box( vector( -length / 2, -length / 2, -length / 2 ),
- length, length, length );
- b2 = box( vector( 0, -length / 2, -length / 2 ),
- length, length, length ) * rotx( angle );
- attrib( b1, "width", 0.0001 );
- attrib( b2, "width", 0.0001 );
- b12b = b1 * b2;
- attrib( b12b, "width", 0.01 );
- interact( b12b );
-
- angle = 0.1;
- b1 = box( vector( -length / 2, -length / 2, -length / 2 ),
- length, length, length );
- b2 = box( vector( 0, -length / 2, -length / 2 ),
- length, length, length ) * rotx( angle );
- attrib( b1, "width", 0.0001 );
- attrib( b2, "width", 0.0001 );
- b12c = b1 * b2;
- attrib( b12c, "width", 0.01 );
- interact( b12c );
-
- angle = 0.01;
- b1 = box( vector( -length / 2, -length / 2, -length / 2 ),
- length, length, length );
- b2 = box( vector( 0, -length / 2, -length / 2 ),
- length, length, length ) * rotx( angle );
- attrib( b1, "width", 0.0001 );
- attrib( b2, "width", 0.0001 );
- b12d = b1 * b2;
- attrib( b12d, "width", 0.01 );
- interact( b12d );
-
- angle = 0.001;
- b1 = box( vector( -length / 2, -length / 2, -length / 2 ),
- length, length, length );
- b2 = box( vector( 0, -length / 2, -length / 2 ),
- length, length, length ) * rotx( angle );
- attrib( b1, "width", 0.0001 );
- attrib( b2, "width", 0.0001 );
- b12e = b1 * b2;
- attrib( b12e, "width", 0.01 );
- interact( b12e );
-
- angle = 0.0001;
- b1 = box( vector( -length / 2, -length / 2, -length / 2 ),
- length, length, length );
- b2 = box( vector( 0, -length / 2, -length / 2 ),
- length, length, length ) * rotx( angle );
- attrib( b1, "width", 0.0001 );
- attrib( b2, "width", 0.0001 );
- b12f = b1 * b2;
- attrib( b12f, "width", 0.01 );
- interact( b12f );
-
- # This one fails...
- # Do no report this "feature". This is quite a difficult test...
- #
- angle = 0.00001;
- b1 = box( vector( -length / 2, -length / 2, -length / 2 ),
- length, length, length );
- b2 = box( vector( 0, -length / 2, -length / 2 ),
- length, length, length ) * rotx( angle );
- attrib( b1, "width", 0.0001 );
- attrib( b2, "width", 0.0001 );
- b12g = b1 * b2;
- attrib( b12g, "width", 0.01 );
- interact( b12g );
-