// Last edited on 2007-07-23 14:53:42 by stolfi
// Processed by remove-cam-lights

global_settings { max_trace_level 12 }

#declare tinta_xadrez =
  texture {
    pigment { checker color rgb <0.40,0.50,0.60>, color rgb <0.90,0.95,1.00> }
    finish { ambient 0.6 diffuse 0.4 }
  }

background{ color rgb < 0.75, 0.80, 0.85 > }

#declare ouro =
  texture {
    pigment { color rgb < 1.00, 0.80, 0.3 > }
    finish { ambient 0.1 diffuse 0.1 specular 0.3 roughness 0.1  reflection < 1.00, 0.80, 0.3 > }
  }

#declare prata =
  texture {
    pigment { color rgb < 0.8, 0.80, 0.8 > }
    finish { ambient 0.1 diffuse 0.1 specular 0.3 roughness 0.1  reflection < 0.8, 0.8, 0.8 > }
  }

#declare marrom =
  texture {
    pigment { color rgb < 0.8, 0.5, 0.1 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }
#declare preto =
  texture {
    pigment { color rgb < 0, 0, 0 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }
#declare branco =
  texture {
    pigment { color rgb < 1, 1, 1 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

plane{y,-15.7
  texture { tinta_xadrez }
}

#declare dente =
   box {
      <-0.2,-0.3,0.2><0.2,0.3,-0.2> texture{branco}
   }

#declare olho =
   union {
     sphere {
        <0.0,0.0,0.0> 0.4 texture{branco}
     }
     sphere {
 <0.0,0.0,0.4> 0.1 texture{preto}
     }
  }

#declare orelha =
   difference {
      sphere {
         <0.0,0.0,0.0> 0.8 texture {marrom}
      }
      sphere {
         <0.0,0.0,0.8> 0.5 texture {branco}
      }
   }

#macro cabeca()
  union {
    difference {
      sphere {
        <0.0,0.0,0.0> 3.0 texture { marrom }
      }
      cylinder {
        <-1.5,-1.3,3>,<1.5,-1.3,3>,0.7 texture {preto}
      }
    }
    cylinder {
       <0.0,-2.9,0.0>,<0.0,-3.6,0.0>,0.4 texture {marrom}
    }
    object {dente translate <-0.3,-0.9,2.7>}
    object {dente translate <0.3,-0.9,2.7>}
    object {olho translate <0.7,0.9,3.0>}
    object {olho translate <-0.7,0.9,3.0>}
    object {orelha translate <-1,3.1,0>}
    object {orelha translate <1,3.1,0>}
  }
#end

#macro antebraco()
   union {
     cylinder {
       <0.0,0.0,0.0>,<3.8,0.0,0.0>,0.7 texture {marrom}
     }
     sphere {
       <0.0,0.0,0.0>,0.8 texture {marrom}
     }
     sphere {
       <4.5,0.0,0.0>,1.0 texture {marrom}
     }
   }
#end

#macro antebraco_direito()
   union {
     object { antebraco() }
     cylinder {
       <4.8,0.0,0.0>,<5.5,0.0,0.0>,6.0 texture {prata}
     }
     cone {
       <5.5,0,0>,1.0,<6.8,0,0>,0.0 texture {ouro}
     }
   }
#end

#macro braco(beta)
   union {
     cylinder {<0.0,0.0,0.0>,<3.5,0.0,0.0>,0.7 texture {marrom}}
     sphere {
       <0.0,0.0,0.0>,0.8 texture {marrom}
     }
     object { antebraco() rotate beta*z translate 3.3*x  }
   }
#end

#macro braco_direito(beta)
   union {
     object { braco(beta) }
     object { antebraco_direito() rotate beta*z translate 3.3*x  }
   }
#end

#macro batata()
union {
     cylinder {
       <0.0,0.0,0.0>,<0.0,-5.0,0.0>,0.8 texture {marrom}
     }
     sphere {
       <0.0,0.0,0.0>,1.0 texture {marrom}
     }
     sphere {
       <0,-5.7,0.0>,1.5 texture {marrom}
     }
   }
#end

#macro perna(gama)
   union {
     cylinder {<0.0,0.0,0.0>,<0.0,-5.0,0.0>,0.8 texture {marrom}}
     sphere {
       <0.0,0.0,0.0>,1.0 texture {marrom}
     }
     object { batata() rotate gama*x  translate -4.8*y }
   }
#end

#macro Tronco(a,b,c,d,e,f,g,h,i,j,k)
   union {
    sphere {
      <0,0,0>,4.5 texture { marrom } scale<1.0,1.2,1.0>
    }
    object { cabeca() rotate a*y translate 8.5*y }
    object { braco_direito(b) rotate c*x rotate d*z translate 3.5*x translate 3.0*y }
    object { braco(e) rotate f*x rotate g*z translate 3.5*x translate 3.0*y scale <-1,1,1>}
    object { perna(h) rotate i*x translate -4.5*y translate -1.5*x}
    object { perna(j) rotate k*x translate -4.5*y translate  1.5*x}
rotate 25*y

   }

#end
Tronco(-10.0,50.0,50.00,20.0,-30.00,50.00,20.00,20.0,30.0,0.0,0.00)

// Original camera parameters:
// #local cam_ctr = <0,0,0>
// #local cam_vec = <0.0,10,40.00>
// #local cam_sky = y

#include "camlight.inc"
camlight(<0,0,0>,<3,5,10>,40.0,y,1.0)