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

#include "colors.inc"
#include "stones.inc"

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

#declare cor_coroa = < 1.0, 1.0, 0.0>;

#declare tinta_A =
  texture {
    pigment { rgb cor_coroa }
    finish { reflection cor_coroa*.7 diffuse 0.05
             specular 0.20 roughness 0.05 ambient 0.05 }

  }

#declare tinta_B =
  texture {
    pigment { color rgb <0, 0.6, 0> filter 1}
    finish { diffuse 0.1 specular 1 reflection 0.25
             roughness 0.001 ambient 0.1 }
  }

#declare tinta_C =
  texture {
    pigment { color rgb <1.0, 0.0, 0> filter 1}
    finish { diffuse 0.1 specular 1 reflection 0.25
             roughness 0.001 ambient 0.1 }
  }

plane { x, -5
   texture {
     T_Stone1
  }
}

#macro nos(n)
  union{
 sphere{
  <0,0,0>,1
  texture { tinta_A }
 }
 sphere{
      <0,n*n,-n*n>,1
  texture { tinta_A }
 }
 sphere{
      <0,0,-n*n>,1
  texture { tinta_A }
 }
  }
#end

#macro ligacoes(n)
  union{
 cylinder {
  <0,0,0>,<0,n*n,-n*n>,0.2
  texture { tinta_B }
 }
 cylinder {
  <0,0,0>,<0,0,-n*n>,0.2
  texture { tinta_B }
 }
  }
#end

#macro arvore(n)
 union {
   #if (n>0)
  nos(n)
  ligacoes(n)

  #if(n>2)
    object { arvore(n-1) translate <0,n*n,-n*n> }
    object { arvore(n-1) translate <0,0,-n*n> }
  #end
   #end
 }
#end

object{ arvore(5)}

#include "camlight.inc"
camlight(<0,20,-20>,<70,-10,30>,1.00,z,1.0)