// 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, 2.00 >  // Posição do observador.
  right     -1.00*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_Azul = 
  texture {
    pigment { color rgb < 0.00, 0.00, 1.00 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

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

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

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

  
#declare suporte =
  box {
    <0.75,-0.75,-2.00>,
    <-0.75,0.75,-1.50>
    rotate 80*z
    texture { tinta_Azul  }
  }
  
#declare pino = 
  cylinder {
    < 0.00, 0.00, -1.50 >,
    < 0.00, 0.00, -0.50 >,
    0.25
    rotate 80*z
    texture { tinta_Verde }
  }

#declare cima1 =
  box {
    <-1.00,0.50,-0.50>,
    <0.00,-0.50,0.50>
    rotate 80*z
    texture { tinta_Azul  }
  }

#declare cima2 =
  box {
    <0.00,0.50,-0.50>,
    <1.00,-0.50,0.50>
    texture { tinta_Amarela  }
    rotate 80*z
    rotate 20*x
  }

#declare ponta =
  cone {
    <1.00,0.00,0.00>,0.5
    <2.00,0.00,0.00>,0.1
    texture { tinta_Verde }
    rotate 80*z
    rotate 20*x
  }

#declare dobradica =
  torus {
    0.10,0.05
    translate < 0.00,0.00,0.5 >
    texture { tinta_Vermelha }
    rotate 80*z
  }
  
// Aqui está a cena, finalmente:

union{
  object { suporte } 
  object { pino }
  object { cima1 }
  object { cima2 translate < 0.00,0.2,0.00  > }
  object { ponta translate < 0.00,0.2,0.00  >  }
  object { dobradica }
}