// Last edited on 2005-01-06 00:45:05 by stolfi
// Processed by remove-cam-lights

background{ color rgb <0, 1.0, 0.0 > }

#declare raio = 2.000;

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

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

#macro arvore(m)
 #if(m<8)
 union{
  sphere{ 0.4*<m,m,m>, 0.1 texture{tinta_A}}
  cylinder{0.3*<0,0,0>,<2.4,2.4,2.4> 0.02 texture{tinta_B}}
  arvore(m+2)
  }
 #end
#end

#declare circulos =
union{
 #declare p=1.15;
 #declare s=0.8;
 #while (p<4.6)
  torus {p, 0.01 texture{tinta_B} rotate 90*x translate<0,0,s>}
  #declare p = p + 1.15;
  #declare s = s + 0.8;
 #end
}

union{
object{circulos}
#declare n=0;
#while(n<360)
object{arvore(0) rotate n*z}
#declare n = n+40;
#end
}

#include "camlight.inc"
camlight(<0,0,2.50>,<8,4,-0.5>,1.00,z,1.0)