// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2010-03-04 15:44:01 by stolfi

// ======================================================================
// CORES E TEXTURAS

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

#declare tx_madeira = 
  texture{
    pigment{ color rgb < 139/255, 69/255, 19/255 > }
    finish{ diffuse 0.8 ambient 0.5 specular 0.5 roughness 0.005 }
  }


#declare tx_xadrez =
  texture{
    pigment{ checker color rgb < 0.10, 0.12, 0.10 >, color rgb < 1.00, 0.97, 0.90 > }
    finish{ diffuse 0.9 ambient 0.1 }
    scale 2.0
  }

#include "math.inc"
// ======================================================================
// DESCRIÇÃO DA CENA 


#macro logotipo (texto, fase)
  #local n = strlen(texto);
  #local etapa = int(fase*n);
  #local frac = fase*n - etapa;
  union {
    #local atual = 0;
    #while(atual < etapa)
      #local letra = substr(texto,atual+1,1);
      object{text{ ttf "britanic.ttf", letra, 0.5, 0.0 texture{tx_madeira} rotate 90*x translate<atual*1.2/2,0,2>}}
      #local atual = atual+1;
    #end
    #local letra = substr(texto,atual+1,1);
    object{letra_chegando(letra,atual*1.2/2,frac)}
  }
#end

#macro letra_chegando(letra, posi,frac)
 object{ text{ ttf "britanic.ttf", letra, 0.5, 0.0 texture{tx_madeira} rotate 90*x translate<posi,0,-2+4*frac>}}
#end


#declare raio = 10.000;

#include "eixos.inc"

// Aqui está a cena, finalmente:

union{
    object {eixos(15.00) }
    object {logotipo("TEXTO", clock)}
//text{ ttf "britanic.ttf", "texto", 0.5, 0.0 texture{tx_madeira} rotate 90*x translate<0,0,3>}
    box{ <-20,-20,-1>, <+50,+50,0> translate < 0,0,0 > texture{ tx_xadrez } }
 }


#include "camlight.inc"
#declare centro_cena = < 2.00, 0.00, 1.00 >;
#declare raio_cena = 6;
#declare dir_camera = < 0.0, -1.00,0.00 >;
#declare dist_camera = 7;
#declare intens_luz = 1.00;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)