// 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  <  13, -7, 7 >  // Posição do observador.
  right     -1*x                // Largura RELATIVA da imagem.
  up        0.75*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 tinta_C = 
  texture {
    pigment { color rgb < 1.00, 0, 0 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }
  
#declare dobra = 
  cylinder {
    < 0, 0, 0 >,
    < 0, 0, +3.00 >,
    .1
    texture { tinta_B }
  }

#declare parte1 = 
  box {
	< 0, 0, 0>,
	< 3, 2, 3>
    texture { tinta_A }
  }


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

#declare ponta1 = 
  cone {
    < -1, -3.00, 3 >, 1
    < -1, -6.00, 3.00 >,
    0
    texture { tinta_B }
  }

#declare ponta2 = 
  cone {
    < -1, -3.00, 3 >, 1
    < -1, -6.00, 3.00 >,
    0
    texture { tinta_B }
    rotate 90*z
    translate <0,2,0>
  }

#declare diff = 
  box {
	< -10, -10, 3>,
	< 10, 10, 6>
    texture { tinta_C }	
  }

// Aqui está a cena, finalmente:

difference { 
  union {
    object { dobra } 
    object { parte1 }
    object { parte2 }
    object { ponta1 }
    object { ponta2 }
  }
    object { diff }
}