// Last edited on 2009-07-24 13:24:28 by stolfilocal
// Processed by remove-cam-lights

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

#declare corpo1 =
  box {
    < 0.4,0,0.1 >,
    < -0.4,2.5,-0.1 >
    texture {
      pigment { color rgb < 0.35, 0.55, 0.90 > }
      finish { diffuse 0.8 ambient 0.1 reflection 0.1 }
    }
  }

#declare dente1 = 
  cone {
    < 0,2.5,0>,
    0.1
    < 0,3.5,0>,
    0
    texture {
      pigment { color rgb < 0.35, 0.90, 0.55 > }
      finish { diffuse 0.8 ambient 0.1 reflection 0.1 }
    }
  }

#macro garfo ()
  union { 
    object { corpo1 }
    object { dente1 }
    object { dente1 translate < 0.3,0,0 > }
    object { dente1 translate < -0.3,0,0 > }
  }
#end

#declare haste1 =
  cylinder { < 0,0,0 > < 0,2.5,0 > 0.1 
    texture {
      pigment { color rgb < 0.70, 0.75, 0.35 > }
      finish { diffuse 0.8 ambient 0.1 reflection 0.1 }
    }
  }

#declare artic =
  sphere {
    < 0,0,0 >
    0.1
    texture {
      pigment { color rgb < 0.90, 0.55, 0.35 > }
      finish { diffuse 0.8 ambient 0.1 reflection 0.1 }
    }
  }

#macro objeto1 (alfa1, beta1)
  union {
    object { haste1 }
    object { artic translate < 0,2.6,0 > }
    object { garfo() rotate < alfa1,0,beta1 > translate < 0,2.7,0 > }
  }
#end

#declare corpo2 =
  box {
    < 0.2,0,0.1 >,
    < -0.2,-2.5,-0.1 >
    texture {
      pigment { color rgb < 0.90, 0.35, 0.55 > }
      finish { diffuse 0.8 ambient 0.1 reflection 0.1 }
    }
  }

#declare dente2 =
  cone {
    < 0.2,-2.3,0.1 >,
    0.1
    < 0.5,-2.3,0.1 >,
    0
    texture {
      pigment { color rgb < 0.90, 0.35, 0.55 > }
      finish { diffuse 0.8 ambient 0.1 reflection 0.1 }
    }
  }

#macro faca ()
  union {
    object { corpo2 }
    object { dente2 }
    object { dente2 translate < 0,0.2,0 > }
    object { dente2 translate < 0,0.4,0 > }
    object { dente2 translate < 0,0.6,0 > }
    object { dente2 translate < 0,0.8,0 > }
  }
#end

#macro objeto2 (alfa2, beta2)
  union {
    object { faca () rotate < alfa2, 0, beta2 > translate < 0,-2.7,0 > }
    object { artic translate < 0,-2.6,0 > }
    object { haste1 translate < 0,-2.5,0 > }
  }
#end

#declare principal =
  sphere { < 0,0,0 > 0.2
    texture {
      pigment { color rgb < 0.60, 0.85, 0.35 > }
      finish { diffuse 0.8 ambient 0.1 reflection 0.1 }
    }
  }

#macro talher (alfa, beta, gama, delta, epsilon, psi, teta)
  union {
    object { principal }
    object { objeto1 (alfa,beta) translate < 0,0.1,0 > rotate < epsilon,0,teta >}
    object { objeto2 (gama,delta) translate < 0,-0.1,0 > rotate < psi,0,0 >}
  }
#end

union { 
  object { talher (45,45,30,60,75,15,30) translate -1.5*y }
  object { talher (15,25,60,30,15,75,60) translate +1.5*y }
}

// Original camera parameters:
// #local cam_ctr = <0,0,0>
// #local cam_vec = <7,7,7>
// #local cam_sky = z

#include "camlight.inc"
camlight(<0,0,0>,<10,10,10>,17.0,z,1.0)