// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2003-09-04 15:25:26 by stolfi

// ======================================================================
// CÂMERA 

camera {
  location  <  8.00, 4.00, 3.00 >  // Posição do observador.
  right     -0.75*x                // Largura RELATIVA da imagem.
  up        1.00*y                 // Altura RELATIVA da imagem.      
  sky       z                      // Qual direção é "para cima"?
  look_at   <  0.00, 0.00, 0.00 >  // Para onde 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 * < +50.0, +30.0, +50.0 >              // Posição da lâmpada.
  color rgb 1.2 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
} 

light_source {
  10 * < +50.0, -10.0, +10.0 >             // Posição da lâmpada.
  color rgb 0.8 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
} 

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

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

#declare raio = 2.000;



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

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


  
#declare caixa =
  box {
    <-2,-2,-1>
    <1,1.5,1> 
    texture { tinta_B }
  }

#declare caixa6 = 
  box {
   <-2,-3,-1>
   <1,-2,-1.3>
    texture { tinta_A }	
}	

#declare caixa7 = 
  box {
   <-2,1.5,-1>
   <1,2.5,-1.3>
    texture { tinta_A }	
}			

#declare caixa8 = 
  box {
   <1,-2,-1.3>
   <-2,1.5,-1>
    texture { tinta_A }	
}
  
#declare caixa2 = 
  box {
    <1,1.5,1>
    <-2,1.8,0> 
    texture { tinta_A }
   
  }

#declare caixa3 = 
   box { 
     <-2,1.7,1>
     <1,3,2>
     texture { tinta_A }

}

#declare caixa4 = 
    box {
     <-2,-2,1>
     <1,-3,0>
	 texture { tinta_A }
	
}


#declare caixa5 = 
    box {
      <-2,-2,1>
      <1,-3.5,0>
	 texture { tinta_A }
     }

#declare teste = 
  cone {
    <0,1.8,1>,1
    <0,3,1>,0
     texture { tinta_A }
    
 }
#declare furo = 
  cylinder {
    < -1.00, -2.00, -2.00 >,
    < +1.00, +2.00, +2.00 >,
    1.2
    texture { tinta_B }
  }
 


#declare pino = 
  cylinder {
    < -2.00, +2.00, -1.00 >,
    < +2.00, -2.00, +1.00 >,
    0.75
    texture { tinta_A }
  }

  
// Aqui está a cena, finalmente:

difference 
	{
	  union {	
		object { caixa } 
		object { caixa2 rotate 30*x translate <0,.75,-.6>}
		object { teste rotate 30*x translate <0,.75,-0.6> }
		object {caixa4 rotate 30*x translate <0,-.3,2>}
		object {caixa6  rotate -30*x translate <0,0.2,-1>}	
		object {caixa7 rotate 30*x translate <0,-.2,-1>}	
		object {caixa8  }	
		}
	object {caixa3 rotate 30*x translate <0,.75,-.6> }

}