#include "stars.inc"
camera {
 location < -1,2,10 >  // Posição do observador.
 //location <15,2,0>
// location <-0.7,3,1>
 right     -x                 // Largura RELATIVA da imagem.
  //up        0.75*y                 // Altura RELATIVA da imagem.      
  sky       y                      // Qual direção é "para cima"?
  look_at   <6, 3, 0 >  // Para ond e a câmera está apontando.
} 
// Nota: os parâmetros "right" e "up" devem ter a mesma proporção
// que os parâmetros ${WIDTH} e ${HEIGHT} no Makefile.

// ======================================================================
// FONTES DE LUZ

/*light_source {
  10 * < 0.0, +20.0, +20.0 >              // Posição da lâmpada.
   color rgb 1.2 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz. 
  //area_light <5, 0, 0>, <0, 0, 5>, 10, 10
  //adaptive 1
 
} 
  */
light_source {
  10 * <-20.0, +10.0,0 >              // Posição da lâmpada.
   color rgb 4 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz. 
  //area_light <5, 0, 0>, <0, 0, 5>, 10, 10
  //adaptive 1
 
} 

light_source {
  10 * <20.0, +10.0,0 >              // Posição da lâmpada.
   color rgb 4 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz. 
  //area_light <5, 0, 0>, <0, 0, 5>, 10, 10
  //adaptive 1
 
} 


/*light_source {
  20 * <0, +10.0, 20.0 >              // Posição da lâmpada.
   color rgb 2 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz. 
  //area_light <5, 0, 0>, <0, 0, 5>, 10, 10
  //adaptive 1
 
}  */

// ======================================================================
// DESCRIÇÃO DA CENA 


/*------------------------CONFIGURACOES GERAIS DO AMBIENETE-------------------------------*/

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

//rgbf (filter)  rgbt (transmit)   
 //*--TEXTURA SKY <--tutorial 
   #declare Clouds0 = pigment{ 
     gradient y
     color_map {
        [0 color <0,0,1>]
        [1 color <0.4,0.5,0.7>]
      }
      scale 2
      translate -1
    
   }
 
 
   #declare Clouds1 = pigment {
      bozo
      turbulence 0.2
      color_map {
        [0.0 color rgb <0,0,1> filter 1]
        [0.5 color rgb <1,1,1>]
        [1.0 color rgb <0,0,1> filter 1]
      }
    }
 
  #declare Clouds4 = pigment {
    granite
    turbulence 1
    color_map {
      [0.0 color rgb <1,1,1> filter 1]
      [0.5 color rgb <1,1,1>]
      [1.0 color rgb <1,1,1> filter 1]
    }
  }

