// Last edited on 2007-04-01 20:10:25 by stolfi
// Processed by remove-cam-lights

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

#declare tinta_branca = 
  texture {
    pigment { color rgb < 1.00, 1.00, 1.00 > }
    finish { reflection 0.2 phong 0.4  diffuse 0.8 specular 0.2 roughness 0.005 ambient 0.2 }
  }

#declare tinta_preta = 
  texture {
    pigment { color rgb < 0.00, 0.00, 0.00 > }
    finish { reflection 0.6 phong 0.4  diffuse 0.8 specular 0.2 roughness 0.005 ambient 0.2 }
  }

#declare tinta_azul = 
  texture {
    pigment { color rgb < 0.30, 0.60, 1.00 > }
    finish { reflection 0.1 phong 1.0 diffuse 0.8 specular 0.2 roughness 0.005 ambient 0.2 }
  }

#declare tinta_marrom = 
  texture {
    pigment { color rgb < 0.40, 0.20, 0.10 > }
    finish { reflection 0.1 phong 0.4 diffuse 0.8 specular 0.2 roughness 0.005 ambient 0.2 }
  }

#declare roleta = seed(1);

#declare i = 0;
#declare j = 0;

#while (i < 30)
 #while (j < 30)
  box {
  < i, j, -1 >,
  < i + 1, j + 1, 0.0 >
  #if (mod(i,2) = 0)
   #if (mod(j,2) = 0) 
    texture { tinta_branca }
   #end
   #if (mod(j,2) != 0)
    texture { tinta_preta }
   #end
  #end

  #if (mod(i,2) != 0)
   #if (mod(j,2) = 0) 
    texture { tinta_preta }
   #end
   #if (mod(j,2) != 0)
    texture { tinta_branca }
   #end
  #end
   finish { reflection 0.4 phong 0.6}
  }
  #declare j = j+1;
 #end
 #declare j = 0;
 #declare i = i+1;
#end

#declare deslocamento_rei_a_i = 14.5;
#declare deslocamento_rei_a_j = 0.5;

union {
 cone {
  <0 + deslocamento_rei_a_i, 0 + deslocamento_rei_a_j, 0>, 0.4
  <0 + deslocamento_rei_a_i, 0 + deslocamento_rei_a_j, 1.0>, 0.2
  texture { tinta_azul }
 }
 cone {
  <0 + deslocamento_rei_a_i, 0 + deslocamento_rei_a_j, 1.0>, 0.2
  <0 + deslocamento_rei_a_i, 0 + deslocamento_rei_a_j, 1.4>, 0.4
  texture { tinta_azul }
 }
 box {
  <-0.1 + deslocamento_rei_a_i, -0.1 + deslocamento_rei_a_j, 1.4>,
  <0.1 + deslocamento_rei_a_i, 0.1 + deslocamento_rei_a_j, 2.0>
  texture { tinta_azul }
  
 }
 box {
  <-0.3 + deslocamento_rei_a_i, -0.1 + deslocamento_rei_a_j, 1.6>,
  <0.3 + deslocamento_rei_a_i, 0.1 + deslocamento_rei_a_j, 1.8>
  texture { tinta_azul }
  
 }
}

#declare deslocamento_rei_a_i = 15.5;
#declare deslocamento_rei_a_j = 29.5;

union {
 cone {
  <0 + deslocamento_rei_a_i, 0 + deslocamento_rei_a_j, 0>, 0.4
  <0 + deslocamento_rei_a_i, 0 + deslocamento_rei_a_j, 1.0>, 0.2
  texture { tinta_marrom }
 }
 cone {
  <0 + deslocamento_rei_a_i, 0 + deslocamento_rei_a_j, 1.0>, 0.2
  <0 + deslocamento_rei_a_i, 0 + deslocamento_rei_a_j, 1.4>, 0.4
  texture { tinta_marrom }
 }
 box {
  <-0.1 + deslocamento_rei_a_i, -0.1 + deslocamento_rei_a_j, 1.4>,
  <0.1 + deslocamento_rei_a_i, 0.1 + deslocamento_rei_a_j, 2.0>
  texture { tinta_marrom }
  
 }
 box {
  <-0.3 + deslocamento_rei_a_i, -0.1 + deslocamento_rei_a_j, 1.6>,
  <0.3 + deslocamento_rei_a_i, 0.1 + deslocamento_rei_a_j, 1.8>
  texture { tinta_marrom }
  
 }
}

