#
# Extrusion example of the IRIT letters created manually:
#
#				Created by Gershon Elber,	Mar 89
#

save_mat = view_mat;
save_res = resolution;

view_mat = view_mat * scale(vector(-1.0, 1.0, 1.0));

v1  = vector( 0.0, 0.0, 0.0);					  # The I letter
v2  = vector( 0.3, 0.0, 0.0);
v3  = vector( 0.3, 0.0, 0.1);
v4  = vector( 0.2, 0.0, 0.1);
v5  = vector( 0.2, 0.0, 0.5);
v6  = vector( 0.3, 0.0, 0.5);
v7  = vector( 0.3, 0.0, 0.6);
v8  = vector( 0.0, 0.0, 0.6);
v9  = vector( 0.0, 0.0, 0.5);
v10 = vector( 0.1, 0.0, 0.5);
v11 = vector( 0.1, 0.0, 0.1);
v12 = vector( 0.0, 0.0, 0.1);

I = poly( list( v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12 ), false );
view(list(view_mat, I), true);


v1  = vector( 0.0, 0.0, 0.0);					# The R Letter
v2  = vector( 0.1, 0.0, 0.0);
v3  = vector( 0.1, 0.0, 0.5);
v4  = vector( 0.2, 0.0, 0.5);
v5  = vector( 0.2, 0.0, 0.4);
v6  = vector( 0.1, 0.0, 0.4);
v7  = vector( 0.1, 0.0, 0.3);
v8  = vector( 0.2, 0.0, 0.0);
v9  = vector( 0.3, 0.0, 0.0);
v10 = vector( 0.2, 0.0, 0.3);
v11 = vector( 0.3, 0.0, 0.3);
v12 = vector( 0.3, 0.0, 0.6);
v13 = vector( 0.0, 0.0, 0.6);

R = poly( list( v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 ), false );
view(R, true);


v1  = vector( 0.1, 0.0, 0.0);
v2  = vector( 0.1, 0.0, 0.5);
v3  = vector( 0.0, 0.0, 0.5);
v4  = vector( 0.0, 0.0, 0.6);
v5  = vector( 0.3, 0.0, 0.6);
v6  = vector( 0.3, 0.0, 0.5);
v7  = vector( 0.2, 0.0, 0.5);
v8  = vector( 0.2, 0.0, 0.0);

T = poly( list( v1, v2, v3, v4, v5, v6, v7, v8 ), false );
view(T, true);

free(v1); free(v2); free(v3); free(v4); free(v5); free(v6); free(v7);
free(v8); free(v9); free(v10); free(v11); free(v12); free(v13);

I1 = I;
R2 = R * trans(vector( 0.4, 0.0, 0.0));
I3 = I * trans(vector( 0.8, 0.0, 0.0));
T4 = T * trans(vector( 1.2, 0.0, 0.0));
free(I);
free(R);
free(T);

view_mat = view_mat * trans(vector(-0.8, 0.0, 0.0));

view(list(view_mat, I1, R2, I3, T4), true);

ext_dir = vector( 0.0,-1.0, 0.0);

I1X = extrude(I1, ext_dir);
R2X = extrude(R2, ext_dir);
I3X = extrude(I3, ext_dir);
T4X = extrude(T4, ext_dir);
free(I1);
free(R2);
free(I3);
free(T4);

S1 = I1X ^ R2X ^ I3X ^ T4X;
free(I1X);
free(R2X);
free(I3X);
free(T4X);

final = convex(S1);
free(S1);
interact(final);

save("solid0", final);
free(final);

resolution = save_res;
view_mat = save_mat;
