// Exemplo de arquivo de descricao de cena para POV-ray

#include "colors.inc"
#include "metals.inc"
#include "stones.inc"

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

camera {
  location  <38.00, -25.00, 20.00 >  // Posição do observador.
  right     -1.00*x                // Largura RELATIVA da imagem.
  up        0.50*y                 // Altura RELATIVA da imagem.      
  sky       z                      // Qual direção é "para cima"?
  look_at   <  0.00, 10.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 * < 2.50, 2.50, 1.00 >   // Intensidade e corda luz.
} 

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


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

#declare gerador = seed(123456);

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


#declare cor_espelho = < 0.4, 0.4, 0.4 >;
#declare tx_espelho = 
  texture {
    pigment { rgb cor_espelho }
    finish { 
	ambient 0.05 diffuse 0.05
	reflection cor_espelho
	specular 0.20 roughness 0.05
	 }
  }

#declare cor_dedo = 
  texture {
    pigment { Blue }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }


#declare plano = 
	plane {
	  z,-3
          texture {
	     //tx_espelho
	     T_Stone14
	  }
	}

#declare alfa = 30*clock;
#declare beta = 30*clock;
#declare gama = 30*clock;
#declare teta = 40*clock;
#declare vira = 90*clock;

#declare dedo = 
	  cylinder {
	    <0,0,0>,<2,0,0>,0.4
	    texture { cor_dedo }
	  }

#declare mao = 
	union {
	  cylinder {
	    <0,0,0>,<3,0,0>,1
	    pigment { Red }
	  }
	  cylinder {
	    <0,0,0>,<0,1,0>,0.4
	    translate <2,1,0>
	    texture { cor_dedo }
	  }
	  object { dedo rotate teta*y translate <3,0.5,0> }
	  object { dedo rotate -teta*y translate <3,-0.5,0> }
	}

#declare braco =
	union {
	  cylinder {
	    <0,0,0>,<5.5,0,0>,1.25
	    pigment { DarkGreen }
	  }
	  object { mao rotate -gama*y rotate vira*x translate <5,0,0> }
	}

#declare antebraco = 
	union {
	  cylinder {
	    <0,0,0>,<6,0,0>,1.5
	    pigment { Yellow }
	  }
	  object { braco rotate -beta*y translate <5.5,0,0> }
	}

#declare anteantebraco = 
	union {
	  cylinder {
	    <0,0,0>,<9,0,0>,2
	    pigment { Cyan }
	  }
	  object { antebraco rotate -alfa*y translate <8.5,0,0> }
	}



// cena da animacao

union {
object { plano }
object { anteantebraco rotate -vira*z translate <-5,10,0> }
}