// 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  <  27.00, 20.00, 10.00 >  // Posição do observador.
  right     -1.00*x                // Largura RELATIVA da imagem.
  up        0.5*y                 // Altura RELATIVA da imagem.      
  sky       z                      // Qual direção é "para cima"?
  look_at   <  0.00, -10.00, -1.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 cor da 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 cor da luz.
} 

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

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

#declare tt = clock;

  #declare tinta_A = 
  texture {
    pigment { color rgb < 0.70, 0.80, 0.90 > }
    finish { diffuse 0.5 specular 0.6 roughness 0.05 ambient 0.2 }
  }

  #declare tinta_B = 
  texture {
    pigment { color rgb <0, 0.3, 1.0> }
    finish { diffuse 0.1 specular 1 reflection 0.1 
             roughness 0.001 ambient 0.3 }
  }
  
  #declare tinta_C = 
  texture {
    pigment { color rgb <0.9, 0.6, 0.3> }
    finish { diffuse 0.1 specular 0.3  
             roughness 0.001 ambient 0.4 }
  }

  #declare tinta_D = 
  texture {
    pigment { color rgb <0.9, 0.8, 0.7> }
    finish { diffuse 0.1 specular 1  
             roughness 0.001 ambient 0.3 }
  }

  #declare tinta_E = 
  texture {
    pigment { color rgb <0.9, 0.9, 0.0> }
    finish { diffuse 0.1 specular 1  
             roughness 0.001 ambient 0.3 }
  }

#declare tinta_F = 
  texture {
    pigment { color rgb < 0.90, 0.10, 0.10 > }
    finish { diffuse 0.5 specular 0.0 roughness 0.05 ambient 0.2  }
  }

plane { z, -4.0
  texture {
    pigment { checker <0,.6,0>, <0,.8,0> }
    finish { ambient 0.001 diffuse 0.7 }
    scale 2.0 
  }
}
 
#declare alpha1 = -40;
#declare alpha2 = -30;
#declare alpha3 = -50;
#declare alpha4 = -20;

#declare dedoPeq = 
  box { < 1.0, -0.5, -0.3>,
        < -0.3, 0.5, 0.3 > 
        texture { tinta_E }
      }

#declare dedoGde = 
  box { < 2.0, -0.5, -0.3>,
        < -0.3, 0.5, 0.3 >
        texture { tinta_F }
      }

#declare mao =
  union {
    box { < 2.5, -1.2, -0.4 >,
          < -0.3, 1.2, 0.4 >
          texture { tinta_B }
    }
    object { dedoPeq rotate alpha3*tt*y translate < 2.5, -0.6, 0 > }
    object { dedoGde rotate alpha4*tt*y translate < 2.5, 0.6, 0 > }
}

#declare antebraco = 
  union {
    cone { < -0.3, 0.0, 0.0 >, 1.0,
           < 6.5, 0.0, 0.0 >, 1.4
           texture { tinta_D }
    }
    object { mao rotate alpha2*tt*y translate 6.5*x }
  }

#declare braco = 
  union {
    cone { < -0.3, 0.0, 0.0 >, 2.0,
           < 6.5, 0.0, 0.0 >, 1.0
           texture { tinta_A }
    }
    object { antebraco rotate alpha1*tt*y translate 6.1*x }
  }

#declare texto = 
  text {
    ttf "timrom.ttf" "Braco da Lei" .5, 0
    texture { pigment {color rgb <0,1,1>} }
    rotate <90,0,180>
    translate <5.0, -3.0, 0.5 >
  }
union {
//  object {dedoPeq translate -0.6*y}
//  object {dedoGde translate 0.6*y}
  object {braco}
  object {texto scale 3}
}