#declare torres = 0;

#while (torres < 30)

 #declare deslocamento_i = int(rand(roleta)*30) + 0.5;
 #declare deslocamento_j = int(rand(roleta)*2) + 0.5;
 
 union {
  cone {
   <0 + deslocamento_i, 0 + deslocamento_j, 0>, 0.4
   <0 + deslocamento_i, 0 + deslocamento_j, 1.0>, 0.2
   texture { tinta_azul }
  }
  
  difference {
   cylinder {
    < 0 + deslocamento_i, 0 + deslocamento_j, 1.0 >,
    < 0 + deslocamento_i, 0 + deslocamento_j, 1.3 >,
    0.3
    texture { tinta_azul }
   }
   cylinder {
    < 0 + deslocamento_i, 0 + deslocamento_j, 1.1 >,
    < 0 + deslocamento_i, 0 + deslocamento_j, 1.4 >,
    0.28
    texture { tinta_azul }
   }
  }
 }

 #declare torres = torres + 1;
#end

#declare torres = 0;

#while (torres < 30)

 #declare deslocamento_i = int(rand(roleta)*30) + 0.5;
 #declare deslocamento_j = int(rand(roleta)*3) + 27.5;
 
 union {
  cone {
   <0 + deslocamento_i, 0 + deslocamento_j, 0>, 0.4
   <0 + deslocamento_i, 0 + deslocamento_j, 1.0>, 0.2
   texture { tinta_marrom }
  }
  
  difference {
   cylinder {
    < 0 + deslocamento_i, 0 + deslocamento_j, 1.0 >,
    < 0 + deslocamento_i, 0 + deslocamento_j, 1.3 >,
    0.3
    texture { tinta_marrom }
   }
   cylinder {
    < 0 + deslocamento_i, 0 + deslocamento_j, 1.1 >,
    < 0 + deslocamento_i, 0 + deslocamento_j, 1.4 >,
    0.28
    texture { tinta_marrom }
   }
  }
 }

 #declare torres = torres + 1;
#end

#declare peoes = 0;

#while (peoes < 70)

 #declare deslocamento_i = int(rand(roleta)*30) + 0.5;
 #declare deslocamento_j = int(rand(roleta)*20) + 3.5;

 union {
  cone {
   <0 + deslocamento_i, 0 + deslocamento_j, 0>, 0.4
   <0 + deslocamento_i, 0 + deslocamento_j, 0.8>, 0.2
   texture { tinta_azul }
  }
  sphere {
   < 0 + deslocamento_i, 0 + deslocamento_j, 1 >, 0.3 
   texture { tinta_azul }
  }
 }
 #declare peoes = peoes + 1;
#end

#declare peoes = 0;

#while (peoes < 70)

 #declare deslocamento_i = int(rand(roleta)*30) + 0.5;
 #declare deslocamento_j = int(rand(roleta)*20) + 7.5;

 union {
  cone {
   <0 + deslocamento_i, 0 + deslocamento_j, 0>, 0.4
   <0 + deslocamento_i, 0 + deslocamento_j, 0.8>, 0.2
   texture { tinta_marrom }
  }
  sphere {
   < 0 + deslocamento_i, 0 + deslocamento_j, 1 >, 0.3 
   texture { tinta_marrom }
  }
 }
 #declare peoes = peoes + 1;
#end

// Original camera parameters:
// #local cam_ctr = <15.00,15.00,-8.00>
// #local cam_vec = (<35.00,28.0,15.00>-<15.00,15.00,-8.00>)
// #local cam_sky = z

#include "camlight.inc"
camlight(<15.00,15.00,-8.00>,<10,10,10>,50.0,z,1.0)