#include "colors.inc" #include "glass.inc" #include "metals.inc" #include "woods.inc" #include "stones.inc" #include "lego00.inc" #include "lego_deco.inc" #include "textures.inc" #declare dodecawire = union { union { cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 0*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 72*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 144*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 216*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 288*y } } union { cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 0*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 72*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 144*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 216*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 288*y } rotate <-63.435,36,0> } union { cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 0*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 72*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 144*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 216*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 288*y } rotate <-63.435,108,0> } union { cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 0*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 72*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 144*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 216*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 288*y } rotate <-63.435,180,0> } union { cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 0*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 72*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 144*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 216*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 288*y } rotate <-63.435,252,0> } union { cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 0*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 72*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 144*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 216*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 288*y } rotate <-63.435,324,0> } union { cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 0*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 72*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 144*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 216*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 288*y } rotate <116.565,36,0> } union { cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 0*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 72*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 144*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 216*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 288*y } rotate <116.565,108,0> } union { cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 0*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 72*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 144*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 216*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 288*y } rotate <116.565,180,0> } union { cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 0*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 72*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 144*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 216*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 288*y } rotate <116.565,252,0> } union { cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 0*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 72*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 144*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 216*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 288*y } rotate <116.565,324,0> } union { cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 0*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 72*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 144*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 216*y } cylinder { <-.44903,1,.61803>,<.44903,1,.61803>,.03 rotate 288*y } rotate <180,0,0> } sphere { <0,1,-.76474>,.03 rotate 0*y } sphere { <0,1,-.76474>,.03 rotate 72*y } sphere { <0,1,-.76474>,.03 rotate 144*y } sphere { <0,1,-.76474>,.03 rotate 216*y } sphere { <0,1,-.76474>,.03 rotate 288*y } sphere { <0,-1,.76474>,.03 rotate 0*y } sphere { <0,-1,.76474>,.03 rotate 72*y } sphere { <0,-1,.76474>,.03 rotate 144*y } sphere { <0,-1,.76474>,.03 rotate 216*y } sphere { <0,-1,.76474>,.03 rotate 288*y } sphere { <0,1,-.76474>,.03 rotate <-63.435,36,0> } sphere { <0,1,-.76474>,.03 rotate <-63.435,108,0> } sphere { <0,1,-.76474>,.03 rotate <-63.435,180,0> } sphere { <0,1,-.76474>,.03 rotate <-63.435,252,0> } sphere { <0,1,-.76474>,.03 rotate <-63.435,324,0> } sphere { <0,-1,.76474>,.03 rotate <-63.435,36,0> } sphere { <0,-1,.76474>,.03 rotate <-63.435,108,0> } sphere { <0,-1,.76474>,.03 rotate <-63.435,180,0> } sphere { <0,-1,.76474>,.03 rotate <-63.435,252,0> } sphere { <0,-1,.76474>,.03 rotate <-63.435,324,0> } } #declare dodecaglass = union { prism { .98,1.02,6 <-.44903,.61803>,<.44903,.61803>,<.72731,-.23632>,<0,-.76474>,<-.72731,-.23632>,<-.44903,.61803> rotate <0,0,0> } prism { .98,1.02,6 <-.44903,.61803>,<.44903,.61803>,<.72731,-.23632>,<0,-.76474>,<-.72731,-.23632>,<-.44903,.61803> rotate <-63.435,36,0> } prism { .98,1.02,6 <-.44903,.61803>,<.44903,.61803>,<.72731,-.23632>,<0,-.76474>,<-.72731,-.23632>,<-.44903,.61803> rotate <-63.435,108,0> } prism { .98,1.02,6 <-.44903,.61803>,<.44903,.61803>,<.72731,-.23632>,<0,-.76474>,<-.72731,-.23632>,<-.44903,.61803> rotate <-63.435,180,0> } prism { .98,1.02,6 <-.44903,.61803>,<.44903,.61803>,<.72731,-.23632>,<0,-.76474>,<-.72731,-.23632>,<-.44903,.61803> rotate <-63.435,252,0> } prism { .98,1.02,6 <-.44903,.61803>,<.44903,.61803>,<.72731,-.23632>,<0,-.76474>,<-.72731,-.23632>,<-.44903,.61803> rotate <-63.435,324,0> } prism { .98,1.02,6 <-.44903,.61803>,<.44903,.61803>,<.72731,-.23632>,<0,-.76474>,<-.72731,-.23632>,<-.44903,.61803> rotate <116.565,36,0> } prism { .98,1.02,6 <-.44903,.61803>,<.44903,.61803>,<.72731,-.23632>,<0,-.76474>,<-.72731,-.23632>,<-.44903,.61803> rotate <116.565,108,0> } prism { .98,1.02,6 <-.44903,.61803>,<.44903,.61803>,<.72731,-.23632>,<0,-.76474>,<-.72731,-.23632>,<-.44903,.61803> rotate <116.565,180,0> } prism { .98,1.02,6 <-.44903,.61803>,<.44903,.61803>,<.72731,-.23632>,<0,-.76474>,<-.72731,-.23632>,<-.44903,.61803> rotate <116.565,252,0> } prism { .98,1.02,6 <-.44903,.61803>,<.44903,.61803>,<.72731,-.23632>,<0,-.76474>,<-.72731,-.23632>,<-.44903,.61803> rotate <116.565,324,0> } prism { .98,1.02,6 <-.44903,.61803>,<.44903,.61803>,<.72731,-.23632>,<0,-.76474>,<-.72731,-.23632>,<-.44903,.61803> rotate <180,0,0> } } #declare compassleg = difference { merge { box { <-.125,-.04688,-.11>,<2.125,.04688,-.015> } box { <-.125,-.03188,-.125>,<2.125,.03188,0> } cylinder { <-.125,-.03188,-.11>,<2.125,-.03188,-.11>,.015 } cylinder { <-.125,-.03188,-.015>,<2.125,-.03188,-.015>,.015 } cylinder { <-.125,.03188,-.11>,<2.125,.03188,-.11>,.015 } cylinder { <-.125,.03188,-.015>,<2.125,.03188,-.015>,.015 } } prism { -.1,.1,4 <1.9375,-.13>,<2.3125,-.13>,<2.3125,.01>,<1.9375,-.13> } prism { -.1,.1,4 <0,.01>,<-.3,.01>,<-.3,-.2>,<0,.01> } cylinder { <0,0,0>,<-.3,0,-.2>,.02344 } box { <1.7188,-.007,-.3>,<2.2,.007,.01> } cylinder { <1.7188,0,-.3>,<1.7188,0,.01>,.02344 } cylinder { <1.7188,0,-.0312>,<2.2,0,-.0312>,.03 } cylinder { <1.9375,-.1,-.095>,<1.9375,.1,-.095>,.0157 } cylinder { <0,-.1,0>,<0,.1,0>,.0313 } box { <.3125,-.1,-.0235>,<.625,.1,.01> } cylinder { <-.2,0,0>,<.2,0,0>,.02344 rotate 45*y translate <.4688,0,-.0743> } cylinder { <-.2,0,0>,<.2,0,0>,.02344 rotate -45*y translate <.4688,0,-.0743> } prism { -.02344,.02344,7 <.4688,-.0743>,<.2688,-.2743>,<.6688,-.2743>,<.4688,-.0743>,<.2688,.1257>,<.6688,.1257>,<.4688,-.0743> } prism { -.1,.1,4 <-.04688,-.13>,<0,-.07>,<.01563,-.13>,<-.04688,-.13> } cylinder { <.4688,-.1,-.0743>,<.4688,.1,-.0743>,.0313 } bounded_by { box { <-.19,-.1,-.13>,<2.13,.1,.01> } } } #declare compassnut = merge { cylinder { <0,.0469,0>,<0,.0623,0>,.0625 } cylinder { <0,.0622,0>,<0,.0935,0>,.0782 } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 0*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 9*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 18*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 27*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 36*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 45*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 54*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 63*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 72*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 81*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 90*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 99*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 108*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 117*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 126*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 135*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 144*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 153*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 162*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 171*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 180*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 189*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 198*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 207*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 216*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 225*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 234*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 243*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 252*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 261*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 270*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 279*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 288*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 297*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 306*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 315*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 324*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 333*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 342*y } cylinder { <0,.0623,.0782>,<0,.0934,.0782>,.008 rotate 351*y } cylinder { <0,-.0469,0>,<0,.12,0>,.0157 } cylinder { <0,-.04688,0>,<0,-.049,0>,.02 } } #declare compasshalf = union { object { compassleg } object { compassnut translate <1.9375,0,-.095> } union { cone { <0,-.0468,0>,.0313 <0,-.035,0>,0 } cone { <0,.0468,0>,.0313 <0,.035,0>,0 } cylinder { <0,-.035,0>,<0,.035,0>,.0313 } translate <.4688,0,-.0743> } } #declare screwthread = intersection { cone { <-.0059,0,0>,.0156 <.0059,0,0>,.0312 } cone { <-.0059,0,0>,.0312 <.0059,0,0>,.0156 } } #declare scrwspace = .012; #declare wheelgrip = union { cylinder { <-.0234,.125,0>,<.0234,.125,0>,.008 rotate 0*x } cylinder { <-.0234,.125,0>,<.0234,.125,0>,.008 rotate 9*x } cylinder { <-.0234,.125,0>,<.0234,.125,0>,.008 rotate 18*x } cylinder { <-.0234,.125,0>,<.0234,.125,0>,.008 rotate 27*x } cylinder { <-.0234,.125,0>,<.0234,.125,0>,.008 rotate 36*x } } #declare compass = union { union { object { compasshalf rotate 12*y } object { compasshalf rotate 12*y rotate 180*x } cone { <2.125,0,-.0312>,.03 <2.28,0,-.0312>,0 rotate 12*y } cylinder { <1.72,0,-.0312>,<2.125,0,-.0312>,.03 rotate 12*y } union { difference { merge { cylinder { <-.19,-.0938,0>,<-.19,.0938,0>,.198 } torus { .19,.008 translate <-.19,-.0938,0> } torus { .19,.008 translate <-.19,.0938,0> } } cylinder { <-.19,-.1,0>,<-.19,.1,0>,.182 } box { <-.19,-.12,-.0625>,<.1,.12,.0625> } cylinder { <-.19,0,0>,<-.4,0,0>,.02344 } } cylinder { <0,0,0>,<-.75,0,0>,.02344 } intersection { union { cone { <0,.04688,0>,.09 <0,.06688,0>,0 } cone { <0,-.04688,0>,.09 <0,-.06688,0>,0 } cylinder { <0,-.04688,0>,<0,.04688,0>,.0313 } } cylinder { <0,-.1,0>,<0,.1,0>,.06 } } } union { cylinder { <-.0234,0,0>,<.0234,0,0>,.125 } object { wheelgrip rotate 0*x } object { wheelgrip rotate 45*x } object { wheelgrip rotate 90*x } object { wheelgrip rotate 145*x } object { wheelgrip rotate 180*x } object { wheelgrip rotate 225*x } object { wheelgrip rotate 270*x } object { wheelgrip rotate 315*x } difference { union { cylinder { <.5,0,0>,<.5625,0,0>,.03125 } cylinder { <-.5,0,0>,<-.5625,0,0>,.03125 } } cylinder { <-.6,0,0>,<.6,0,0>,.0156 } } cylinder { <-.54,0,0>,<.54,0,0>,.0156 } object { screwthread translate scrwspace*0*x } object { screwthread translate scrwspace*-1*x } object { screwthread translate scrwspace*-2*x } object { screwthread translate scrwspace*-3*x } object { screwthread translate scrwspace*-4*x } object { screwthread translate scrwspace*-5*x } object { screwthread translate scrwspace*-6*x } object { screwthread translate scrwspace*-7*x } object { screwthread translate scrwspace*-8*x } object { screwthread translate scrwspace*-9*x } object { screwthread translate scrwspace*-10*x } object { screwthread translate scrwspace*-11*x } object { screwthread translate scrwspace*-12*x } object { screwthread translate scrwspace*-13*x } object { screwthread translate scrwspace*-14*x } object { screwthread translate scrwspace*-15*x } object { screwthread translate scrwspace*-16*x } object { screwthread translate scrwspace*-17*x } object { screwthread translate scrwspace*-18*x } object { screwthread translate scrwspace*-19*x } object { screwthread translate scrwspace*-20*x } object { screwthread translate scrwspace*-21*x } object { screwthread translate scrwspace*-22*x } object { screwthread translate scrwspace*-23*x } object { screwthread translate scrwspace*-24*x } object { screwthread translate scrwspace*-25*x } object { screwthread translate scrwspace*-26*x } object { screwthread translate scrwspace*-27*x } object { screwthread translate scrwspace*-28*x } object { screwthread translate scrwspace*-29*x } object { screwthread translate scrwspace*-30*x } object { screwthread translate scrwspace*-31*x } object { screwthread translate scrwspace*-32*x } object { screwthread translate scrwspace*-33*x } object { screwthread translate scrwspace*-34*x } object { screwthread translate scrwspace*-35*x } object { screwthread translate scrwspace*-36*x } object { screwthread translate scrwspace*-37*x } object { screwthread translate scrwspace*-38*x } object { screwthread translate scrwspace*-39*x } object { screwthread translate scrwspace*-40*x } object { screwthread translate scrwspace*-41*x } object { screwthread translate scrwspace*-42*x } object { screwthread translate scrwspace*1*x } object { screwthread translate scrwspace*2*x } object { screwthread translate scrwspace*3*x } object { screwthread translate scrwspace*4*x } object { screwthread translate scrwspace*5*x } object { screwthread translate scrwspace*6*x } object { screwthread translate scrwspace*7*x } object { screwthread translate scrwspace*8*x } object { screwthread translate scrwspace*9*x } object { screwthread translate scrwspace*10*x } object { screwthread translate scrwspace*11*x } object { screwthread translate scrwspace*12*x } object { screwthread translate scrwspace*13*x } object { screwthread translate scrwspace*14*x } object { screwthread translate scrwspace*15*x } object { screwthread translate scrwspace*16*x } object { screwthread translate scrwspace*17*x } object { screwthread translate scrwspace*18*x } object { screwthread translate scrwspace*19*x } object { screwthread translate scrwspace*20*x } object { screwthread translate scrwspace*21*x } object { screwthread translate scrwspace*22*x } object { screwthread translate scrwspace*23*x } object { screwthread translate scrwspace*24*x } object { screwthread translate scrwspace*25*x } object { screwthread translate scrwspace*26*x } object { screwthread translate scrwspace*27*x } object { screwthread translate scrwspace*28*x } object { screwthread translate scrwspace*29*x } object { screwthread translate scrwspace*30*x } object { screwthread translate scrwspace*31*x } object { screwthread translate scrwspace*32*x } object { screwthread translate scrwspace*33*x } object { screwthread translate scrwspace*34*x } object { screwthread translate scrwspace*35*x } object { screwthread translate scrwspace*36*x } object { screwthread translate scrwspace*37*x } object { screwthread translate scrwspace*38*x } object { screwthread translate scrwspace*39*x } object { screwthread translate scrwspace*40*x } object { screwthread translate scrwspace*41*x } object { screwthread translate scrwspace*42*x } rotate 90*y translate <.4431,0,0> } texture { pigment { Silver*.7 } finish { reflection .4 specular .8 roughness .005 } normal { wrinkles .1 scale .0007 } } } union { cylinder { <-.4688,0,0>,<-.75,0,0>,.0313 } cylinder { <-.5156,0,0>,<-.75,0,0>,.0469 } cylinder { <-.5625,0,0>,<-.875,0,0>,.0625 } texture { pigment { Gray10 } finish { specular .2 roughness .01 } normal { bumps .2 scale .05 } } } superellipsoid { <1,.5> rotate 90*y translate 1*x scale <.25,.03,.03> translate <1.78,0,.0312> texture { pigment { color Gray40 } finish { reflection .05 specular .2 roughness .003 } normal { bumps .2 scale .03 } } rotate -12*y } } #declare triedge = difference { prism { 0,.03125,4 <-1.5,-.866>,<-1.5,.866>,<1.5,-.866>,<-1.5,-.866> } box { <-3,0,-3>,<3,1,3> rotate -25*x translate <0,.01,-.866> } box { <-3,0,-3>,<3,1,3> rotate 25*z translate <-1.5,.01,0> } box { <-3,0,-1>,<3,1,1> rotate -25*x rotate 210*y translate .01*y } intersection { plane { -z,0 translate <0,0,-.466> } plane { -z,0 rotate 90*y translate <-1.1,0,0> } plane { -z,0 translate <0,0,.4> rotate 210*y } } bounded_by { box { <-2.2,-.01,-1.2>,<2,.04,1.2> } } texture { T_Brass_4A } } #declare pen = union { union { intersection { sphere { <0,0,0>,1 scale <1.4,.218,.218> translate <-1.5625,0,0> } box { <-2.688,-.2,-.2>,<-1.563,.2,.2> } } cylinder { <-1.5625,0,0>,<.25,0,0>,.218 } difference { sphere { <0,0,0>,1 scale <3,.25,.25> } box { <-1,-.3,-.3>,<.312,.3,.3> } box { <2.0125,-.3,-.3>,<10,.3,.3> } bounded_by { box { <0,-.3,-.3>,<2.6,.3,.3> } } } sphere { <0,0,0>,.185 scale <1.5,1,1> translate 2.05*x } texture { pigment { Gray05 } finish { reflection .2 specular .95 roughness .0005 } } } union { cone { <-3,0,0>,.055 <-2.688,0,0>,.12 } cylinder { <0,0,0>,<.3125,0,0>,.25 } cylinder { <2.0125,0,0>,<2.075,0,0>,.185 } box { <2.0125,-.093,0>,<2.075,.093,-.3125> } box { <.5,-.093,-.35>,<2.0125,.093,-.375> } intersection { cylinder { <2.0125,-.093,-.3125>,<2.0125,.093,-.3125>,.0625 } box { <2.0125,-.2,-.3125>,<2.5,.2,-.5> } } cylinder { <.5,0,0>,<2.0125,0,0>,1 scale <1,.093,.03> translate -.375*z } intersection { cylinder { <.7,-.093,-.55>,<.7,.093,-.55>,.3 } box { <.5,-.2,0>,<1.5,.2,-.375> } } texture { T_Gold_2C } } cylinder { <.125,0,0>,<.25,0,0>,.27 texture { T_Stone21 } } scale .5 } #declare oillampglass = merge { difference { cylinder { <0,.5625,0>,<0,4.4375,0>,1 } cylinder { <0,.5,0>,<0,4.5,0>,.9375 } cylinder { <.812,2.421875,0>,<1.01,2.421875,0>,.09 } bounded_by { cylinder { <0,-.1,0>,<0,5.1,0>,1.1 } } } torus { .96875,.0625 translate <0,.5625,0> } torus { .96875,.0625 translate <0,4.4375,0> } difference { sphere { <0,0,0>,1 scale <.5,.4375,.5> translate <0,1.4375,0> } sphere { <0,0,0>,1 scale <.4375,.375,.4375> translate <0,1.4375,0> } cone { <.328125,1.4375,0>,.109375 <.328125,1.93751,0>,.046875 } bounded_by { cylinder { <0,-.1,0>,<0,5.1,0>,1.1 } } } difference { cone { <.328125,1.4375,0>,.140625 <.328125,1.9375,0>,.078125 } cone { <.328125,1.437,0>,.109375 <.328125,1.93751,0>,.046875 } sphere { <0,0,0>,1 scale <.438,.38,.438> translate <0,1.4375,0> } } difference { cone { <.8125,2.421875,0>,.078125 <1,2.421875,0>,.109375 } cone { <.812,2.421875,0>,.046875 <1.01,2.421875,0>,.078125 } difference { cylinder { <0,0,0>,<0,4,0>,2 } cylinder { <0,0,0>,<0,4,0>,.9999 } } } difference { torus { .484375,.078125 rotate 90*x translate <.8125,1.93749,0> } box { <0,1.93749,-1>,<2,0,1> } box { <.813,0,-1>,<2,3,1> } torus { .484375,.046875 rotate 90*x translate <.8125,1.93749,0> } cone { <.328125,1.437,0>,.109375 <.328125,1.93751,0>,.046875 } } texture { T_Glass3 } interior { I_Glass } } #declare oillampoil = intersection { sphere { <0,0,0>,1 scale <.4375,.375,.4375> translate <0,1.4375,0> } plane { y,1.6 } texture { pigment { color rgbt <0.86, 0.85, 0.70, 0.6> } finish { reflection 0.3 specular 0.8 roughness 0.002 } } interior { ior 1.3 } } #declare tmpthing = union { cylinder { <0,-.5,.125>,<0,-.00312,.125>,.03125 } cylinder { <0,-.1,.125>,<0,0,.125>,.02813 } torus { .02813,.00312 translate <0,-.00312,.125> } } #declare oillampmetal = intersection { union { object { tmpthing rotate 0*y } object { tmpthing rotate 18*y } object { tmpthing rotate 36*y } object { tmpthing rotate 54*y } object { tmpthing rotate 48*y } object { tmpthing rotate 72*y } object { tmpthing rotate 90*y } object { tmpthing rotate 108*y } object { tmpthing rotate 126*y } object { tmpthing rotate 144*y } object { tmpthing rotate 162*y } object { tmpthing rotate 180*y } object { tmpthing rotate 198*y } object { tmpthing rotate 216*y } object { tmpthing rotate 234*y } object { tmpthing rotate 252*y } object { tmpthing rotate 270*y } object { tmpthing rotate 288*y } object { tmpthing rotate 306*y } object { tmpthing rotate 324*y } object { tmpthing rotate 342*y } cylinder { <0,-.5,0>,<0,0,0>,.125 } union { cylinder { <-.0234,0,0>,<.0234,0,0>,.125 } object { wheelgrip rotate 0*x } object { wheelgrip rotate 45*x } object { wheelgrip rotate 90*x } object { wheelgrip rotate 145*x } object { wheelgrip rotate 180*x } object { wheelgrip rotate 225*x } object { wheelgrip rotate 270*x } rotate 90*y translate <0,-.02,.375> } cylinder { <0,-.02,0>,<0,-.02,.375>,.01563 } translate 1.90625*y } sphere { <0,0,0>,1 scale <.5,.4375,.5> translate <0,1.4375,0> inverse } texture { pigment { color rgb<.5,.5,.5> } finish { reflection .1 specular .6 roughness .002 } } } #declare flameb = merge { intersection { sphere { <0,0,0>,.3 scale <.16,1,.16> } plane { -y,.00001 } } intersection { sphere { <0,0,0>,.3 scale <.1599,.2,.1599> } plane { y,0 } } } #declare flame = union { object { flameb texture { pigment { gradient y turbulence 0.2 translate -.2*y scale .38 color_map { [0.0 rgbt<-.5,-.3,1.2,.6>] [0.1 rgbt<-.5,-.3,1.2,.6>] [0.25 rgbt<.9,.8,.1,.3>] [0.4 rgbt<.9,.9,.8,.2>] [1.0 rgbt<.9,.9,.8,.2>] } } finish { ambient 2 diffuse 0 } } } object { flameb scale 1.1 pigment { color rgbt <.9,.8,.6,.5> } finish { ambient 1 diffuse 0 } } sphere { <0,0,0>,1 hollow texture { pigment { color Clear } } finish { ambient 0 diffuse 0 } interior { media { emission <1,.5,0> density { spherical turbulence .1 color_map { [0.0 rgb<.4,.4,.4>] [0.2 rgb<.7,.7,.7>] [1.0 rgb<1,1,1>] } } } } scale .12 translate .13*y } } global_settings { number_of_waves 1 max_trace_level 20 ambient_light Gray85 } camera { location <1,3.5,-3> look_at <0,0,0> } //camera { location <0,5,0> look_at <0,0,0> } //camera { location <.6,2.5,-1> look_at <.6,0,0> } //light_source { <-400,400,-300> color White } //light_source { <400,400,-300> color White } light_source { <.8,.70,3.5> color White*.28 jitter } light_source { <.8,.76,3.5> color White*.28 jitter } light_source { <.8,.82,3.5> color White*.28 jitter } light_source { <.8,.88,3.5> color White*.28 jitter } light_source { <.8,.94,3.5> color White*.28 jitter } background { color Silver*.7 } object { dodecawire texture { T_Copper_5A } translate <-2.6,0,1> } object { dodecaglass texture { T_Glass3 } interior { I_Glass } translate <-2.6,0,1> } object { triedge rotate 130*y translate <1.5,-1.03,.8> } object { compass translate <-.4431,0,0> rotate <-8,0,-1.1> rotate 27*y translate <-.25,-.895,1.1> } object { pen rotate <-20,0,2> rotate 25*y translate <-2.2,-.895,-1.5> } box { <-1.5,0,-1.9>,<1.5,.001,2.125> pigment { image_map { gif "trigsheet.gif" once } rotate 90*x scale <3,1,4.25> translate <-1.5,0,-2> } rotate -50*y translate <-.3,-1.03,-1> finish { ambient .165 diffuse .99 } } plane { -z,-6.6 texture { pigment { marble turbulence 1.3 color_map { [0.0 color White] [0.1 color Gray95] [0.9 color White] [1.0 color Gray90] } } finish { reflection .13 specular 1 roughness .05 } } } intersection { merge { box { <-3,-2,-20>,<3,-1.03,20> texture { T_Wood34 } translate <0,0,5> } box { <-3,-2,-20>,<3,-1.03,20> texture { T_Wood34 } translate <-6,0,10> } box { <-3,-2,-20>,<3,-1.03,20> texture { T_Wood34 } translate <-6,0,-30> } box { <-3,-2,-20>,<3,-1.03,20> texture { T_Wood34 } translate <-12,0,20> } box { <-3,-2,-20>,<3,-1.03,20> texture { T_Wood34 } translate <-12,0,-20> } box { <-3,-2,-20>,<3,-1.03,20> texture { T_Wood34 } translate <6,0,15> } box { <-3,-2,-20>,<3,-1.03,20> texture { T_Wood34 } translate <6,0,-25> } box { <-3,-2,-20>,<3,-1.03,20> texture { T_Wood34 } translate <12,0,30> } box { <-3,-2,-20>,<3,-1.03,20> texture { T_Wood34 } translate <12,0,-10> } box { <-3,-2,-20>,<3,-1.03,20> texture { T_Wood34 } translate <0,0,-35> } rotate 90*y scale <.4,1,.4> translate 2.8*z } merge { box { <-9,-3,6.5>,<50,0,-50> } box { <-9.3,-1.329,6.8>,<50,-10,-50> } cylinder { <-9,-1.329,6.5>,<50,-1.329,6.5>,.3 } cylinder { <-9,-1.329,6.5>,<-9,-1.329,-50>,.3 } sphere { <-9,-1.329,6.5>,.3 } cylinder { <-9,-1.329,6.5>,<-9,-10,6.5>,.3 } } } union { object { oillampglass } object { oillampoil no_shadow } object { oillampmetal } cylinder { <0,1.3,0>,<0,2,0>,.0312 texture { pigment { color rgb<.9,.9,.8> } normal { bumps .3 scale .02 } } } cylinder { <0,1.95,0>,<0,2.1,0>,.032 texture { pigment { color rgb<.3,.3,.3> } normal { bumps .3 scale .02 } } } object { flame translate 2*y no_shadow } translate <.8,-1.53,3.5> } union { object { torso texture { LegoBlack } translate 2*y } object { shirt texture { LegoBlack } texture { pigment { image_map { sys "st_piratecaptain.bmp" once } } scale <1.95,1.6,1> translate <-.975,0,0> finish { ambient .15 diffuse .9 } } translate 2*y } object { piratehead translate <0,3.6,.5> } height_field { gif "logomap.gif" smooth scale <.5,-.15,.22> translate <-.25,5.013,.39> texture { LegoYellow } } object { left_arm texture { LegoBlack } translate <0,3.2,0> } object { piratehook texture { LegoGray } translate <0,-.6,0> rotate <12.4,0,10.6> translate <1.25,2.05,.63> } object { hand texture { LegoYellow } rotate <12.4,0,-10.6> translate <-1.3,1.7,0> } object { right_arm texture { LegoBlack } translate <0,3.2,0> } object { left_leg texture { LegoBlack } translate 1.45*y } object { pegleg texture { LegoBrown } translate <0,1.45,0> } object { leg_joiner texture { LegoBlack } } rotate -60*y scale .3 translate <-2.6,-.97,1> }