// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2017-05-07 20:10:09 by stolfilocal

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

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

#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.8, 0.8, 0.8 > filter 0.70 }
    finish{ diffuse 0.03 reflection 0.1 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
  }
  
 #declare tx_teste =
	texture{
	pigment{ color rgb < 0.9, 0.90, 0.1 > }
    finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
	}
	
// para T = 0,..3  a[i][3] = b[i][0] = (a[i][2] + b[i][1])/2	
// para i = 0,..3  a[i][i] = c[0][i] = (a[2][i] + c[1][i])/2	


  #macro automovel()
   
   #declare p1 = array[4][4] 
     {{<0.5, 0.5, 1>, <1, 0.6 ,0.3>, <0 ,0.4 ,0.4> ,<1, 0.5, 0.5>},
	  {<1, 0.3 ,0.4>, <0, 0.4, 1>, <1, 0.2, 1>, <1, 0.3, 1>},
	  {<0.2, 0.3 ,0.2> ,<1 ,1, 1>, <0.3 ,0.4 ,0.3> ,<0.4 ,0.4 ,0>},
	  {<0.5, 1, 0.5>, <0 ,0.2 ,0> ,<1, 0 ,0.4>, <0.5, 0.5, 1>}};
  
   object{ retalho( p1, 0,texture{tx_vidro},texture{tx_plastico},0,0,1,2)}
   
   #declare p2 = array[4][4] 
     {{<0.5, 1, 0.5>, <1, 0.6 ,0.3>, <0 ,0.4 ,0.4> ,<0.5, 0.5, 1>},
	  {<1, 0.3 ,0.4>, <0, 0.4, 1>, <1, 0.2, 1>, <1, 0.3, 1>},
	  {<0.2, 0.3 ,0.2> ,<1 ,1, 1>, <0.3 ,0.4 ,0.3> ,<0.4 ,0.4 ,0>},
	  {<2.2, 2.2, 2.5>, <0 ,0.2 ,0> ,<1, 0 ,0.4>, <1.8, 1.8, 1.5>}};
  
   object{ retalho( p2, 0,texture{tx_vidro},texture{tx_plastico},0,0,0.5,0.8)}
   
   #declare p3 = array[4][4] 
    {{<2.2, 2.2, 2.5>, <1, 2 ,3>, <0 ,0.4 ,0.4> ,<1.8, 1.8, 1.5>},
    {<1, 0.3 ,0.4>, <2, 4, 1>, <1, 2, 1>, <1, 0.3, 1>},
	 {<0.2, 0.3 ,0.2> ,<1 ,2, 1>, <3 ,4 ,3> ,<0.4 ,0.4 ,0>},
	 {<3.8, 3.8, 4.5>, <0 ,0.2 ,0> ,<1, 0 ,0.4>, <4, 3, 2>}};
	
	
  
   object{ retalho( p3, 0,texture{tx_vidro},texture{tx_plastico},0,0,1.5,1.2)}
					
	#declare p4 = array[4][4] 
     {{<3.8, 3.8, 4.5>, <1, 2 ,3>, <0 ,0.4 ,0.4> ,<4, 3, 2>},
	  {<1, 0.3 ,0.4>, <2, 4, 1>, <1, 2, 1>, <1, 0.3, 1>},
	  {<0.2, 0.3 ,0.2> ,<1 ,2, 1>, <3 ,4 ,3> ,<0.4 ,0.4 ,0>},
	  {<-2, 0, 2>, <-2 ,2 ,-5> ,<1, -3 ,4>, <-4, -3, 0>}};
  
   object{ retalho( p4, 0,texture{tx_vidro},texture{tx_plastico},0,0,1.1,2.1)}		
   
   #declare p5 = array[4][4] 
     {{<-2, 0, 2>, <1, 2 ,3>, <0 ,0.4 ,0.4> ,<-4, -3, 0>},
	  {<1, 3 ,4>, <2, 4, 1>, <1, 2, 1>, <1, 3, 1>},
	  {<2, 3 ,2> ,<1 ,2, 1>, <3 ,4 ,3> ,<4 ,4 ,1>},
	  {<3, 0, -2>, <1 ,1 ,-3> ,<2, -1 ,0>, <-1, 2, 2>}};
  
   object{ retalho( p5, 0,texture{tx_vidro},texture{tx_plastico},0,0,0.8,1)}		
   
   #declare p6 = array[4][4] 
     {{<3, 0, -2>, <1, 2 ,3>, <0 ,0.4 ,0.4> ,<-1, 2, 2>},
	  {<1, -3 ,4>, <2, 4, 1>, <1, -2, 1>, <-1, -3, 1>},
	  {<2, 3 ,2> ,<1 ,-2, 1>, <-3 ,4 ,3> ,<4 ,4 ,1>},
	  {<-3, -4, 2>, <-4 ,-1 ,-3> ,<-2, -1 ,0>, <-1, 2, 2>}};
  
   object{ retalho( p6, 0,texture{tx_vidro},texture{tx_plastico},0,0,1,2)}				

  
  #end
  

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


// Partes da cena:

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

// Aqui está a cena, finalmente:

union{
 
  object{ eixos(3.00) }
  automovel()	


  }

#include "camlight.inc"
#declare centro_cena = < 0.00, 0.00, 1.00 >;
#declare raio_cena = 6.0;
#declare dir_camera = < 14.00, 7.00, 4.00 >;
#declare dist_camera = 20*raio_cena;
#declare intens_luz = 1.20;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)