/* This file declares all the objects for good4u.pov. Created by Josh Sullivan, 1995. If you want to use parts of it, please include my name somewhere. */ #declare spike = cone {<0,0,0>,1,<0,3,0>,0} #declare spike_set = union { //center spike object {spike} //first ring object {spike translate z*4 rotate y*0} object {spike translate z*4 rotate y*60} object {spike translate z*4 rotate y*120} object {spike translate z*4 rotate y*180} object {spike translate z*4 rotate y*240} object {spike translate z*4 rotate y*300} //second ring object {spike translate z*8 rotate y*0} object {spike translate z*8 rotate y*30} object {spike translate z*8 rotate y*60} object {spike translate z*8 rotate y*90} object {spike translate z*8 rotate y*120} object {spike translate z*8 rotate y*150} object {spike translate z*8 rotate y*180} object {spike translate z*8 rotate y*210} object {spike translate z*8 rotate y*240} object {spike translate z*8 rotate y*270} object {spike translate z*8 rotate y*300} object {spike translate z*8 rotate y*330} } #declare bottom_pedistal = union { union { object {spike_set} cylinder {<0,0,0>,<0,-3,0>,10} texture {Chrome_Texture} texture { pigment { bozo turbulence .2 color_map { [0.0 color Clear] [0.6 color Clear] [0.6 color rgb <.6,0,0>] [0.8 color Red] [1.0 color Red] } } scale 2 translate 50*x } } union { cone {<0,-3,0>,10,<0,-10,0>,6} cylinder {<0,-10,0>,<0,-100,0>,3} texture {Chrome_Texture} } } #declare top_pedistal = union { object { spike_set texture {Chrome_Texture} texture { pigment { bozo turbulence .2 color_map { [0.0 color Clear] [0.6 color Clear] [0.6 color rgb <.6,0,0>] [0.8 color Red] [1.0 color Red] } } scale 2 } } union { cylinder {<0,0,0>,<0,-3,0>,10} cone {<0,-3,0>,10,<0,-10,0>,6} cylinder {<0,-10,0>,<0,-100,0>,3} texture {Chrome_Texture} } rotate 180*z } //The Following Objects were made using Moray. #declare flame_1 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <-0.189005, -0.040527, 0.008045> <-0.052497, -0.432624, 0.008993> <0.372006, -0.351570, 0.006285> <0.222225, 0.040527, 0.007233> <-2.150412, 0.000000, 2.077259> <-2.555681, -2.621074, 2.077259> <2.443306, -2.377913, 2.077259> <2.443306, -0.364742, 2.077259> <-1.729760, 0.243161, 3.716225> <-1.795429, -1.000000, 3.355191> <1.308554, -1.648430, 4.077259> <0.984339, 0.081054, 4.077259> <0.165833, 0.000000, 8.575792> <0.165825, -0.108409, 8.575806> <0.165818, -0.108409, 8.575917> <0.165785, 0.000000, 8.575830> } } #declare flame_2 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <0.222225, 0.040527, 0.007233> <0.072443, 0.432624, 0.008181> <-0.325513, 0.351570, 0.007097> <-0.189005, -0.040527, 0.008045> <2.443306, -0.364742, 2.077259> <2.443306, 1.648430, 2.077259> <-1.745144, 2.621074, 2.077259> <-2.150412, 0.000000, 2.077259> <0.984339, 0.081054, 4.077259> <0.660125, 1.810537, 4.077259> <-1.664090, 1.486322, 4.077259> <-1.729760, 0.243161, 3.716225> <0.165785, 0.000000, 8.575830> <0.165753, 0.108409, 8.575743> <0.165840, 0.108409, 8.575777> <0.165833, 0.000000, 8.575792> } } #declare flame = union { // flame object { flame_1 } object { flame_2 } light_source {<0,-3,0> color Orange} pigment { gradient z turbulence .8 omega .2 color_map { [0.0 color Clear] [0.1 color Orange] [0.7 color Yellow] } scale <1,1,8> } no_shadow finish {ambient 1 diffuse .1} rotate 90*x } #declare Shield_body = cylinder { <0,0,1>, <0,0,0>, 1 scale <3.000000, 3.000000, 0.500000> rotate <0.000000, -90.000000, 0.000000> translate <0.250000, 0.000000, 0.000000> } #declare Clip_1 = box { <-1, -1, -1>, <1, 1, 1> scale <1.000000, 1.500000, 3.000000> rotate <-30.000000, 0.000000, 0.000000> translate <0.000000, -1.750000, 1.000000> } #declare Clip_2 = box { <-1, -1, -1>, <1, 1, 1> scale <1.000000, 1.500000, 3.000000> rotate <-30.000000, -180.000000, 0.000000> translate <0.000000, -1.750000, -1.000000> } #declare Shield_Clip = union { object { Clip_1 } object { Clip_2 } translate <-.5000000, 0.500000, 0.000000> scale <2,1,1> } #declare Shield = object { Shield_body clipped_by { object { Shield_Clip } } texture { Chrome_Texture } rotate 180*x translate -.75*x } #declare Blade_body = cylinder { <0,0,1>, <0,0,0>, 1 scale <2.750000, 2.750000, 0.200000> translate <0.000000, 0.000000, -0.100000> } #declare Edge_1 = cone { <0,0,0>, 0 <0,0,1>, 1 scale <3.000000, 3.000000, 0.500000> translate <0.000000, 0.000000, -0.500000> } #declare Edge_2 = cone { <0,0,0>, 0 <0,0,1>, 1 scale <3.000000, 3.000000, 0.500000> rotate <-180.000000, 0.000000, 0.000000> translate <0.000000, 0.000000, 0.500000> } #declare Edge_Cut = union { object { Edge_1 } object { Edge_2 } } #declare Blade_Edge = intersection { object { Blade_body } object { Edge_Cut } } #declare Blade_Cut2 = box { <-1, -1, -1>, <1, 1, 1> scale <0.500000, 0.500000, 0.250000> rotate <0.000000, 0.000000, -30.000000> translate <-0.094823, 3.042183, 0.000000> } #declare Blade_Cut1 = box { <-1, -1, -1>, <1, 1, 1> scale <0.750000, 0.750000, 0.250000> rotate <0.000000, 0.000000, -50.000000> translate <0.180633, 3.415794, 0.000000> } #declare Blade_Cut = difference { object { Blade_Cut2 } object { Blade_Cut1 } } #declare Blade = difference { object { Blade_Edge } union { object { Blade_Cut } object { Blade_Cut rotate z*15} object { Blade_Cut rotate z*30} object { Blade_Cut rotate z*45} object { Blade_Cut rotate z*60} object { Blade_Cut rotate z*75} object { Blade_Cut rotate z*90} object { Blade_Cut rotate z*105} object { Blade_Cut rotate z*120} object { Blade_Cut rotate z*135} object { Blade_Cut rotate z*150} object { Blade_Cut rotate z*165} object { Blade_Cut rotate z*180} object { Blade_Cut rotate z*195} object { Blade_Cut rotate z*210} object { Blade_Cut rotate z*225} object { Blade_Cut rotate z*240} object { Blade_Cut rotate z*255} object { Blade_Cut rotate z*270} object { Blade_Cut rotate z*285} object { Blade_Cut rotate z*300} object { Blade_Cut rotate z*315} object { Blade_Cut rotate z*330} object { Blade_Cut rotate z*345} } texture { Bronze_Texture } rotate <90,0,-90> } #declare support_column= cylinder { <0,0,1>, <0,0,0>, 1 texture { Chrome_Texture } scale <1.000000, 1.000000, 100.000000> rotate <-90.000000, 0.000000, 0.000000> } #declare tv_back = box { <-1, -1, -1>, <1, 1, 1> texture { Bronze_Texture } scale <1.500000, 1.500000, 1.500000> translate <0.000000, 0.000000, 1.750000> } #declare screen_box = box { <-1, -1, -1>, <1, 1, 1> scale <2.500000, 2.500000, 0.500000> } #declare screen_box_cut = box { <-1, -1, -1>, <1, 1, 1> scale <1.750000, 1.750000, 0.250000> translate <0.000000, 0.000000, -0.300000> } #declare front_box = difference { object { screen_box } object { screen_box_cut } texture { Bronze_Texture } } #declare Screen = box { <-1, -1, -1>, <1, 1, 1> scale <1.750000, 1.750000, 0.100000> translate <0.000000, 0.000000, -0.250000> } //End of Moray Created Objects #declare robot_arm1= union //arm with torch { union //whole arm { union //lower arm + middle arm { union //lower arm and wrist + apparatus { union //wrist { cylinder {<1.5,0,0>, <1.5,-5,0>, 1} //arm cylinder {<-2.5,0,0>, <-0.05,0,0>,1} cylinder {<0.05,0,0>, <2.5,0,0>,1} cylinder {<-2,0,0>, <2,0,0>, .8} texture {Chrome_Texture} } union //wrist caps { cylinder {<-2.6,0,0>, <-2.5,0,0>, 1} cylinder {<2.6,0,0>, <2.5,0,0>, 1} pigment {color rgb <.5,.5,.5>} finish {Dull ambient .4} } union { box {<3,-5,1.5>, <0,-9,-1.5> texture {Chrome_Texture}} cone {<1.5,-9,0>, .5, <1.5,-10,0>, .25 texture {Chrome_Texture}} object {flame translate <1.5,-10,0>} } rotate 95*x translate y*-20 } union //middle arm and elbow { union { cylinder {<-1.5,0,0>, <-1.5,-20,0>, 1} cylinder {<-2.5,0,0>, <-0.05,0,0>,1} cylinder {<0.05,0,0>, <2.5,0,0>,1} cylinder {<-2,0,0>, <2,0,0>, .8} texture {Chrome_Texture} } union //elbow caps { cylinder {<-2.6,0,0>, <-2.5,0,0>, 1} cylinder {<2.6,0,0>, <2.5,0,0>, 1} pigment {color rgb <.5,.5,.5>} finish {Dull ambient .4} } } rotate 60*x } union //upper arm { cylinder {<1.5,0,0>,<1.5,20,0>,1} sphere{<1.5,20,0>,4} texture {Chrome_Texture} } translate <-1.5,-20,0> rotate <-55,-135,0> } torus { 4, .5 texture { pigment {color Black} finish {Dull} } } } #declare robot_arm2= union //arm with hammer { union //whole arm { union //lower arm + middle arm { union //lower arm and wrist + apparatus { union //wrist { cylinder {<1.5,0,0>, <1.5,-5,0>, 1} //arm cylinder {<-2.5,0,0>, <-0.05,0,0>,1} cylinder {<0.05,0,0>, <2.5,0,0>,1} cylinder {<-2,0,0>, <2,0,0>, .8} texture {Chrome_Texture} } union //wrist caps { cylinder {<-2.6,0,0>, <-2.5,0,0>, 1} cylinder {<2.6,0,0>, <2.5,0,0>, 1} pigment {color rgb <.5,.5,.5>} finish {Dull ambient .4} } union //apparatus { cylinder {<1.5,-6,3>, <1.5,-6,-3>, 2.5} cone {<1.5,-6,3>,1,<1.5,-6,5>,0} cone {<1.5,-6,-3>,1,<1.5,-6,-5>,0} texture {Bronze_Texture} } rotate -75*x translate y*-20 } union //middle arm and elbow { union { cylinder {<-1.5,0,0>, <-1.5,-20,0>, 1} cylinder {<-2.5,0,0>, <-0.05,0,0>,1} cylinder {<0.05,0,0>, <2.5,0,0>,1} cylinder {<-2,0,0>, <2,0,0>, .8} texture {Chrome_Texture} } union //elbow caps { cylinder {<-2.6,0,0>, <-2.5,0,0>, 1} cylinder {<2.6,0,0>, <2.5,0,0>, 1} pigment {color rgb <.5,.5,.5>} finish {Dull ambient .4} } } rotate 110*x } union //upper arm { cylinder {<1.5,0,0>,<1.5,20,0>,1} sphere{<1.5,20,0>,4} texture {Chrome_Texture} } translate <-1.5,-20,0> rotate <-70,-75,0> } torus { 4, .5 texture { pigment {color Black} finish {Dull} } } } #declare robot_arm3= union //arm with needle { union //whole arm { union //lower arm + middle arm { union //lower arm and wrist + apparatus { union //wrist { cylinder {<1.5,0,0>, <1.5,-5,0>, 1} //arm cylinder {<-2.5,0,0>, <-0.05,0,0>,1} cylinder {<0.05,0,0>, <2.5,0,0>,1} cylinder {<-2,0,0>, <2,0,0>, .8} texture {Chrome_Texture} } union //wrist caps { cylinder {<-2.6,0,0>, <-2.5,0,0>, 1} cylinder {<2.6,0,0>, <2.5,0,0>, 1} pigment {color rgb <.5,.5,.5>} finish {Dull ambient .4} } union //apparatus { cylinder {<1.5,-5,0>,<1.5,-8,0>,2 texture {Chrome_Texture}} union //tube { cylinder {<1.5,-8,0>,<1.5,-12,0>,1} cylinder {<1.5,-8,0>,<1.5,-12,0>,.9} cone {<1.5,-12,0>,1,<1.5,-13,0>,0} cone {<1.5,-12,0>,.9,<1.5,-13,0>,0} texture {Glass} } union //goo { cylinder {<1.5,-10,0>,<1.5,-12,0>,.89} cone{<1.5,-12,0>,.89,<1.5,-13,0>,0} pigment {color rgbf <.1,1,.1,.7>} finish {ambient 1 diffuse 0} normal {bumps 1 scale .1} } light_source {<1.5,-11,0> color rgb <.05,.5,.05>} cylinder {<1.5,-12.5,0>,<1.5,-15,0>,.1 texture {Polished_Chrome finish {ambient 1}}} union //plunger { cylinder {<1.5,-8,0>,<1.5,-10,0>,.2} cylinder {<1.5,-10,0>,<1.5,-9.9,0>,.9} pigment {color Gray50} finish {Dull} } no_shadow } rotate 95*x translate y*-20 } union //middle arm and elbow { union { cylinder {<-1.5,0,0>, <-1.5,-20,0>, 1} cylinder {<-2.5,0,0>, <-0.05,0,0>,1} cylinder {<0.05,0,0>, <2.5,0,0>,1} cylinder {<-2,0,0>, <2,0,0>, .8} texture {Chrome_Texture} } union //elbow caps { cylinder {<-2.6,0,0>, <-2.5,0,0>, 1} cylinder {<2.6,0,0>, <2.5,0,0>, 1} pigment {color rgb <.5,.5,.5>} finish {Dull ambient .4} } } rotate 70*x } union //upper arm { cylinder {<1.5,0,0>,<1.5,20,0>,1} sphere{<1.5,20,0>,4} texture {Chrome_Texture} } translate <-1.5,-20,0> rotate <-75,85,0> } torus { 4, .5 texture { pigment {color Black} finish {Dull} } } } #declare robot_arm4= union //arm with buzz saw { union //whole arm { union //lower arm + middle arm { union //lower arm and wrist + apparatus { union //wrist { cylinder {<1.5,0,0>, <1.5,-5,0>, 1} //arm cylinder {<-2.5,0,0>, <-0.05,0,0>,1} cylinder {<0.05,0,0>, <2.5,0,0>,1} cylinder {<-2,0,0>, <2,0,0>, .8} texture {Chrome_Texture} } union //wrist caps { cylinder {<-2.6,0,0>, <-2.5,0,0>, 1} cylinder {<2.6,0,0>, <2.5,0,0>, 1} pigment {color rgb <.5,.5,.5>} finish {Dull ambient .4} } union //apparatus { cone {<1.5,0,0>,1,<1.5,-2,0>,.5 texture {Chrome_Texture}} object {Shield translate <1.5,-3.75,0> scale <2,2,2>} object { Blade scale <1,2,2> translate <1.5,-3.75*2,0> } cylinder {<-1,0,0>,<1,0,0>,.25 texture {Chrome_Texture} scale <1,2,2> translate <1.5,-3.75*2,0>} translate y*-5 } rotate 85*x translate y*-20 } union //middle arm and elbow { union { cylinder {<-1.5,0,0>, <-1.5,-20,0>, 1} cylinder {<-2.5,0,0>, <-0.05,0,0>,1} cylinder {<0.05,0,0>, <2.5,0,0>,1} cylinder {<-2,0,0>, <2,0,0>, .8} texture {Chrome_Texture} } union //elbow caps { cylinder {<-2.6,0,0>, <-2.5,0,0>, 1} cylinder {<2.6,0,0>, <2.5,0,0>, 1} pigment {color rgb <.5,.5,.5>} finish {Dull ambient .4} } } rotate 60*x } union //upper arm { cylinder {<1.5,0,0>,<1.5,20,0>,1} sphere{<1.5,20,0>,4} texture {Chrome_Texture} } translate <-1.5,-20,0> rotate <-60,130,0> } torus { 4, .5 texture { pigment {color Black} finish {Dull} } } } #declare robot_body= //The body of the beast. cylinder { <0,20,0>, <0,200,0>, 20 texture { Brass_Texture normal { bump_map { gif "tech.gif" map_type 2 bump_size 5 interpolate 2 } scale <1,20,1> rotate 45*y } } } #declare sign = //Relax, it's good for you. union { union { cylinder {<0,0,0>,<21,0,0>,.5} cylinder {<21,0,0>,<21,3,0>,.5} cylinder {<0,0,0>,<0,3,0>,.5} cylinder {<0,3,0>,<21,3,0>,.5} cylinder {<0,0,0>,<0,0,10>,.5} cylinder {<21,0,0>,<21,0,10>,.5} cylinder {<21,3,0>,<21,3,10>,.5} cylinder {<0,3,0>,<0,3,10>,.5} sphere {<0,0,0>,.5} sphere {<21,0,0>,.5} sphere {<21,3,0>,.5} sphere {<0,3,0>,.5} translate <-.5,-.5,0> texture {Bronze_Texture} } box { <0,0,0>,<20,3,-.1> pigment { image_map {gif "relax.gif" once} scale <20,2,1> } finish {ambient 1 diffuse .1 reflection .1} } translate <-10,22,-20> } #declare robot = //Attach the arms and sign to the body. union { object{robot_body} object{robot_arm1 translate <-10,20,-10>} object{robot_arm2 translate <-10,20,10>} object{robot_arm3 translate <10,20,10>} object{robot_arm4 translate <10,20,-10>} object{sign} } #declare world = //You are here. sphere { <0,0,0>, 5 pigment { image_map {gif "world3.gif" map_type 1} } finish { ambient .8 diffuse .6 roughness .1 specular .2 } } #declare tv1 = //TV with grahic of the ozone hole. (lower left) union { object { support_column} union { object { tv_back } object { front_box } object { Screen pigment { image_map { gif "ozone.gif" interpolate 2 } scale <3.5, 3.5, 1.000000> translate <-3.5/2, -3.5/2,-.250> } finish {ambient 1 diffuse 0} } scale <2.666667, 2.000000, 2.000000> translate <0.000000, 0.000000, -3.000000> } } #declare tv2 = //TV with the BIOHAZARD symbol on it. (upper left) union { object { support_column} union{ object { tv_back } object { front_box } object { Screen pigment { image_map { gif "biohzd.gif" interpolate 2 once } scale <3.5, 3.5, 1.000000> translate <-3.5/2, -3.5/2,-.250> } finish {ambient 1 diffuse 0} } scale <2.666667, 2.000000, 2.000000> translate <0.000000, 0.000000, -3.000000> } } #declare tv3 = //TV with the nuclear explosion. (middle right) union { object { support_column} union { object { tv_back } object { front_box } object { Screen pigment { image_map { gif "atomic2.gif" interpolate 2 once } scale <3.5, 3.5, 1.000000> translate <-3.5/2, -3.5/2,-.250> scale <1.1,1.1,1> } finish {ambient 1 diffuse 0} } scale <2.666667, 2.000000, 2.000000> translate <0.000000, 0.000000, -3.000000> } } //Thats all, folks.