// J. Stolfi's definitions for TP11 // Last edited on 2003-06-24 20:19:11 by stolfi // Caller must pre-define "bz_scale" // Then invoke objects "bz_grid_A",.. "bz_grid_F". // Also use "sr" as the sphere radius, and textures // "bz_tx_A",.. "bz_tx_F". to color the patches. camera { location bz_scale * 2.0 * < -8,25,22 > right 1.2*x up 0.6*y sky y look_at < 0.00, 0.00, 0.00 > } light_source { 100 * bz_scale * < -8.00, 3.00, 3.00 > color rgb 0.8 * < 1,1,1 > } light_source { 100 * bz_scale * < 8.00, 15.00, 7.00 > color rgb 1.3 * < 1,1,1 > } // Just in case: background{White} // Checkered background #declare bz_checker_bg = sphere { <0,0,0>, 100 hollow no_shadow texture { pigment { checker 0.70*Gray70+0.20*Blue+0.10*Green, White } finish { diffuse 0 ambient 1 } scale 10 } scale bz_scale } // Rings for background - axis = Y #declare bz_ring_set = union{ #declare bz_i = -30; #while (bz_i <= 30) torus { 100,1 translate 10*bz_i*y } #declare bz_i = bz_i + 1; #end } #declare bz_bg_tone = <0.0,0.9,1.0>; #declare bz_bg_antitone = <1.0,0.9,0.0>; #declare bz_rings_bg = union { sphere { <0,0,0>, 1 hollow texture { pigment { color rgb 0.9*<1,1,1> + 0.1*bz_bg_tone } finish { diffuse 0 ambient 1 } } scale 300 } object { bz_ring_set rotate 90*z texture { pigment { color rgb 0.6*<1,1,1> + 0.2*<1,0,0> } finish { diffuse 0 ambient 1 } } } object { bz_ring_set texture { pigment { color rgb 0.6*<1,1,1> + 0.2*<0,0.5,0> } finish { diffuse 0 ambient 1 } } } object { bz_ring_set rotate 90*x texture { pigment { color rgb 0.6*<1,1,1> + 0.2*<0.22,0.22,1.00> } finish { diffuse 0 ambient 1 } } } no_shadow scale bz_scale } #declare bz_color_A = < 1.0, 0.5, 0.0 >; #declare bz_color_B = < 1.0, 0.9, 0.1 >; #declare bz_color_C = < 0.0, 0.8, 0.1 >; #declare bz_color_D = < 1.0, 0.1, 0.1 >; #declare bz_color_E = < 0.1, 0.5, 1.0 >; #declare bz_color_F = < 1.0, 0.0, 1.0 >; #declare bz_pigm_A = pigment { color rgb bz_color_A } #declare bz_pigm_B = pigment { color rgb bz_color_B } #declare bz_pigm_C = pigment { color rgb bz_color_C } #declare bz_pigm_D = pigment { color rgb bz_color_D } #declare bz_pigm_E = pigment { color rgb bz_color_E } #declare bz_pigm_F = pigment { color rgb bz_color_F } #declare bz_tx_A = texture { pigment { bz_pigm_A } finish { diffuse 0.30 reflection 0.40*<1,1,1>+0.30*bz_color_A ambient 0.00 } } #declare bz_tx_B = texture { pigment { bz_pigm_B } finish { diffuse 0.30 reflection 0.40*<1,1,1>+0.30*bz_color_B ambient 0.00 } } #declare bz_tx_C = texture { pigment { bz_pigm_C } finish { diffuse 0.30 reflection 0.40*<1,1,1>+0.30*bz_color_C ambient 0.00 } } #declare bz_tx_D = texture { pigment { bz_pigm_D } finish { diffuse 0.30 reflection 0.40*<1,1,1>+0.30*bz_color_D ambient 0.00 } } #declare bz_tx_E = texture { pigment { bz_pigm_E } finish { diffuse 0.30 reflection 0.40*<1,1,1>+0.30*bz_color_E ambient 0.00 } } #declare bz_tx_F = texture { pigment { bz_pigm_F } finish { diffuse 0.30 reflection 0.40*<1,1,1>+0.30*bz_color_F ambient 0.00 } } #declare bz_ball_r = 0.2 * bz_scale; #declare bz_rod_r = 0.5 * bz_ball_r; #declare bz_thin_rod_r = 0.3 * bz_ball_r; #declare bz_finish_grid = finish { diffuse 0.60 ambient 0.20 } #ifdef (A11) #declare bz_grid_A = union { sphere {A11, bz_ball_r} sphere {A12, bz_ball_r} sphere {A13, bz_ball_r} sphere {A14, bz_ball_r} sphere {A21, bz_ball_r} sphere {A22, bz_ball_r} sphere {A23, bz_ball_r} sphere {A24, bz_ball_r} sphere {A31, bz_ball_r} sphere {A32, bz_ball_r} sphere {A33, bz_ball_r} sphere {A34, bz_ball_r} sphere {A41, bz_ball_r} sphere {A42, bz_ball_r} sphere {A43, bz_ball_r} sphere {A44, bz_ball_r} cylinder { A11, A12, bz_rod_r } cylinder { A12, A13, bz_rod_r } cylinder { A13, A14, bz_rod_r } cylinder { A21, A22, bz_thin_rod_r } cylinder { A22, A23, bz_thin_rod_r } cylinder { A23, A24, bz_thin_rod_r } cylinder { A31, A32, bz_thin_rod_r } cylinder { A32, A33, bz_thin_rod_r } cylinder { A33, A34, bz_thin_rod_r } cylinder { A41, A42, bz_rod_r } cylinder { A42, A43, bz_rod_r } cylinder { A43, A44, bz_rod_r } cylinder { A11, A21, bz_rod_r } cylinder { A21, A31, bz_rod_r } cylinder { A31, A41, bz_rod_r } cylinder { A12, A22, bz_thin_rod_r } cylinder { A22, A32, bz_thin_rod_r } cylinder { A32, A42, bz_thin_rod_r } cylinder { A13, A23, bz_thin_rod_r } cylinder { A23, A33, bz_thin_rod_r } cylinder { A33, A43, bz_thin_rod_r } cylinder { A14, A24, bz_rod_r } cylinder { A24, A34, bz_rod_r } cylinder { A34, A44, bz_rod_r } texture { pigment { bz_pigm_A } finish { bz_finish_grid } } } #end #ifdef (B11) #declare bz_grid_B = union { sphere {B11, bz_ball_r} sphere {B12, bz_ball_r} sphere {B13, bz_ball_r} sphere {B14, bz_ball_r} sphere {B21, bz_ball_r} sphere {B22, bz_ball_r} sphere {B23, bz_ball_r} sphere {B24, bz_ball_r} sphere {B31, bz_ball_r} sphere {B32, bz_ball_r} sphere {B33, bz_ball_r} sphere {B34, bz_ball_r} sphere {B41, bz_ball_r} sphere {B42, bz_ball_r} sphere {B43, bz_ball_r} sphere {B44, bz_ball_r} cylinder { B11, B12, bz_rod_r } cylinder { B12, B13, bz_rod_r } cylinder { B13, B14, bz_rod_r } cylinder { B21, B22, bz_thin_rod_r } cylinder { B22, B23, bz_thin_rod_r } cylinder { B23, B24, bz_thin_rod_r } cylinder { B31, B32, bz_thin_rod_r } cylinder { B32, B33, bz_thin_rod_r } cylinder { B33, B34, bz_thin_rod_r } cylinder { B41, B42, bz_rod_r } cylinder { B42, B43, bz_rod_r } cylinder { B43, B44, bz_rod_r } cylinder { B11, B21, bz_rod_r } cylinder { B21, B31, bz_rod_r } cylinder { B31, B41, bz_rod_r } cylinder { B12, B22, bz_thin_rod_r } cylinder { B22, B32, bz_thin_rod_r } cylinder { B32, B42, bz_thin_rod_r } cylinder { B13, B23, bz_thin_rod_r } cylinder { B23, B33, bz_thin_rod_r } cylinder { B33, B43, bz_thin_rod_r } cylinder { B14, B24, bz_rod_r } cylinder { B24, B34, bz_rod_r } cylinder { B34, B44, bz_rod_r } texture { pigment { bz_pigm_B } finish { bz_finish_grid } } } #end #ifdef (C11) #declare bz_grid_C = union { sphere {C11, bz_ball_r} sphere {C12, bz_ball_r} sphere {C13, bz_ball_r} sphere {C14, bz_ball_r} sphere {C21, bz_ball_r} sphere {C22, bz_ball_r} sphere {C23, bz_ball_r} sphere {C24, bz_ball_r} sphere {C31, bz_ball_r} sphere {C32, bz_ball_r} sphere {C33, bz_ball_r} sphere {C34, bz_ball_r} sphere {C41, bz_ball_r} sphere {C42, bz_ball_r} sphere {C43, bz_ball_r} sphere {C44, bz_ball_r} cylinder { C11, C12, bz_rod_r } cylinder { C12, C13, bz_rod_r } cylinder { C13, C14, bz_rod_r } cylinder { C21, C22, bz_thin_rod_r } cylinder { C22, C23, bz_thin_rod_r } cylinder { C23, C24, bz_thin_rod_r } cylinder { C31, C32, bz_thin_rod_r } cylinder { C32, C33, bz_thin_rod_r } cylinder { C33, C34, bz_thin_rod_r } cylinder { C41, C42, bz_rod_r } cylinder { C42, C43, bz_rod_r } cylinder { C43, C44, bz_rod_r } cylinder { C11, C21, bz_rod_r } cylinder { C21, C31, bz_rod_r } cylinder { C31, C41, bz_rod_r } cylinder { C12, C22, bz_thin_rod_r } cylinder { C22, C32, bz_thin_rod_r } cylinder { C32, C42, bz_thin_rod_r } cylinder { C13, C23, bz_thin_rod_r } cylinder { C23, C33, bz_thin_rod_r } cylinder { C33, C43, bz_thin_rod_r } cylinder { C14, C24, bz_rod_r } cylinder { C24, C34, bz_rod_r } cylinder { C34, C44, bz_rod_r } texture { pigment { bz_pigm_C } finish { bz_finish_grid } } } #end #ifdef (D11) #declare bz_grid_D = union { sphere {D11, bz_ball_r} sphere {D12, bz_ball_r} sphere {D13, bz_ball_r} sphere {D14, bz_ball_r} sphere {D21, bz_ball_r} sphere {D22, bz_ball_r} sphere {D23, bz_ball_r} sphere {D24, bz_ball_r} sphere {D31, bz_ball_r} sphere {D32, bz_ball_r} sphere {D33, bz_ball_r} sphere {D34, bz_ball_r} sphere {D41, bz_ball_r} sphere {D42, bz_ball_r} sphere {D43, bz_ball_r} sphere {D44, bz_ball_r} cylinder { D11, D12, bz_rod_r } cylinder { D12, D13, bz_rod_r } cylinder { D13, D14, bz_rod_r } cylinder { D21, D22, bz_thin_rod_r } cylinder { D22, D23, bz_thin_rod_r } cylinder { D23, D24, bz_thin_rod_r } cylinder { D31, D32, bz_thin_rod_r } cylinder { D32, D33, bz_thin_rod_r } cylinder { D33, D34, bz_thin_rod_r } cylinder { D41, D42, bz_rod_r } cylinder { D42, D43, bz_rod_r } cylinder { D43, D44, bz_rod_r } cylinder { D11, D21, bz_rod_r } cylinder { D21, D31, bz_rod_r } cylinder { D31, D41, bz_rod_r } cylinder { D12, D22, bz_thin_rod_r } cylinder { D22, D32, bz_thin_rod_r } cylinder { D32, D42, bz_thin_rod_r } cylinder { D13, D23, bz_thin_rod_r } cylinder { D23, D33, bz_thin_rod_r } cylinder { D33, D43, bz_thin_rod_r } cylinder { D14, D24, bz_rod_r } cylinder { D24, D34, bz_rod_r } cylinder { D34, D44, bz_rod_r } texture { pigment { bz_pigm_D } finish { bz_finish_grid } } } #end #ifdef (E11) #declare bz_grid_E = union { sphere {E11, bz_ball_r} sphere {E12, bz_ball_r} sphere {E13, bz_ball_r} sphere {E14, bz_ball_r} sphere {E21, bz_ball_r} sphere {E22, bz_ball_r} sphere {E23, bz_ball_r} sphere {E24, bz_ball_r} sphere {E31, bz_ball_r} sphere {E32, bz_ball_r} sphere {E33, bz_ball_r} sphere {E34, bz_ball_r} sphere {E41, bz_ball_r} sphere {E42, bz_ball_r} sphere {E43, bz_ball_r} sphere {E44, bz_ball_r} cylinder { E11, E12, bz_rod_r } cylinder { E12, E13, bz_rod_r } cylinder { E13, E14, bz_rod_r } cylinder { E21, E22, bz_thin_rod_r } cylinder { E22, E23, bz_thin_rod_r } cylinder { E23, E24, bz_thin_rod_r } cylinder { E31, E32, bz_thin_rod_r } cylinder { E32, E33, bz_thin_rod_r } cylinder { E33, E34, bz_thin_rod_r } cylinder { E41, E42, bz_rod_r } cylinder { E42, E43, bz_rod_r } cylinder { E43, E44, bz_rod_r } cylinder { E11, E21, bz_rod_r } cylinder { E21, E31, bz_rod_r } cylinder { E31, E41, bz_rod_r } cylinder { E12, E22, bz_thin_rod_r } cylinder { E22, E32, bz_thin_rod_r } cylinder { E32, E42, bz_thin_rod_r } cylinder { E13, E23, bz_thin_rod_r } cylinder { E23, E33, bz_thin_rod_r } cylinder { E33, E43, bz_thin_rod_r } cylinder { E14, E24, bz_rod_r } cylinder { E24, E34, bz_rod_r } cylinder { E34, E44, bz_rod_r } texture { pigment { bz_pigm_E } finish { bz_finish_grid } } } #end #ifdef (F11) #declare bz_grid_F = union { sphere {F11, bz_ball_r} sphere {F12, bz_ball_r} sphere {F13, bz_ball_r} sphere {F14, bz_ball_r} sphere {F21, bz_ball_r} sphere {F22, bz_ball_r} sphere {F23, bz_ball_r} sphere {F24, bz_ball_r} sphere {F31, bz_ball_r} sphere {F32, bz_ball_r} sphere {F33, bz_ball_r} sphere {F34, bz_ball_r} sphere {F41, bz_ball_r} sphere {F42, bz_ball_r} sphere {F43, bz_ball_r} sphere {F44, bz_ball_r} cylinder { F11, F12, bz_rod_r } cylinder { F12, F13, bz_rod_r } cylinder { F13, F14, bz_rod_r } cylinder { F21, F22, bz_thin_rod_r } cylinder { F22, F23, bz_thin_rod_r } cylinder { F23, F24, bz_thin_rod_r } cylinder { F31, F32, bz_thin_rod_r } cylinder { F32, F33, bz_thin_rod_r } cylinder { F33, F34, bz_thin_rod_r } cylinder { F41, F42, bz_rod_r } cylinder { F42, F43, bz_rod_r } cylinder { F43, F44, bz_rod_r } cylinder { F11, F21, bz_rod_r } cylinder { F21, F31, bz_rod_r } cylinder { F31, F41, bz_rod_r } cylinder { F12, F22, bz_thin_rod_r } cylinder { F22, F32, bz_thin_rod_r } cylinder { F32, F42, bz_thin_rod_r } cylinder { F13, F23, bz_thin_rod_r } cylinder { F23, F33, bz_thin_rod_r } cylinder { F33, F43, bz_thin_rod_r } cylinder { F14, F24, bz_rod_r } cylinder { F24, F34, bz_rod_r } cylinder { F34, F44, bz_rod_r } texture { pigment { bz_pigm_F } finish { bz_finish_grid } } } #end #declare bz_axes = union{ cylinder { <0,0,0>, <19.0*bz_scale,0,0>, 0.25*bz_scale pigment{ Red }} cylinder { <0,0,0>, <0,19.0*bz_scale,0>, 0.25*bz_scale pigment{ Green }} cylinder { <0,0,0>, <0,0,19.0*bz_scale>, 0.25*bz_scale pigment{ Blue }} cone { <17.9*bz_scale,0,0>, 0.65*bz_scale, <22.0*bz_scale,0,0>, 0.0 pigment{ Red }} cone { <0,17.9*bz_scale,0>, 0.65*bz_scale, <0,22.0*bz_scale,0>, 0.0 pigment{ Green }} cone { <0,0,17.9*bz_scale>, 0.65*bz_scale, <0,0,22.0*bz_scale>, 0.0 pigment{ Blue }} } // Placement for two copies of fish: #declare bz_left_pos = bz_scale*< +18.0, 0, +5.0 >; #declare bz_rite_pos = bz_scale*< -12, 0, 0 >;