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

#include "colors.inc"

background{ color rgb < 1, 1, 1 > }

#declare cor_metalico = <0.4, 0.31, 0.25>;
#declare cor_cristal = <0.98, 0.98, 0.98, 0.9>;

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

#declare tx_metalico =
   texture {
     pigment { rgb cor_metalico }
     finish {
       ambient 0.05 diffuse 0.05
       reflection cor_metalico
       specular 0.20 roughness 0.05
     }
   }

#declare tx_cristal =
   texture {

     finish {
       ambient 0 diffuse 0 reflection 0.5
       refraction 0.85 ior 1.5 phong 0.3 phong_size 60
       specular 1 roughness 0.001
     }
     pigment { color rgbf cor_cristal filter 1}
   }

#declare eixos =

union {

        cylinder {
         <-50, 0, 0>, <50, 0, 0>, 0.1
         pigment { color rgb <1, 0, 0> }
        }

        cylinder {
         <0, -50, 0>, <0, 50, 0>, 0.1
         pigment { color rgb <0, 1, 0> }
        }

        cylinder {
         <0, 0, -50>, <0, 0, 50>, 0.1
         pigment { color rgb <0, 0, 1> }
        }
}

#macro cria_arvore(n, a, b, c)
  #if (n > 1)
    object {
      sphere { <a,b,c>, 1}
      pigment {Magenta}
    }
    object {
      sphere { <a,b,c>, 1}
        translate <a-2.6,b-2.5,0>
 pigment {Magenta}
      }
    object {
      cylinder {<a,b,c>, <a,b-2.5,c>, 0.3}
      translate <0,-0.5,0>
      rotate -45*z
      translate <(n-1)*-a, (n-1)*-b,0>
      pigment {Magenta}
    }
    object {
      sphere { <a,b,c>, 1}
      translate <a+2.6,b-2.5,0>
      pigment {Magenta}
    }
    object {
      cylinder {<a,b,c>, <a,b-2.5,c>, 0.3}
      translate <0,-0.5,0>
      rotate 45*z
      translate <(n-1)*a, (n-1)*-b,0>
      pigment {Magenta}
    }
    cria_arvore(n-1,a-2.6,b-2.5,c)
    cria_arvore(n-1,a+2.6,b-2.5,c)
  #end
#end

union {

  cria_arvore(3, 0,0,0)
}

#include "camlight.inc"
camlight(<0,0,0>,<0,6,17>,1.00,y,1.0)