// Last edited on 2009-07-24 11:51:04 by stolfilocal
// Processed by remove-cam-lights

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

#declare branco = 
  texture {
    pigment { color rgb < 1.00, 1.00, 1.00 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }
  
#declare verde = 
  texture {
    pigment { color rgb < 0.00, 1.00, 0.00 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

#declare vermelho = 
  texture {
    pigment { color rgb < 1.00, 0.00, 0.00 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

#declare azul = 
  texture {
    pigment { color rgb < 0.00, 0.00, 1.00 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }
  
#declare amarelo = 
  texture {
    pigment { color rgb < 1.00, 1.00, 0.00 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }  

#macro folha()
  union{
   difference{
 sphere{<0,5,5>, 1 texture{amarelo}}
 sphere{<0,4.5,7>, 2 texture{amarelo}}
  }
    box{<0.5,0,4.5>,<-0.5,5,5> texture{amarelo}}
  }
#end

#macro treco(alfa)
  union{
  box{<1,0,-0.5>,<-1,8,0.5> texture{vermelho}}
  object{ folha() rotate<alfa,0,0> translate<0,4,-4>}
  }
#end

#macro bagulho(gama,alfa)
  union{
    box{<1,0,-0.5>,<-1,8,0.5> texture{vermelho}}
    object{ treco(alfa) rotate<gama,0,0> translate<0,7.5,0>}
  }
#end

#macro troco(beta,gama,alfa)
  union{
    cylinder{<0,0,0>,<0,0,6>, 1 texture{vermelho}}
    object{ bagulho(gama,alfa) rotate<beta,0,0> translate<0,0,6>}
  }
#end

#macro talher(beta,gama,alfa)
  union{
    object{ troco(beta,gama,alfa)}
    box{<5,-5,-5>,<-5,5,0> texture{vermelho}}
}
#end

object{ talher(-40,60,-60)}

object{ talher(20,-10,-90) translate<-20,-10,0>}

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

#include "camlight.inc"
camlight(<0,0,0>,<-8,10,5>,70.0,z,1.0)