// The Unicamp logo, without name // Last edited on 1999-10-08 19:21:10 by stolfi // Assumes defined the following things: // These are absolute: // logo_uc_gizmo_slice_min_Y = min Y of pie slices // logo_uc_gizmo_slice_max_Y = max Y of pie slices // logo_uc_gizmo_cut_width = width of cuts // logo_uc_gizmo_ball_R = radius of little balls // logo_uc_gizmo_slice_texture = texture for the sliced-pie body // logo_uc_gizmo_ball_texture = texture for the little balls // logo_uc_gizmo_edge_texture = texture for the edges of the pie slices // Defines // logo_uc_gizmo = // the whole logo, centered on the origin, // with X axis horizontal, Z axis vertical, and Y axis out of the page. // logo_uc_gizmo_min_X = min X of whole logo (conservative) // logo_uc_gizmo_max_X = max X of whole logo (conservative) // logo_uc_gizmo_min_Y = min Y of whole logo (conservative) // logo_uc_gizmo_max_Y = max Y of whole logo (conservative) // logo_uc_gizmo_min_Z = min Z of whole logo (conservative) // logo_uc_gizmo_max_Z = max Z of whole logo (conservative) #declare logo_uc_gizmo_cut_R = logo_uc_gizmo_cut_width / 2; #declare logo_uc_gizmo_outer_ellipse = quadric{ < +02.972651605, 0, +03.559985761 >, < 000.000000000, 0, 000.000000000 >, < 000.000000000, 0, -01.067995728 >, -00.9199003204 } // #declare logo_uc_gizmo_tan_x1 = +0.5747137168; // #declare logo_uc_gizmo_tan_y1 = +0.2213937597; // #declare logo_uc_gizmo_tan_x2 = +0.2618895276; // #declare logo_uc_gizmo_tan_y2 = -0.3228946633; #declare logo_uc_gizmo_corner = intersection{ plane{ < +0.6687988996, 0, -0.7434433617 >, +0.4414072736 } plane{ < +0.9452189910, 0, +0.3264369139 >, +0.6238445342 } } #declare logo_uc_gizmo_ellipse_clipper = plane{ < +0.9648984532, 0, -0.2626232563>, +0.4524123293 } #declare logo_uc_gizmo_corner_clipper = plane{ < -0.9648984532, 0, +0.2626232563>, -0.4524123293 } #declare logo_uc_gizmo_center_hole = quadric{ < +25.00000000, 0, +25.00000000 >, < 000.00000000, 0, 000.00000000 >, < 000.00000000, 0, 000.00000000 >, -01.000000000 } #declare logo_uc_gizmo_corner_hole_R = logo_uc_gizmo_ball_R + logo_uc_gizmo_cut_width; #declare logo_uc_gizmo_corner_hole = quadric{ < +1.0, 0, +1.0 >, < 00.0, 0, 00.0 >, < 00.0, 0, 00.0 >, -1.0 scale < logo_uc_gizmo_corner_hole_R, 1, logo_uc_gizmo_corner_hole_R > } #declare logo_uc_gizmo_ball_1_x = +0.1499386233; #declare logo_uc_gizmo_ball_1_z = -0.3619838578; #declare logo_uc_gizmo_ball_2_x = +0.6600000000; #declare logo_uc_gizmo_ball_2_z = 00.0000000000; #declare logo_uc_gizmo_ball_3_x = +0.2586307598; #declare logo_uc_gizmo_ball_3_z = +0.6243898877; #declare logo_uc_gizmo_basic_tube = difference{ merge{ object{ logo_uc_gizmo_outer_ellipse clipped_by{ object{ logo_uc_gizmo_ellipse_clipper } } } object{ logo_uc_gizmo_corner clipped_by{ object{logo_uc_gizmo_corner_clipper} } } } union{ object{ logo_uc_gizmo_center_hole } object{ logo_uc_gizmo_corner_hole translate < logo_uc_gizmo_ball_1_x, 0, logo_uc_gizmo_ball_1_z > } object{ logo_uc_gizmo_corner_hole translate < logo_uc_gizmo_ball_2_x, 0, logo_uc_gizmo_ball_2_z > } object{ logo_uc_gizmo_corner_hole translate < logo_uc_gizmo_ball_3_x, 0, logo_uc_gizmo_ball_3_z > } } } #declare logo_uc_gizmo_cut_plane_1p = plane { < +1.0000000000, 0, 00.0000000000 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_1m = plane { < -1.0000000000, 0, 00.0000000000 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_2p = plane { < +0.9238795325, 0, +0.3826834325 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_2m = plane { < -0.9238795325, 0, -0.3826834325 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_3p = plane { < +0.7071067810, 0, +0.7071067810 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_3m = plane { < -0.7071067810, 0, -0.7071067810 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_4p = plane { < +0.3826834325, 0, +0.9238795325 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_4m = plane { < -0.3826834325, 0, -0.9238795325 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_5p = plane { < 00.0000000000, 0, +1.0000000000 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_5m = plane { < 00.0000000000, 0, -1.0000000000 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_6p = plane { < -0.3826834325, 0, +0.9238795325 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_6m = plane { < +0.3826834325, 0, -0.9238795325 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_7p = plane { < -0.7071067810, 0, +0.7071067810 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_7m = plane { < +0.7071067810, 0, -0.7071067810 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_8p = plane { < -0.9238795325, 0, +0.3826834325 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_cut_plane_8m = plane { < +0.9238795325, 0, -0.3826834325 >, -logo_uc_gizmo_cut_R } #declare logo_uc_gizmo_basic_slice_01 = intersection{ object{ logo_uc_gizmo_basic_tube } object{ logo_uc_gizmo_cut_plane_1p } object{ logo_uc_gizmo_cut_plane_2m } texture{ logo_uc_gizmo_edge_texture } } #declare logo_uc_gizmo_basic_slice_02 = intersection{ object{ logo_uc_gizmo_basic_tube } object{ logo_uc_gizmo_cut_plane_2p } object{ logo_uc_gizmo_cut_plane_3m } texture{ logo_uc_gizmo_edge_texture } } #declare logo_uc_gizmo_basic_slice_03 = intersection{ object{ logo_uc_gizmo_basic_tube } object{ logo_uc_gizmo_cut_plane_3p } object{ logo_uc_gizmo_cut_plane_4m } texture{ logo_uc_gizmo_edge_texture } } #declare logo_uc_gizmo_basic_slice_04 = intersection{ object{ logo_uc_gizmo_basic_tube } object{ logo_uc_gizmo_cut_plane_4p } object{ logo_uc_gizmo_cut_plane_5m } texture{ logo_uc_gizmo_edge_texture } } #declare logo_uc_gizmo_basic_slice_05 = intersection{ object{ logo_uc_gizmo_basic_tube } object{ logo_uc_gizmo_cut_plane_5p } object{ logo_uc_gizmo_cut_plane_6m } texture{ logo_uc_gizmo_edge_texture } } #declare logo_uc_gizmo_basic_slice_06 = intersection{ object{ logo_uc_gizmo_basic_tube } object{ logo_uc_gizmo_cut_plane_6p } object{ logo_uc_gizmo_cut_plane_7m } texture{ logo_uc_gizmo_edge_texture } } #declare logo_uc_gizmo_basic_slice_07 = intersection{ object{ logo_uc_gizmo_basic_tube } object{ logo_uc_gizmo_cut_plane_7p } object{ logo_uc_gizmo_cut_plane_2p } texture{ logo_uc_gizmo_edge_texture } } #declare logo_uc_gizmo_basic_slice_08 = intersection{ object{ logo_uc_gizmo_basic_tube } object{ logo_uc_gizmo_cut_plane_2m } object{ logo_uc_gizmo_cut_plane_3p } texture{ logo_uc_gizmo_edge_texture } } #declare logo_uc_gizmo_basic_slice_09 = intersection{ object{ logo_uc_gizmo_basic_tube } object{ logo_uc_gizmo_cut_plane_3m } object{ logo_uc_gizmo_cut_plane_5p } texture{ logo_uc_gizmo_edge_texture } } #declare logo_uc_gizmo_basic_slice_10 = intersection{ object{ logo_uc_gizmo_basic_tube } object{ logo_uc_gizmo_cut_plane_5m } object{ logo_uc_gizmo_cut_plane_6p } texture{ logo_uc_gizmo_edge_texture } } #declare logo_uc_gizmo_basic_slice_11 = intersection{ object{ logo_uc_gizmo_basic_tube } object{ logo_uc_gizmo_cut_plane_6m } object{ logo_uc_gizmo_cut_plane_7p } texture{ logo_uc_gizmo_edge_texture } } #declare logo_uc_gizmo_basic_slice_12 = intersection{ object{ logo_uc_gizmo_basic_tube } object{ logo_uc_gizmo_cut_plane_7m } object{ logo_uc_gizmo_cut_plane_8p } texture{ logo_uc_gizmo_edge_texture } } #declare logo_uc_gizmo_basic_slice_13 = intersection{ object{ logo_uc_gizmo_basic_tube } object{ logo_uc_gizmo_cut_plane_8m } object{ logo_uc_gizmo_cut_plane_1m } texture{ logo_uc_gizmo_edge_texture } } #declare logo_uc_gizmo_Y_clipper = intersection{ plane{ < 0, +1, 0 >, +logo_uc_gizmo_slice_max_Y } plane{ < 0, -1, 0 >, -logo_uc_gizmo_slice_min_Y } texture{ logo_uc_gizmo_slice_texture } } #declare logo_uc_gizmo_slice_01 = intersection{ object{ logo_uc_gizmo_basic_slice_01 } object{ logo_uc_gizmo_Y_clipper } bounded_by{ box{ < -0.30, logo_uc_gizmo_slice_min_Y-0.01, +0.15 >, < 00.00, logo_uc_gizmo_slice_max_Y+0.01, +0.70 > } } } #declare logo_uc_gizmo_slice_02 = intersection{ object{ logo_uc_gizmo_basic_slice_02 } object{ logo_uc_gizmo_Y_clipper } bounded_by{ box{ < -0.47, logo_uc_gizmo_slice_min_Y-0.01, +0.10 >, < -0.07, logo_uc_gizmo_slice_max_Y+0.01, +0.65 > } } } #declare logo_uc_gizmo_slice_03 = intersection{ object{ logo_uc_gizmo_basic_slice_03 } object{ logo_uc_gizmo_Y_clipper } bounded_by{ box{ < -0.58, logo_uc_gizmo_slice_min_Y-0.01, +0.05 >, < -0.12, logo_uc_gizmo_slice_max_Y+0.01, +0.47 > } } } #declare logo_uc_gizmo_slice_04 = intersection{ object{ logo_uc_gizmo_basic_slice_04 } object{ logo_uc_gizmo_Y_clipper } bounded_by{ box{ < -0.60, logo_uc_gizmo_slice_min_Y-0.01, 00.00 >, < -0.17, logo_uc_gizmo_slice_max_Y+0.01, +0.25 > } } } #declare logo_uc_gizmo_slice_05 = intersection{ object{ logo_uc_gizmo_basic_slice_05 } object{ logo_uc_gizmo_Y_clipper } bounded_by{ box{ < -0.58, logo_uc_gizmo_slice_min_Y-0.01, -0.20 >, < -0.17, logo_uc_gizmo_slice_max_Y+0.01, 00.00 > } } } #declare logo_uc_gizmo_slice_06 = intersection{ object{ logo_uc_gizmo_basic_slice_06 } object{ logo_uc_gizmo_Y_clipper } bounded_by{ box{ < -0.48, logo_uc_gizmo_slice_min_Y-0.01, -0.35 >, < -0.12, logo_uc_gizmo_slice_max_Y+0.01, -0.08 > } } } #declare logo_uc_gizmo_slice_07 = intersection{ object{ logo_uc_gizmo_basic_slice_07 } object{ logo_uc_gizmo_Y_clipper } bounded_by{ box{ < -0.33, logo_uc_gizmo_slice_min_Y-0.01, -0.42 >, < +0.18, logo_uc_gizmo_slice_max_Y+0.01, -0.12 > } } } #declare logo_uc_gizmo_slice_08 = intersection{ object{ logo_uc_gizmo_basic_slice_08 } object{ logo_uc_gizmo_Y_clipper } bounded_by{ box{ < +0.05, logo_uc_gizmo_slice_min_Y-0.01, -0.40 >, < +0.33, logo_uc_gizmo_slice_max_Y+0.01, -0.12 > } } } #declare logo_uc_gizmo_slice_09 = intersection{ object{ logo_uc_gizmo_basic_slice_09 } object{ logo_uc_gizmo_Y_clipper } bounded_by{ box{ < +0.12, logo_uc_gizmo_slice_min_Y-0.01, -0.33 >, < +0.70, logo_uc_gizmo_slice_max_Y+0.01, 00.00 > } } } #declare logo_uc_gizmo_slice_10 = intersection{ object{ logo_uc_gizmo_basic_slice_10 } object{ logo_uc_gizmo_Y_clipper } bounded_by{ box{ < +0.17, logo_uc_gizmo_slice_min_Y-0.01, 00.00 >, < +0.70, logo_uc_gizmo_slice_max_Y+0.01, +0.25 > } } } #declare logo_uc_gizmo_slice_11 = intersection{ object{ logo_uc_gizmo_basic_slice_11 } object{ logo_uc_gizmo_Y_clipper } bounded_by{ box{ < +0.12, logo_uc_gizmo_slice_min_Y-0.01, +0.05 >, < +0.60, logo_uc_gizmo_slice_max_Y+0.01, +0.47 > } } } #declare logo_uc_gizmo_slice_12 = intersection{ object{ logo_uc_gizmo_basic_slice_12 } object{ logo_uc_gizmo_Y_clipper } bounded_by{ box{ < +0.07, logo_uc_gizmo_slice_min_Y-0.01, +0.12 >, < +0.47, logo_uc_gizmo_slice_max_Y+0.01, +0.65 > } } } #declare logo_uc_gizmo_slice_13 = intersection{ object{ logo_uc_gizmo_basic_slice_13 } object{ logo_uc_gizmo_Y_clipper } bounded_by{ box{ < 00.00, logo_uc_gizmo_slice_min_Y-0.01, +0.17 >, < +0.27, logo_uc_gizmo_slice_max_Y+0.01, +0.68 > } } } #declare logo_uc_gizmo_ball = sphere{ < 0, 0, 0 >, logo_uc_gizmo_ball_R texture{ logo_uc_gizmo_ball_texture } bounded_by{ box{ < -logo_uc_gizmo_ball_R, -logo_uc_gizmo_ball_R, -logo_uc_gizmo_ball_R >, < +logo_uc_gizmo_ball_R, +logo_uc_gizmo_ball_R, +logo_uc_gizmo_ball_R > scale 1.001 } } } #declare logo_uc_gizmo_min_X = -0.70; #declare logo_uc_gizmo_max_X = +0.65 + logo_uc_gizmo_ball_R; #declare logo_uc_gizmo_min_Y = logo_uc_gizmo_slice_min_Y - logo_uc_gizmo_ball_R; #declare logo_uc_gizmo_max_Y = logo_uc_gizmo_slice_max_Y + logo_uc_gizmo_ball_R; #declare logo_uc_gizmo_min_Z = -0.55 - logo_uc_gizmo_ball_R; #declare logo_uc_gizmo_max_Z = +0.55 + logo_uc_gizmo_ball_R; #declare logo_uc_gizmo = union{ object{ logo_uc_gizmo_slice_01 } object{ logo_uc_gizmo_slice_02 } object{ logo_uc_gizmo_slice_03 } object{ logo_uc_gizmo_slice_04 } object{ logo_uc_gizmo_slice_05 } object{ logo_uc_gizmo_slice_06 } object{ logo_uc_gizmo_slice_07 } object{ logo_uc_gizmo_slice_08 } object{ logo_uc_gizmo_slice_09 } object{ logo_uc_gizmo_slice_10 } object{ logo_uc_gizmo_slice_11 } object{ logo_uc_gizmo_slice_12 } object{ logo_uc_gizmo_slice_13 } object{ logo_uc_gizmo_ball translate < logo_uc_gizmo_ball_1_x, 0, logo_uc_gizmo_ball_1_z > } object{ logo_uc_gizmo_ball translate < logo_uc_gizmo_ball_2_x, 0, logo_uc_gizmo_ball_2_z > } object{ logo_uc_gizmo_ball translate < logo_uc_gizmo_ball_3_x, 0, logo_uc_gizmo_ball_3_z > } translate < -0.05, 0, -0.15 > bounded_by{ box{ < logo_uc_gizmo_min_X, logo_uc_gizmo_min_Y, logo_uc_gizmo_min_Z >, < logo_uc_gizmo_max_X, logo_uc_gizmo_max_Y, logo_uc_gizmo_max_Z > } } }