#declare Starfield1 =
//texture {
    pigment {
        granite
        color_map {
            [ 0.000  0.270 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
            [ 0.270  0.280 color rgb <.5,.5,.4> color rgb <.8,.8,.4> ]
            [ 0.280  0.470 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
            [ 0.470  0.480 color rgb <.4,.4,.5> color rgb <.4,.4,.8> ]
            [ 0.480  0.680 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
            [ 0.680  0.690 color rgb <.5,.4,.4> color rgb <.8,.4,.4> ]
            [ 0.690  0.880 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
            [ 0.880  0.890 color rgb <.5,.5,.5> color rgb < 1, 1, 1> ]
            [ 0.890  1.000 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
        }
    turbulence 1
    sine_wave
    scale .5
    }
    //finish { diffuse 0 ambient 1 }
//}
  
  
 sky_sphere{
   pigment { Clouds0} 
    pigment {Clouds1 scale 0.5}
  } 

 /*fog {
  fog_type   2
  distance   100
  color      rgb 0.6 // gray
  fog_offset 0.1
  fog_alt    0.6
  turbulence 0.8
}
*/

#declare ceu = 
  texture{
    pigment { Clouds0} 
    pigment {Clouds1 scale 0.5}
  }

/*------------------------------FIM DESCRICAO MEI AMBIENTE--------------------------*/

/*---------------------------BZGRID-----------------------------------------*/



  
 
/*-----------------------------------TEXTURAS------------------------------*/ 
#declare cor_inseto=
    texture{ 
      pigment{
        gradient x
        color_map {
          [0 color <0.2,0.8,0.0>]
          [1 color <1,0.9,0.1>]
      }
     } 
     
    }  
    
#declare cor_juntas=
      texture{
         pigment {color rgb <0.9,0.1,0.1>}
      
      }    
 
 
#declare sup_mato =
     texture{
        pigment {
         gradient x
         turbulence 1
         color_map{
           [0.00 color rgb <0.9,0.1,0.0>]
           [0.25 color rgb <0.9,0.1,0>]
           [0.50 color rgb <0.9,0.0,0.1>]
           [0.75 color rgb <0.4,0.4,0.4>]
           [1.00 color rgb <0.1,0.1,0>]
         
         } 
         scale 0.5
         
       }  
       normal { bumps 0.5 scale 0.3}
         
     } 
         

    
 #declare sup_transp=
  texture{
     finish {
       ambient 0.1
       diffuse 0.1
       roughness 0.001
       reflection 0.25
       specular 1
     
     }
      
      pigment {color rgb <0.1,0.1,0.3> filter 1  } 
  }  
  //interior {ior 1.5}
  
#declare sup_metalica =
   texture {
      finish{
        ambient 0.05
	diffuse 0.05
	reflection color rgb <0,0.4,0.8>
	specular 0.1
	roughness 0.05
    }   
    
   }  
 
#declare sup_metalica2 =
   texture {
      finish{
        ambient 0.05
	diffuse 0.05
	reflection color rgb <0.9,0.1,0.1>
	specular 0.20
	roughness 0.05
    }   
    
   }              
/*---------------------------FIM--TEXTURAS-------------------------------------*/


/*------------------------------------PISO---------------------------*/
#declare piso = 
   plane{
     <0,1,0>,-3
     //texture {sup_mato}         
     pigment {color rgb <0.3,0.3,0.04>}
     normal { bumps 0.5 scale 0.3}
    // normal { wrinkles 0.3}
  }          
         
        

/*------------------------------------------------------------------*/

/*------------------------------PONTOS---------------------------------------*/

//RETALHO A -parte anterior da cabeça
#declare A11 = < 9.00, 3.80, 0.00>;
#declare A12 = <10.00, 3.10, 0.00>; 
#declare A13 = <11.00, 2.50, 0.00>;
#declare A14 = <12.70, 1.20, 0.00>; 

#declare A21 = < 9.20, 3.20, 0.50>; 
#declare A22 = <10.10, 2.50, 0.60>; 
#declare A23 = <11.30, 2.20, 0.30>; 
#declare A24 = <11.80, 1.20, 0.30>; 

#declare A31 = < 9.00, 2.60, 1.00>; 
#declare A32 = <10.10, 1.80, 1.00>; 
#declare A33 = <11.20, 1.55, 0.60>; 
#declare A34 = <11.90, 1.10, 0.40>; 

#declare A41 = < 9.00, 2.00, 1.50>;
#declare A42 = <10.00, 1.20, 1.20>; 
#declare A43 = <11.00, 1.10, 1.00>; 
#declare A44 = <12.00, 1.00, 0.60>; 


//RETALHO B -parte media da cabeca
#declare B11 = < 6.00, 3.80, 0.00>;
#declare B12 = < 7.00, 3.90, 0.00>; 
#declare B13 = < 8.00, 3.85, 0.00>;
#declare B14 = A11; 

#declare B21 = < 6.00, 3.20, 0.50>; 
#declare B22 = < 7.00, 3.30, 0.60>; 
#declare B23 = < 8.00, 3.25, 0.50>; 
#declare B24 = A21; 

#declare B31 = < 6.00, 2.60, 0.50>; 
#declare B32 = < 7.10, 2.70, 0.60>; 
#declare B33 = < 8.20, 2.65, 0.50>; 
#declare B34 = A31; 

#declare B41 = < 6.00, 2.00, 0.50>;
#declare B42 = < 7.00, 2.20, 0.60>; 
#declare B43 = < 8.00, 2.00, 0.50>; 
#declare B44 = A41; 

//RETALHO C -parte frontal da cabeca
#declare C11 = < 2.09, 2.80, 0.00>;
#declare C12 = < 3.00, 3.00, 0.00>; 
#declare C13 = < 4.50, 3.20, 0.00>;
#declare C14 = B11; 

#declare C21 = < 2.05, 2.40, 0.38>; 
#declare C22 = < 2.80, 2.60, 0.42>; 
#declare C23 = < 4.30, 2.80, 0.50>; 
#declare C24 = B21; 

#declare C31 = < 2.00, 2.20, 0.38>; 
#declare C32 = < 2.70, 2.40, 0.42>; 
#declare C33 = < 4.35, 2.55, 0.50>; 
#declare C34 = B31; 

#declare C41 = < 2.15, 2.00, 0.30>;
#declare C42 = < 3.00, 2.00, 0.40>; 
#declare C43 = < 4.50, 2.00, 0.50>; 
#declare C44 = B41; 

//RETALHO D -nariz frontal da cabeca
#declare D11 = C11;
#declare D12 = C21;
#declare D13 = C31;
#declare D14 = C41;

#declare D21 = < 2.09, 2.80, 0.0000001>;
#declare D22 = < 2.10, 2.42, 0.15>; 
#declare D23 = < 2.10, 2.20, 0.18>; 
#declare D24 = < 1.92, 2.00, 0.20>;

#declare D31 = < 2.09, 2.80, 0.0000002>;
#declare D32 = < 2.00, 2.40, 0.05>; 
#declare D33 = < 2.00, 2.20, 0.08>; 
#declare D34 = < 1.92, 2.00, 0.10>;

#declare D41 = < 2.09, 2.80, 0.0000003>;
#declare D42 = < 1.95, 2.40, 0.00>;
#declare D43 = < 1.90, 2.20, 0.00>;
#declare D44 = < 1.92, 2.00, 0.00>;


/*------------------------------------------------------------------*/


/*-------------------------BZGRID-------------------------------------*/

#declare bz_scale = 0.075;
// Checkered background
#declare bz_checker_bg =
  sphere { 
    <0,0,0>, 100
    hollow no_shadow 
    texture { 
      pigment { checker color rgb <0.7,0.2,0.1> color rgb <1,1,1> } 
      finish { diffuse 0 ambient 1 }
      scale 10
    }
    scale bz_scale
  } 

// Rings for background - axis = Y
#declare bz_ring_set =
  union{
    #declare bz_i = -30;
    #while (bz_i <= 30)
      torus { 100,1 translate 10*bz_i*y }
      #declare bz_i = bz_i + 1;
    #end
  }
  
#declare bz_bg_tone = <0.0,0.9,1.0>;
#declare bz_bg_antitone = <1.0,0.9,0.0>;

#declare bz_rings_bg = 
  union {
    sphere { 
      <0,0,0>, 1
      hollow
      texture { 
        pigment { color rgb 0.9*<1,1,1> + 0.1*bz_bg_tone }
        finish { diffuse 0 ambient 1 }
      }
      scale 300
    }
    object { bz_ring_set 
      rotate 90*z
      texture { 
        pigment { color rgb 0.6*<1,1,1> + 0.2*<1,0,0> } 
        finish { diffuse 0 ambient 1 }
      }
    }
    object { bz_ring_set 
      texture { 
        pigment { color rgb 0.6*<1,1,1> + 0.2*<0,0.5,0> } 
        finish { diffuse 0 ambient 1 }
      }
    }
    object { bz_ring_set 
      rotate 90*x
      texture { 
        pigment { color rgb 0.6*<1,1,1> + 0.2*<0.22,0.22,1.00> } 
        finish { diffuse 0 ambient 1 }
      }
    }
    no_shadow 
    scale bz_scale
  } 

#declare bz_color_A = < 1.0, 0.5, 0.0 >;
#declare bz_color_B = < 1.0, 0.9, 0.1 >; 
#declare bz_color_C = < 0.0, 0.8, 0.1 >;
#declare bz_color_D = < 1.0, 0.1, 0.1 >; 
#declare bz_color_E = < 0.1, 0.5, 1.0 >; 
#declare bz_color_F = < 1.0, 0.0, 1.0 >;

#declare bz_pigm_A = pigment { color rgb bz_color_A }
#declare bz_pigm_B = pigment { color rgb bz_color_B }
#declare bz_pigm_C = pigment { color rgb bz_color_C }
#declare bz_pigm_D = pigment { color rgb bz_color_D }
#declare bz_pigm_E = pigment { color rgb bz_color_E }
#declare bz_pigm_F = pigment { color rgb bz_color_F }

#declare bz_tx_A = 
  texture { 
    pigment { bz_pigm_A }
    finish { diffuse 0.30 reflection 0.40*<1,1,1>+0.30*bz_color_A ambient 0.00 }
  }

#declare bz_tx_B = 
  texture { 
    pigment { bz_pigm_B }
    finish { diffuse 0.30 reflection 0.40*<1,1,1>+0.30*bz_color_B ambient 0.00 }
  }

#declare bz_tx_C = 
  texture { 
    pigment { bz_pigm_C }
    finish { diffuse 0.30 reflection 0.40*<1,1,1>+0.30*bz_color_C ambient 0.00 }
  }

#declare bz_tx_D = 
  texture { 
    pigment { bz_pigm_D }
    finish { diffuse 0.30 reflection 0.40*<1,1,1>+0.30*bz_color_D ambient 0.00 }
  }

#declare bz_tx_E = 
  texture { 
    pigment { bz_pigm_E }
    finish { diffuse 0.30 reflection 0.40*<1,1,1>+0.30*bz_color_E ambient 0.00 }
  }

#declare bz_tx_F = 
  texture { 
    pigment { bz_pigm_F }
    finish { diffuse 0.30 reflection 0.40*<1,1,1>+0.30*bz_color_F ambient 0.00 }
  }

#declare bz_ball_r = 0.2 * bz_scale*2;
#declare bz_rod_r = 0.5 * bz_ball_r*1.2;
#declare bz_thin_rod_r = 0.3 * bz_ball_r;

#declare bz_finish_grid = 
  finish { diffuse 0.60 ambient 0.20 }

#ifdef (A11)

#declare bz_grid_A = 
  union {
    sphere {A11, bz_ball_r}
    sphere {A12, bz_ball_r}
    sphere {A13, bz_ball_r}
    sphere {A14, bz_ball_r}
    sphere {A21, bz_ball_r}
    sphere {A22, bz_ball_r}
    sphere {A23, bz_ball_r}
    sphere {A24, bz_ball_r}
    sphere {A31, bz_ball_r}
    sphere {A32, bz_ball_r}
    sphere {A33, bz_ball_r}
    sphere {A34, bz_ball_r}
    sphere {A41, bz_ball_r}
    sphere {A42, bz_ball_r}
    sphere {A43, bz_ball_r}
    sphere {A44, bz_ball_r}
    
    cylinder { A11, A12, bz_rod_r }
    cylinder { A12, A13, bz_rod_r }
    cylinder { A13, A14, bz_rod_r }

    cylinder { A21, A22, bz_thin_rod_r }
    cylinder { A22, A23, bz_thin_rod_r }
    cylinder { A23, A24, bz_thin_rod_r }

    cylinder { A31, A32, bz_thin_rod_r }
    cylinder { A32, A33, bz_thin_rod_r }
    cylinder { A33, A34, bz_thin_rod_r }

    cylinder { A41, A42, bz_rod_r }
    cylinder { A42, A43, bz_rod_r }
    cylinder { A43, A44, bz_rod_r }

    cylinder { A11, A21, bz_rod_r }
    cylinder { A21, A31, bz_rod_r }
    cylinder { A31, A41, bz_rod_r }

    cylinder { A12, A22, bz_thin_rod_r }
    cylinder { A22, A32, bz_thin_rod_r }
    cylinder { A32, A42, bz_thin_rod_r }

    cylinder { A13, A23, bz_thin_rod_r }
    cylinder { A23, A33, bz_thin_rod_r }
    cylinder { A33, A43, bz_thin_rod_r }

    cylinder { A14, A24, bz_rod_r }
    cylinder { A24, A34, bz_rod_r }
    cylinder { A34, A44, bz_rod_r }

    texture { pigment { bz_pigm_A } finish { bz_finish_grid } } 
  }  

#end

#ifdef (B11)

#declare bz_grid_B = 
  union {
    sphere {B11, bz_ball_r}
    sphere {B12, bz_ball_r}
    sphere {B13, bz_ball_r}
    sphere {B14, bz_ball_r}
    sphere {B21, bz_ball_r}
    sphere {B22, bz_ball_r}
    sphere {B23, bz_ball_r}
    sphere {B24, bz_ball_r}
    sphere {B31, bz_ball_r}
    sphere {B32, bz_ball_r}
    sphere {B33, bz_ball_r}
    sphere {B34, bz_ball_r}
    sphere {B41, bz_ball_r}
    sphere {B42, bz_ball_r}
    sphere {B43, bz_ball_r}
    sphere {B44, bz_ball_r}
    
    cylinder { B11, B12, bz_rod_r }
    cylinder { B12, B13, bz_rod_r }
    cylinder { B13, B14, bz_rod_r }

    cylinder { B21, B22, bz_thin_rod_r }
    cylinder { B22, B23, bz_thin_rod_r }
    cylinder { B23, B24, bz_thin_rod_r }

    cylinder { B31, B32, bz_thin_rod_r }
    cylinder { B32, B33, bz_thin_rod_r }
    cylinder { B33, B34, bz_thin_rod_r }

    cylinder { B41, B42, bz_rod_r }
    cylinder { B42, B43, bz_rod_r }
    cylinder { B43, B44, bz_rod_r }

    cylinder { B11, B21, bz_rod_r }
    cylinder { B21, B31, bz_rod_r }
    cylinder { B31, B41, bz_rod_r }

    cylinder { B12, B22, bz_thin_rod_r }
    cylinder { B22, B32, bz_thin_rod_r }
    cylinder { B32, B42, bz_thin_rod_r }

    cylinder { B13, B23, bz_thin_rod_r }
    cylinder { B23, B33, bz_thin_rod_r }
    cylinder { B33, B43, bz_thin_rod_r }

    cylinder { B14, B24, bz_rod_r }
    cylinder { B24, B34, bz_rod_r }
    cylinder { B34, B44, bz_rod_r }

    texture { pigment { bz_pigm_B } finish { bz_finish_grid } } 
  }  
  

#end

#ifdef (C11)

#declare bz_grid_C = 
  union {
    sphere {C11, bz_ball_r}
    sphere {C12, bz_ball_r}
    sphere {C13, bz_ball_r}
    sphere {C14, bz_ball_r}
    sphere {C21, bz_ball_r}
    sphere {C22, bz_ball_r}
    sphere {C23, bz_ball_r}
    sphere {C24, bz_ball_r}
    sphere {C31, bz_ball_r}
    sphere {C32, bz_ball_r}
    sphere {C33, bz_ball_r}
    sphere {C34, bz_ball_r}
    sphere {C41, bz_ball_r}
    sphere {C42, bz_ball_r}
    sphere {C43, bz_ball_r}
    sphere {C44, bz_ball_r}
    
    cylinder { C11, C12, bz_rod_r }
    cylinder { C12, C13, bz_rod_r }
    cylinder { C13, C14, bz_rod_r }

    cylinder { C21, C22, bz_thin_rod_r }
    cylinder { C22, C23, bz_thin_rod_r }
    cylinder { C23, C24, bz_thin_rod_r }

    cylinder { C31, C32, bz_thin_rod_r }
    cylinder { C32, C33, bz_thin_rod_r }
    cylinder { C33, C34, bz_thin_rod_r }

    cylinder { C41, C42, bz_rod_r }
    cylinder { C42, C43, bz_rod_r }
    cylinder { C43, C44, bz_rod_r }

    cylinder { C11, C21, bz_rod_r }
    cylinder { C21, C31, bz_rod_r }
    cylinder { C31, C41, bz_rod_r }

    cylinder { C12, C22, bz_thin_rod_r }
    cylinder { C22, C32, bz_thin_rod_r }
    cylinder { C32, C42, bz_thin_rod_r }

    cylinder { C13, C23, bz_thin_rod_r }
    cylinder { C23, C33, bz_thin_rod_r }
    cylinder { C33, C43, bz_thin_rod_r }

    cylinder { C14, C24, bz_rod_r }
    cylinder { C24, C34, bz_rod_r }
    cylinder { C34, C44, bz_rod_r }

    texture { pigment { bz_pigm_C } finish { bz_finish_grid } } 
  }  

#end

#ifdef (D11)

#declare bz_grid_D = 
  union {
    sphere {D11, bz_ball_r}
    sphere {D12, bz_ball_r}
    sphere {D13, bz_ball_r}
    sphere {D14, bz_ball_r}
    sphere {D21, bz_ball_r}
    sphere {D22, bz_ball_r}
    sphere {D23, bz_ball_r}
    sphere {D24, bz_ball_r}
    sphere {D31, bz_ball_r}
    sphere {D32, bz_ball_r}
    sphere {D33, bz_ball_r}
    sphere {D34, bz_ball_r}
    sphere {D41, bz_ball_r}
    sphere {D42, bz_ball_r}
    sphere {D43, bz_ball_r}
    sphere {D44, bz_ball_r}
    
    cylinder { D11, D12, bz_rod_r }
    cylinder { D12, D13, bz_rod_r }
    cylinder { D13, D14, bz_rod_r }

    cylinder { D21, D22, bz_thin_rod_r }
    cylinder { D22, D23, bz_thin_rod_r }
    cylinder { D23, D24, bz_thin_rod_r }

    cylinder { D31, D32, bz_thin_rod_r }
    cylinder { D32, D33, bz_thin_rod_r }
    cylinder { D33, D34, bz_thin_rod_r }

    cylinder { D41, D42, bz_rod_r }
    cylinder { D42, D43, bz_rod_r }
    cylinder { D43, D44, bz_rod_r }

    cylinder { D11, D21, bz_rod_r }
    cylinder { D21, D31, bz_rod_r }
    cylinder { D31, D41, bz_rod_r }

    cylinder { D12, D22, bz_thin_rod_r }
    cylinder { D22, D32, bz_thin_rod_r }
    cylinder { D32, D42, bz_thin_rod_r }

    cylinder { D13, D23, bz_thin_rod_r }
    cylinder { D23, D33, bz_thin_rod_r }
    cylinder { D33, D43, bz_thin_rod_r }

    cylinder { D14, D24, bz_rod_r }
    cylinder { D24, D34, bz_rod_r }
    cylinder { D34, D44, bz_rod_r }

    texture { pigment { bz_pigm_D } finish { bz_finish_grid } } 
  }  
  

#end

#ifdef (E11)

#declare bz_grid_E = 
  union {
    sphere {E11, bz_ball_r}
    sphere {E12, bz_ball_r}
    sphere {E13, bz_ball_r}
    sphere {E14, bz_ball_r}
    sphere {E21, bz_ball_r}
    sphere {E22, bz_ball_r}
    sphere {E23, bz_ball_r}
    sphere {E24, bz_ball_r}
    sphere {E31, bz_ball_r}
    sphere {E32, bz_ball_r}
    sphere {E33, bz_ball_r}
    sphere {E34, bz_ball_r}
    sphere {E41, bz_ball_r}
    sphere {E42, bz_ball_r}
    sphere {E43, bz_ball_r}
    sphere {E44, bz_ball_r}
    
    cylinder { E11, E12, bz_rod_r }
    cylinder { E12, E13, bz_rod_r }
    cylinder { E13, E14, bz_rod_r }

    cylinder { E21, E22, bz_thin_rod_r }
    cylinder { E22, E23, bz_thin_rod_r }
    cylinder { E23, E24, bz_thin_rod_r }

    cylinder { E31, E32, bz_thin_rod_r }
    cylinder { E32, E33, bz_thin_rod_r }
    cylinder { E33, E34, bz_thin_rod_r }

    cylinder { E41, E42, bz_rod_r }
    cylinder { E42, E43, bz_rod_r }
    cylinder { E43, E44, bz_rod_r }

    cylinder { E11, E21, bz_rod_r }
    cylinder { E21, E31, bz_rod_r }
    cylinder { E31, E41, bz_rod_r }

    cylinder { E12, E22, bz_thin_rod_r }
    cylinder { E22, E32, bz_thin_rod_r }
    cylinder { E32, E42, bz_thin_rod_r }

    cylinder { E13, E23, bz_thin_rod_r }
    cylinder { E23, E33, bz_thin_rod_r }
    cylinder { E33, E43, bz_thin_rod_r }

    cylinder { E14, E24, bz_rod_r }
    cylinder { E24, E34, bz_rod_r }
    cylinder { E34, E44, bz_rod_r }

    texture { pigment { bz_pigm_E } finish { bz_finish_grid } } 
  }  
  

#end

#ifdef (F11)

#declare bz_grid_F = 
  union {
    sphere {F11, bz_ball_r}
    sphere {F12, bz_ball_r}
    sphere {F13, bz_ball_r}
    sphere {F14, bz_ball_r}
    sphere {F21, bz_ball_r}
    sphere {F22, bz_ball_r}
    sphere {F23, bz_ball_r}
    sphere {F24, bz_ball_r}
    sphere {F31, bz_ball_r}
    sphere {F32, bz_ball_r}
    sphere {F33, bz_ball_r}
    sphere {F34, bz_ball_r}
    sphere {F41, bz_ball_r}
    sphere {F42, bz_ball_r}
    sphere {F43, bz_ball_r}
    sphere {F44, bz_ball_r}
    
    cylinder { F11, F12, bz_rod_r }
    cylinder { F12, F13, bz_rod_r }
    cylinder { F13, F14, bz_rod_r }

    cylinder { F21, F22, bz_thin_rod_r }
    cylinder { F22, F23, bz_thin_rod_r }
    cylinder { F23, F24, bz_thin_rod_r }

    cylinder { F31, F32, bz_thin_rod_r }
    cylinder { F32, F33, bz_thin_rod_r }
    cylinder { F33, F34, bz_thin_rod_r }

    cylinder { F41, F42, bz_rod_r }
    cylinder { F42, F43, bz_rod_r }
    cylinder { F43, F44, bz_rod_r }

    cylinder { F11, F21, bz_rod_r }
    cylinder { F21, F31, bz_rod_r }
    cylinder { F31, F41, bz_rod_r }

    cylinder { F12, F22, bz_thin_rod_r }
    cylinder { F22, F32, bz_thin_rod_r }
    cylinder { F32, F42, bz_thin_rod_r }

    cylinder { F13, F23, bz_thin_rod_r }
    cylinder { F23, F33, bz_thin_rod_r }
    cylinder { F33, F43, bz_thin_rod_r }

    cylinder { F14, F24, bz_rod_r }
    cylinder { F24, F34, bz_rod_r }
    cylinder { F34, F44, bz_rod_r }

    texture { pigment { bz_pigm_F } finish { bz_finish_grid } } 
  }  

#end

/*--------------------FIM DO BZGRID------------------------------------------------------*/



/*-----------------------GRIDS-------------------------------------*/

#declare retalho1 = 
  union{
    bicubic_patch{
      type 1
      flatness 0.001
      v_steps 4 u_steps 4
      A11,A12,A13,A14,
      A21,A22,A23,A24,
      A31,A32,A33,A34,
      A41,A42,A43,A44
      texture { cor_juntas }
    }
    object { bz_grid_A }
  }

  
#declare retalho2 = 
   union{
    bicubic_patch{
      type 1
      flatness 0.001
      v_steps 4 u_steps 4
      B11,B12,B13,B14,
      B21,B22,B23,B24,
      B31,B32,B33,B34,
      B41,B42,B43,B44
      texture { pigment {color rgb <0.10,0.9,0.1>} }
    }
    object { bz_grid_B }
  }  
  
  
#declare retalho3 = 
  union{
    bicubic_patch{
      type 1
      flatness 0.001
      v_steps 4 u_steps 4
      C11,C12,C13,C14,
      C21,C22,C23,C24,
      C31,C32,C33,C34,
      C41,C42,C43,C44
      texture { pigment {color rgb <0.10,0.1,0.9>} }
    }
    object { bz_grid_C }
  }  
  

#declare retalho4 = 
  union{
    bicubic_patch{
      type 1
      flatness 0.001
      v_steps 4 u_steps 4
      D11,D12,D13,D14,
      D21,D22,D23,D24,
      D31,D32,D33,D34,
      D41,D42,D43,D44
      texture { pigment {color rgb <0.7,0.5,0.1>} }
    }
    //object { bz_grid_A }
  }  
  
  
/*----------------------------------------------------------------*/

 



/*-------------------CENA----------------------*/
//representa a parte superior da cabeca do alien, sem a mandibula e sem os dentes!
//que faltou fazer


//object {piso}
object {retalho1}
object {retalho1 scale <1,1,-1>}

object {retalho2}
object {retalho2 scale <1,1,-1>}

object {retalho3}
object {retalho3 scale <1,1,-1>}

object {retalho4}
object {retalho4 scale <1,1,-1>}