// Last edited on DATE TIME by USER
// Processed by remove-cam-lights

  

  

  

background{ color rgb < 0.75, 0.80, 0.85 > }
global_settings{
 max_trace_level 30
}
plane{z, 0
 texture {pigment{checker
    rgb <1,1,1>, rgb<0,0,0>}
    finish{diffuse 0.5 ambient 0.5}     
    }
 translate -10*z   
}  

#declare raio = 2.000;

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

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

declare base =
 union {
   box {
      < -1.50, -2.50, -0.50 >,<1.50, 2.50, 0.50> 
      texture { tinta_B }
     } 
  box {
   < 0, 0, 0 >,<0.25, 0.25, -4> 
      texture { tinta_B } 
      translate<-1.50, -2.50, -0.50> 
  }  
  box {
   < 0, 0, 0 >,<0.25, 0.25, -4> 
      texture { tinta_B } 
      translate<1.25, -2.5, -0.50> 
  }
  box {
   < 0, 0, 0 >,<0.25, 0.25, -4> 
      texture { tinta_B } 
      translate<1.50, 2.25, -0.50> 
  }
   box {
   < 0, 0, 0 >,<0.25, 0.25, -4> 
      texture { tinta_B } 
      translate<-1.50, 2.25, -0.50> 
  }     
 }

#macro tronco_base(alfa3,alfa2, alfa1, beta1)
 union{
  cylinder {
   <0, 0, 0>, <0, -5, 0>, 0.5
  }
  sphere {
      < 0.00, -5, 0.00 >,0.5 
       }
  object {
   tronco_tronco(alfa2, alfa1, beta1)
   rotate<alfa3,0,0>
   translate <0,-5,0>  
  }
 }
#end
#macro tronco_tronco(alfa2, alfa1, beta1)
 union{
  cylinder {
   <0, 0, 0>, <0, -3, 0>, 0.5
  }
  sphere {
      < 0.00, -3, 0.00 >,0.5 
       }
  object {
   tronco_colher(alfa1,beta1)
   rotate<alfa2,0,0>
   translate <0,-3,0>  
  }
 }
#end

#macro tronco_colher(alfa,beta)
 union{
  cylinder {
   <0, 0, 0>, <0, -4, 0>, 0.5
  }
  sphere {
      < 0.00, -4, 0.00 >,0.5 
       }
  object {
   folha()
   rotate<alfa,0,beta>
   translate <0,-4,0>  
  }
 }
#end

#macro folha()
 union{
  cylinder {
   <0, 0, 0>, <0, -2.1, 0>, 0.5
  }
  intersection{
     sphere {
      < 0.00, -1.50, 0.00 >, 1.0 
      scale<1,2,1>
       }
       
      }
 }
#end

#declare c0=0.0;
#declare c1=0.2;
#declare c2=0.36;
#declare c3=0.52;
#declare c4=0.68;
#declare c5=0.84;
#declare c6=1.00; 
#declare nh=5;
#declare nv=4;
#declare nquadros=nh*nv;
#declare cini=0.0;
#declare cfin =1;
#declare passo = (cfin-cini)/(nquadros-0.9999);
#declare ck =cini;
#declare iv=0;
#while(iv < nv)
 #declare ih=0;
 #while (ih < nh)
  
  #declare ck =ck+passo;
  #declare ih=ih+1;
 #end
 #declare iv=iv+1;
#end 

#macro quadro(ck)
  
  #if((ck>=0.0)&(ck<c1))
   #declare rr=(ck-c0)/(c1-c0);
   #declare b =25+rr*50;
   #declare c=60;
   #declare a=70;
  #end
  #if((ck>=c1)&(ck<c2))
  #declare rr=(ck-c1)/(c2-c1);
   #declare c =60-rr*60;
   #declare b=75;
   #declare a=70;
  #end
  #if((ck>=c2)&(ck<c3))
   #declare rr=(ck-c2)/(c3-c2);
   #declare a =70+rr*30;
   #declare b=75;
   #declare c=0;
  #end
  #if((ck>=c3)&(ck<c4))
   #declare rr=(ck-c3)/(c4-c3);
   #declare a =100-rr*30;
   #declare b=75;
   #declare c=0;
  #end
  #if((ck>=c4)&(ck<c5))
   #declare rr=(ck-c4)/(c5-c4);
   #declare c =rr*60;
   #declare b=75;
   #declare a=70;
  #end
  #if((ck>=c5)&(ck<c6))
   #declare rr=(ck-c4)/(c6-c4);
   #declare b =75-rr*50;
   #declare c=60;
   #declare a=70;
  #end
  union{
   object{ 
    tronco_base(a,b, -15, c)
    rotate<-90,0,0>
    texture{tinta_A}
    }
   object { base  scale<1.5,1,1> }
  }
#end
union{
object {quadro(clock)}
object {quadro(mod(clock+0.3,1.0))
   translate<9, -7,0>
   }
}
 

// Original camera parameters:
// #local cam_ctr = <0,-5,0>
// #local cam_vec = (<-30.00,-10,8>-<0,-5,0>)
// #local cam_sky = z

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