Metropoli BBS
VIEWER: cubes.irt MODE: TEXT (ASCII)
#
# Model from "Partitioning Polyhedral Objects into Nonintersecting parts'
# by mark Segal and Carlo H. Sequin, IEE CG&A, January 1988, pp 53-67.
#

b1 = box(vector(  0.2,  0.2,  0.2),  0.8,  0.8,  0.8);
b2 = box(vector(  0.2,  0.2, -0.2),  0.8,  0.8, -0.8);
b3 = box(vector(  0.2, -0.2,  0.2),  0.8, -0.8,  0.8);
b4 = box(vector(  0.2, -0.2, -0.2),  0.8, -0.8, -0.8);
b5 = box(vector( -0.2,  0.2,  0.2), -0.8,  0.8,  0.8);
b6 = box(vector( -0.2,  0.2, -0.2), -0.8,  0.8, -0.8);
b7 = box(vector( -0.2, -0.2,  0.2), -0.8, -0.8,  0.8);
b8 = box(vector( -0.2, -0.2, -0.2), -0.8, -0.8, -0.8);

cubes = b1 ^ b2 ^ b3 ^ b4 ^ b5 ^ b6 ^ b7 ^ b8;
free(b1); free(b2); free(b3); free(b4); free(b5); free(b6); free(b7); free(b8);

rot_cubes = cubes * rotx(30) * rotz(25);

intercrv = true;
crvs_cubes = cubes + rot_cubes;
# interact(list(crvs_cubes), 0);
interact(list(crvs_cubes, cubes, rot_cubes), 0);
free(crvs_cubes);
intercrv = false;

u_cubes = cubes + rot_cubes;
interact(list(u_cubes), 0);

i_cubes = cubes * rot_cubes;
interact(list(i_cubes), 0);

s_cubes = cubes - rot_cubes;
interact(list(s_cubes), 0);

view_mat = rotx(0);
u_cubes = convex(u_cubes);
i_cubes = convex(i_cubes);
s_cubes = convex(s_cubes);
save("cubes_u", list(view_mat, u_cubes));
save("cubes_i", list(view_mat, i_cubes));
save("cubes_s", list(view_mat, s_cubes));

free(u_cubes); free(i_cubes); free(s_cubes);

free(cubes);
free(rot_cubes);
[ RETURN TO DIRECTORY ]