// Last edited on 2010-10-15 00:51:40 by stolfilocal // Caller must define light_ambient (min 0.0 max 1.0) // DIMENSIONS // All dimensions are in millimeters. #declare SG_base_radius = 51.0; #declare SG_base_height = 7.0; #declare SG_stick_height = 28.0; // Including head and paint. #declare SG_stick_radius = 1.0; #declare SG_head_radius = 1.5; #declare SG_head_height = 2.5; #local eps = 0.01; // Fudge perturbation to avoid coincident surfaces. // TEXTURES #declare SG_base_texture = texture{ pigment{ rgb 1.0000*< 0.5260, 0.3492, 0.2402 > } finish{ ambient light_ambient diffuse 1.0 - light_ambient } } #declare SG_stick_texture = texture{ pigment{ rgb 1.0000*< 0.5000, 0.5000, 0.5000 > } finish{ ambient light_ambient diffuse 1.0 - light_ambient } } #declare SG_white_texture = texture{ pigment{ rgb 1.0000*< 0.9500, 0.9500, 0.9500 >} finish{ ambient light_ambient diffuse 1.0 - light_ambient } } // OBJECTS #declare stick_gauge = // A stick gauge to measure the direction of point-like light sources. // Stick is centered on the Z-axis, with bottom of base disk at Z = 0. union{ // Base disk: cylinder{ <0,0,0>, <0,0,SG_base_height>, SG_base_radius texture { SG_base_texture } } // Stick: cylinder{ <0,0,SG_base_height>, <0,0,SG_stick_height - SG_head_height>, SG_stick_radius texture { SG_stick_texture } } // Head: cylinder{ <0,0,SG_stick_height - SG_head_height + eps >, <0,0,SG_stick_height - eps>, SG_head_radius texture { SG_stick_texture } } // Paint on head: cylinder{ <0,0,SG_stick_height - 2*eps >, <0,0,SG_stick_height>, SG_head_radius + eps texture { SG_white_texture } } }