// Last edited on 2009-07-24 13:03:09 by stolfilocal
// Processed by remove-cam-lights

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

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

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

#declare roxo =
  texture {
    pigment { color rgb < 0.5, 0.4, 0.6 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

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

#declare lilas =
  texture {
    pigment { color rgb < 0.7, 0.7, 0.9 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

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

#declare plano = 
   plane { 
      y, 0
      texture {
         pigment {
     hexagon rgb <0.8,0.9,0.7>, rgb <0.6,0.5,0.4>, rgb <0.4,0.5,0.6>
  }
    
         finish {
     diffuse 0.5 ambient 0.5
  }
      }
      scale 15
   }

#macro folha ()  
merge
{
   
   cone 
   { 
      <0,0,0>, 1, <0,10,0>, 1
      texture {azul}
   }
   
   
   cone 
   { 
      <-3,10,0>, 1, <3,10,0>, 1
      texture {azul}
   }

   

   cone 
   { 
      <-2,10,0>, 1, <-2,14,0>, 0
      texture {azul}
   }

   

   cone 
   { 
      <0,10,0>, 1, <0,14,0>, 0
      texture {azul}
   }

   

   cone 
   { 
      <2,10,0>, 1, <2,14,0>, 0
      texture {azul}
   }
}
#end

#macro base_1 (alfa)
   union
   {
   cone 
   { 
      <0,0,0>, 3, <0,20,0>, 3
      texture {vermelho}
   }
      
   object
   {
      folha ()
      
      rotate <alfa,0,0>
      translate <0,20,0>
   }
   sphere 
   { 
      <0,20,0>, 3
      texture {vermelho}
   }
   
   
   }
#end

#macro base_2 (beta,alfa)
   union
   {
   cone 
   { 
      <0,0,0>, 5, <0,30,0>, 5
      texture {roxo}
   }
      
   object
   {
      base_1 (alfa)
      
      rotate <beta,0,0>
      translate <0,30,0>
   }
   sphere 
   { 
      <0,30,0>, 5
      texture {roxo}
   }
   }
#end

#macro base_3 (gama, beta,alfa)
   union
   {
   cone 
   { 
      <0,0,0>, 7, <0,40,0>, 7
      texture {lilas}
   }
      
   object
   {
      base_2 (beta,alfa)
      
      rotate <gama,0,0>
      translate <0,40,0>
   }
   sphere 
   { 
      <0,40,0>, 7
      texture {lilas}
   }
   cone 
   { 
      <0,0,0>, 20, <0,1,0>, 20
      texture {amarelo}
   }
   }
#end

object {plano}

object { base_3 (90,-30,70) translate -30*x}

object { base_3 (45,45,60) translate +30*x }

// Original camera parameters:
// #local cam_ctr = <30,5,0>
// #local cam_vec = (<90,80,100>-<30,5,0>)
// #local cam_sky = y

#include "camlight.inc"
camlight(<0,5,0>,<10,5,10>,190.0,y,1.0)