// ======================================================================
// CORES E TEXTURAS

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

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

#declare tx_fosca = 
  texture{
    pigment{ color rgb < 1.00, 0.80, 0.10 > }
    finish{ diffuse 0.9 ambient 0.1 }
  }

#declare tx_espelho = 
  texture{
    pigment{ color rgb < 1.00, 0.85, 0.30 > }
    finish{ diffuse 0.2 reflection 0.7*< 1.00, 0.85, 0.30 > ambient 0.1 }
  }

#declare tx_vidro = 
  texture{
    pigment{ color rgb < 0.85, 0.95, 1.00 > filter 0.70 }
    finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 }
  }


#declare tx_xadrez =
  texture{
    pigment{ checker color rgb < 0.10, 0.32, 0.60 >, color rgb < 1.00, 0.97, 0.90 > }
    finish{ diffuse 0.9 ambient 0.1 }
    scale 2.0
  }

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

// Partes da cena:

#include "eixos.inc"
#include "retalho.inc"

// Aqui está a cena, finalmente:
#declare p = array[4][4];
#declare p[0][0]= <0,0,0>;
#declare p[0][1]= <0,+1,+1>;
#declare p[0][2]= <0,+2,+1>;
#declare p[0][3]= <0,+3,0>;

#declare p[1][0]= <+1,0,0>;
#declare p[1][1]= <+1,+1,+1>;
#declare p[1][2]= <+1,+2,+1>;
#declare p[1][3]= <+1,+3,0>;

#declare p[2][0]= <+2,0,0>;
#declare p[2][1]= <+2,+1,+1>;
#declare p[2][2]= <+2,+2,+1>;
#declare p[2][3]= <+2,+3,0>;

#declare p[3][0]= <+3,0,0>;
#declare p[3][1]= <+3,+1,+1>;
#declare p[3][2]= <+3,+2,+1>;
#declare p[3][3]= <+3,+3,0>;

#declare q = array[4][4];
#declare q[0][0]= <+3,0,0>;
#declare q[0][1]= <+3,+1,+1>;
#declare q[0][2]= <+3,+2,+1>;
#declare q[0][3]= <+3,+3,0>;

#declare q[1][0]= <+4,0,+1>;
#declare q[1][1]= <+4,+1,+2>;
#declare q[1][2]= <+4,+2,+2>;
#declare q[1][3]= <+4,+3,+1>;

#declare q[2][0]= <+5,0,+2>;
#declare q[2][1]= <+5,+1,+3>;
#declare q[2][2]= <+5,+2,+3>;
#declare q[2][3]= <+5,+3,+2>;

#declare q[3][0]= <+6,0,+3>;
#declare q[3][1]= <+6,+1,+4>;
#declare q[3][2]= <+6,+2,+4>;
#declare q[3][3]= <+6,+3,+3>;

#declare r = array[4][4];
#declare r[0][0]= <+6,0,+3>;
#declare r[0][1]= <+6,+1,+4>;
#declare r[0][2]= <+6,+2,+4>;
#declare r[0][3]= <+6,+3,+3>;

#declare r[1][0]= <+7,0,+3>;
#declare r[1][1]= <+7,+1,+4>;
#declare r[1][2]= <+7,+2,+4>;
#declare r[1][3]= <+7,+3,+3>;

#declare r[2][0]= <+8,0,+3>;
#declare r[2][1]= <+8,+1,+4>;
#declare r[2][2]= <+8,+2,+4>;
#declare r[2][3]= <+8,+3,+3>;

#declare r[3][0]= <+9,0,+3>;
#declare r[3][1]= <+9,+1,+4>;
#declare r[3][2]= <+9,+2,+4>;
#declare r[3][3]= <+9,+3,+3>;

#declare s = array[4][4];
#declare s[0][0]= <+9,0,+3>;
#declare s[0][1]= <+9,+1,+4>;
#declare s[0][2]= <+9,+2,+4>;
#declare s[0][3]= <+9,+3,+3>;

#declare s[1][0]= <+10,0,+3>;
#declare s[1][1]= <+10,+1,+4>;
#declare s[1][2]= <+10,+2,+4>;
#declare s[1][3]= <+10,+3,+3>;

#declare s[2][0]= <+11,0,+3>;
#declare s[2][1]= <+11,+1,+4>;
#declare s[2][2]= <+11,+2,+4>;
#declare s[2][3]= <+11,+3,+3>;

#declare s[3][0]= <+12,0,+3>;
#declare s[3][1]= <+12,+1,+4>;
#declare s[3][2]= <+12,+2,+4>;
#declare s[3][3]= <+12,+3,+3>;

#declare a = array[4][4];
#declare a[0][0]= <+12,0,+3>;
#declare a[0][1]= <+12,+1,+4>;
#declare a[0][2]= <+12,+2,+4>;
#declare a[0][3]= <+12,+3,+3>;

#declare a[1][0]= <+13,0,+2>;
#declare a[1][1]= <+13,+1,+3>;
#declare a[1][2]= <+13,+2,+3>;
#declare a[1][3]= <+13,+3,+2>;

#declare a[2][0]= <+14,0,+1>;
#declare a[2][1]= <+14,+1,+2>;
#declare a[2][2]= <+14,+2,+2>;
#declare a[2][3]= <+14,+3,+1>;

#declare a[3][0]= <+15,0,0>;
#declare a[3][1]= <+15,+1,+1>;
#declare a[3][2]= <+15,+2,+1>;
#declare a[3][3]= <+15,+3,0>;

#declare b = array[4][4];
#declare b[0][0]= <+15,0,0>;
#declare b[0][1]= <+15,+1,+1>;
#declare b[0][2]= <+15,+2,+1>;
#declare b[0][3]= <+15,+3,0>;

#declare b[1][0]= <+16,0,0>;
#declare b[1][1]= <+16,+1,+1>;
#declare b[1][2]= <+16,+2,+1>;
#declare b[1][3]= <+16,+3,0>;

#declare b[2][0]= <+17,0,0>;
#declare b[2][1]= <+17,+1,+1>;
#declare b[2][2]= <+17,+2,+1>;
#declare b[2][3]= <+17,+3,0>;

#declare b[3][0]= <+18,0,0>;
#declare b[3][1]= <+18,+1,+1>;
#declare b[3][2]= <+18,+2,+1>;
#declare b[3][3]= <+18,+3,0>;

retalho(p,0,tx_fosca, tx_plastico, 0, 0, 100, 100)
retalho(q,0,tx_fosca, tx_plastico, 0, 0, 100, 100)
retalho(r,0,tx_fosca, tx_plastico, 0, 0, 100, 100)
retalho(s,0,tx_fosca, tx_plastico, 0, 0, 100, 100)
retalho(a,0,tx_fosca, tx_plastico, 0, 0, 100, 100)
retalho(b,0,tx_fosca, tx_plastico, 0, 0, 100, 100)

#include "camlight.inc"

#declare centro_cena = < 0.00, 0.00, 00 >;
#declare raio_cena = 20.0;
#declare dir_camera = < +20, +20, +20 >;
#declare dist_camera = 5*raio_cena;
#declare intens_luz = 1.20;
camlight(centro_cena, raio_cena, dir_camera, dist_camera, z, intens_luz)