// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2003-10-14 22:55:44 by stolfi

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

#declare ctr = <  2.00, -6.00, 2.00 >;
#declare camdir = <  -20.00, 22.00, 60.00 >;

camera {
  location  ctr + 0.60*camdir  // Posição do observador.
  right     -0.60*x                 // Largura RELATIVA da imagem.
  up        0.80*y                 // Altura RELATIVA da imagem.      
  sky       y                      // Qual direção é "para cima"?
  look_at   ctr  // 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 * < +30.0, +20.0, 20.0 >              // Posição da lâmpada.
  color rgb 1.2 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
} 

light_source {
  10 * < -10.0, 0.0, +30.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.7 specular 0.5 roughness 0.005 ambient 0.2 }
  }

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

#declare tinta_B = 
  texture {
    pigment { color rgb < 0.50, 0.50, 0.50 > }
    finish { diffuse 0.7 specular 0.5 roughness 0.005 ambient 0.7 }
  }
  
#declare cabeca =
  sphere {
    < 6.00, 5.00, 6.00 >, 1.80 
    texture { tinta_A }
  }
  
  
#declare pino = 
  cylinder {
    < 6.00, 6.00, 6.00 >,
    < 6.00, 0.00, 6.00 >,
    0.5
    texture { tinta_B }
  }


#declare tronco =
  box{
<10.00,2.80,5.00>,
<2.00,-1.00,7.00>
   texture{tinta_A}
}

#declare cintura = 
  cylinder{
<6.00,-1.00,6.00>
<6.00,-2.90,6.00>
1.50
texture{tinta_B}
}

#declare corte1 =
  box{
<3.00,7.00,3.00>,
<-3.00,-7.00,-3.00>
   rotate -21*z
   translate <13.00,2.80,5.00>
   texture{tinta_A}  
}

#declare corte2 =
  box{
<3.00,7.00,3.00>,
<-3.00,-7.00,-3.00>
   rotate 21*z
   translate <-1.00,2.80,5.00>
   texture{tinta_A}  
}


#declare pino2 = 
  cylinder {
    < 0.00, -5.10, 2.50 >,
    < 0.00, -9.00, 2.50 >,
    0.5
    texture { tinta_A }
  }


#declare quadril =
 cone {
    < 6.00, -2.90,6.00>,2.80
    <6.00, -4.90,6.00>,0.5
     texture {tinta_C}
}

#declare pernaesq = 
cylinder{
<0,-3.60,0>,
<0,3.60,0>,
1.0
rotate 10*z
translate<8,-8,6>
texture{tinta_C}
}

#declare pernadire = 
cylinder{
<0,-3.60,0>,
<0,3.60,0>,
1.0
rotate -90*z
translate<1.5,-5.5,6>
texture{tinta_C}
}


#declare canelaesq = 
cone{
<0,-3.00,0>,0.5
<0,3,0>,1.0
rotate 30*x
rotate -3*z
translate<8,-14.8,6>
texture{tinta_C}
}

#declare caneladire = 
cone{
<0,-3.00,0>,0.5
<0,3,0>,1.0
rotate 30*x
rotate -90*z
translate<-5.3,-5.5,6>
texture{tinta_C}
}

#declare bracoesq = 
object{pernaesq

scale<0.5,0.5,0.5>
translate<10,10,10>}


union{
 difference{ 
 	difference { 
	object { tronco } 
 	object { corte1 }
 	}
  object{corte2}
}

object{pino}
}	
  object { cabeca }
  object {cintura}
  object{quadril}
  object{pernaesq}
  object{canelaesq}
  object{pernadire}
  object{caneladire}
 // object{bracoesq}