#declare eye_cut = object {intersection{ cylinder {<0,.175/2,0>,<0,.175/2,.175>,.175 rotate x*-lid_angle} cylinder {<0,.175/2,0>,<0,.175/2,-.175>,.175 rotate x*lid_angle} }pigment {Blue}} #declare RayTracer = object { union { difference { intersection { blob {threshold .095 sphere {<.125,1,0>,.2,.4 pigment {color rgb <0,1,0>}} sphere {<-.125,1,0>,.2,.4 pigment {color rgb <0,1,0>}} //sphere {<0,1,-.25>,.2,.4 pigment {color rgb <0,1,0>}} sphere {<0,0,0>,1.1,1.5 scale z*.5 pigment {color rgb <0,1,0>}} cylinder {<0,0,.4>,<0,0,.9>,.075,.75 pigment {color rgb <0,1,0>}} sphere {<0,0,.9>,.15,2.8 pigment {color rgb <0,1,0>}} } box {<-1.3,-1.3,0>,<1.3,1.3,1.5>} } object {eye_cut translate <.125,1,0>} object {eye_cut translate <-.125,1,0>}} difference { intersection { blob {threshold .095 sphere {<.125,1,0>,.2,.4 pigment {color rgb <0,1,0>}} sphere {<-.125,1,0>,.2,.4 pigment {color rgb <0,1,0>}} sphere {<0,1.0,-.45>,.2,.5 pigment {color rgb <0,1,0>}} sphere {<0,0,0>,1.1,1.5 scale z*1.6 pigment {color rgb <0,1,0>}} } box {<-1.3,-1.3,-2>,<1.3,1.3,0>} } object {eye_cut translate <.125,1,0>} object {eye_cut translate <-.125,1,0>} //lower mouth opening intersection { cylinder {<0,0,0>,<0,.5,0>,.35 scale lower_mouth_setting}//} box {<-.35,0,-.35>,<.35,.5,0>} translate <0,.5,-.9> pigment {Red}} //upper mouth opening intersection { cylinder {<0,0,0>,<0,.5,0>,.35 scale upper_mouth_setting}//} box {<-.35,0,0>,<.35,.5,.35>} translate <0,.5,-.9> pigment {Red}} } //eyelids torus {.15,.025 rotate (<90,0,0>+lid_angle) translate <-.1,1,0> pigment {Green}} torus {.15,.025 rotate (<90,0,0>+lid_angle) translate <.1,1,0> pigment {Green}} torus {.15,.025 rotate (<90,0,0>-lid_angle) translate <-.1,1,0> pigment {Green}} torus {.15,.025 rotate (<90,0,0>-lid_angle) translate <.1,1,0> pigment {Green}} //eyeball variables //left eyeball intersection {sphere {<0,0,0>,.15 pigment {eye_color rotate }} object {eye_cut} translate <-.1,1,0>} //right eyeball intersection {sphere {<0,0,0>,.15 pigment {eye_color rotate }} object {eye_cut} translate <.1,1,0>} //upper teeth - stationary intersection { difference {cylinder {<0,0,0>,<0,0,-.1>,.35} cylinder {<0,0,0>,<0,0,-.1>,.35}} box{<-.35,0,-.1>,<.35,.35,0>} pigment {White} scale x*.6 translate <0,.4,-.8> } //lower teeth - move to mimic lower jaw mobility intersection { difference {cylinder {<0,0,0>,<0,0,-.1>,.35} cylinder {<0,0,0>,<0,0,-.1>,.35}} box{<-.35,0,-.1>,<.35,.35,0>} pigment {White} scale x*.575 translate <0,.3,lower_teeth_move> }}}