// Last edited on 2003-12-12 15:48:17 by stolfi #declare bz_name = "Cascao" #include "colors.inc" #declare A11 = <3,3,0>; #declare A12 = <3,1,0.5>; #declare A13 = <3,-1, 0.5>; #declare A14 = <3,-3, 0>; #declare A21 = <1,3,0.5>; #declare A22 = <1,1,2>; #declare A23 = <1,-1,2>; #declare A24 = <1,-3,0.5>; #declare A31 = <-1,3,0.5>; #declare A32 = <-1,1,1>; #declare A33 = <-1,-1,1>; #declare A34 = <-1,-3,0.5>; #declare A41 = <-3,3,1>; #declare A42 = <-3,1,1>; #declare A43 = <-3,-1,1>; #declare A44 = <-3,-3, 1>; #declare A = array[4][4] { {A11,A12,A13,A14}, {A21,A22,A23,A24}, {A31,A32,A33,A34}, {A41,A42,A43,A44} } #declare B11 = <1,0,0>; #declare B12 = <2,2,0>; #declare B13 = <3,2,0>; #declare B14 = <4,2,0>; #declare B21 = <1,0,0> + 0.0001; #declare B22 = <2,2.0,-1>; #declare B23 = <3,2.5,-1>; #declare B24 = <4,3,-1>; #declare B31 = <1,0,0> + 0.0002; #declare B32 = <2,1.5,-2>; #declare B33 = <3,0.8,-2>; #declare B34 = <4,1,-2>; #declare B41 = <1,0,0> + 0.0003; #declare B42 = <2,1.0,0>; #declare B43 = <3,0.2,0>; #declare B44 = <4,0, 0>; #declare B = array[4][4] { {B11,B12,B13,B14}, {B21,B22,B23,B24}, {B31,B32,B33,B34}, {B41,B42,B43,B44} } #macro rtl(pts,cor) union{ bicubic_patch { type 1 flatness 0 u_steps 4 v_steps 4 pts[0][0] pts[0][1] pts[0][2] pts[0][3] pts[1][0] pts[1][1] pts[1][2] pts[1][3] pts[2][0] pts[2][1] pts[2][2] pts[2][3] pts[3][0] pts[3][1] pts[3][2] pts[3][3] pigment { color rgb cor } finish { diffuse 0.30 reflection 0.40*<1,1,1>+0.30*cor ambient 0.00 } } union { sphere {pts[0][0], bz_ball_r} sphere {pts[0][1], bz_ball_r} sphere {pts[0][2], bz_ball_r} sphere {pts[0][3], bz_ball_r} sphere {pts[1][0], bz_ball_r} sphere {pts[1][1], bz_ball_r} sphere {pts[1][2], bz_ball_r} sphere {pts[1][3], bz_ball_r} sphere {pts[2][0], bz_ball_r} sphere {pts[2][1], bz_ball_r} sphere {pts[2][2], bz_ball_r} sphere {pts[2][3], bz_ball_r} sphere {pts[3][0], bz_ball_r} sphere {pts[3][1], bz_ball_r} sphere {pts[3][2], bz_ball_r} sphere {pts[3][3], bz_ball_r} cylinder { pts[0][0], pts[0][1], bz_rod_r } cylinder { pts[0][1], pts[0][2], bz_rod_r } cylinder { pts[0][2], pts[0][3], bz_rod_r } cylinder { pts[1][0], pts[1][1], bz_thin_rod_r } cylinder { pts[1][1], pts[1][2], bz_thin_rod_r } cylinder { pts[1][2], pts[1][3], bz_thin_rod_r } cylinder { pts[2][0], pts[2][1], bz_thin_rod_r } cylinder { pts[2][1], pts[2][2], bz_thin_rod_r } cylinder { pts[2][2], pts[2][3], bz_thin_rod_r } cylinder { pts[3][0], pts[3][1], bz_rod_r } cylinder { pts[3][1], pts[3][2], bz_rod_r } cylinder { pts[3][2], pts[3][3], bz_rod_r } cylinder { pts[0][0], pts[1][0], bz_rod_r } cylinder { pts[1][0], pts[2][0], bz_rod_r } cylinder { pts[2][0], pts[3][0], bz_rod_r } cylinder { pts[0][1], pts[1][1], bz_thin_rod_r } cylinder { pts[1][1], pts[2][1], bz_thin_rod_r } cylinder { pts[2][1], pts[3][1], bz_thin_rod_r } cylinder { pts[0][2], pts[1][2], bz_thin_rod_r } cylinder { pts[1][2], pts[2][2], bz_thin_rod_r } cylinder { pts[2][2], pts[3][2], bz_thin_rod_r } cylinder { pts[0][3], pts[1][3], bz_rod_r } cylinder { pts[1][3], pts[2][3], bz_rod_r } cylinder { pts[2][3], pts[3][3], bz_rod_r } texture{ pigment { color rgb cor } finish { diffuse 0.60 ambient 0.20 } } } } #end #declare bz_scale = 0.35; #include "bz-things.inc" #declare scene = union{ union{ object {rtl(A,bz_color_A) scale <0,0.5,0>} object {rtl(A,bz_color_B) rotate z*180 translate <-6,0,0> scale <0,0.5,0>} object {rtl(B,bz_color_C) scale <0,0.5,0>} object {rtl(B,bz_color_D) rotate z*180 translate <-6,0,0> scale <0,0.5,0>} translate <3,2,-1> rotate 180*y } // object{ bz_axes } } object{ bz_checker_bg } object{ scene rotate +60*y translate bz_rite_pos } object{ scene rotate -90*y translate bz_left_pos }