// 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, 0.00, -10.00 >  // Posição do observador.
  right     -1.75*x                // Largura RELATIVA da imagem.
  up        2.00*y                 // Altura RELATIVA da imagem.      
  sky       x                      // 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 vermelho = 
  texture {
    pigment { color rgb < 1.00, 0.10, 0.10 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

#declare suporte =
  difference { box { <-0.1,-2.00,-2.00>,<0.1,2.00,2.00> texture{tinta_A}}
	  cylinder { <-1.00,0.00,0.00>,<1.00,0.00,0.00>,1.5 texture {tinta_A}}
  }

#declare xicara =
  difference { cone{<-1.5,0.0,0.0>, 1.0, <1.00, 0.00,0.00>, 1.5 texture{vermelho}}
 	  sphere {<1.00,0.00,0.00>,1.4 texture{vermelho}}
 }

#declare caixa =
  box {
	//<-0.1,6.00,-2.00>,<1.00,10.00,2.00> texture{tinta_B}
        <0.0,0.0,0.0>,<1.00,4.0,4.0> texture{tinta_B}
        translate <-0.1,6.0,-2.0>
}

#declare eixo = 
  cylinder {
  	<1.00,8.00,0.00>,<3.00,8.00,0.00>,0.3 texture{tinta_A}
}

#declare roda =
 intersection { cylinder {<3.00,8.00,0.00>, <3.5,8.00,0.00>, 1.5 texture{tinta_B}}
                sphere{<3.00,8.00,0.00>,1.0 texture{tinta_A}} 
 }

#declare braco = 
 union {  cylinder {<3.3,7.0,0.0>, <3.3,0.0,0.0>, 0.2 texture{tinta_A}}
          cylinder {<3.3,0.2,0.0>, <0.3,0.2,0.0>, 0.2 texture{tinta_A}}
 }

#declare objeto =
union {
 object { suporte } 
 object { xicara }
 object { caixa }
 object { braco }
 object { eixo }
 object { roda } 
 translate <0.0,-3.0,0.0>
 }
  
// Aqui está a cena, finalmente:
union {
  object { objeto } 
}