// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2000-09-21 20:06:05 by stolfi

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

background{ color rgb < 0.00, 0.03, 0.15 > }

light_source {
  < -1, -1, -0.5 >
  color rgb 0.5*< 1.00, 1.00, 1.00 >
} 

light_source {
  < -1, 1, 0.8 >
  color rgb 0.8*< 1.00, 1.00, 1.00 >
} 

light_source {
  < -1, 1, -1.5 >
  color rgb 1.1*< 1.00, 1.00, 1.00 >
} 

light_source {
  < -1, -1, 1.5 >
  color rgb < 1.00, 1.00, 1.00 >
} 


camera {
  location  0.8*<  -7.00, 2.00, 1.00 >
  right     <  0.00, 1.00, 0.00 >
  up        <  0.00, 0.00, 1.00 >
  sky       <  0.00, 0.00, 1.00 >
  look_at   <  0.00, 0.00, 0.00 >
} 

#declare raio = 2.000;

#declare tinta_verde = 
  texture {
    pigment { color rgb 2*< 0.00, 1.00, 0.00 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

#declare tinta_preta = 
  texture {
    pigment { color rgb < 0.00, 0.00, 0.00 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

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

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

#declare tronco = intersection {
cone {<0, 0, 0>, 1, <0, 0, -1.50>, 0.1}
sphere {<0, 0, 0.3>, 0.9 scale <0,0,2>}
}

#declare cabeca = 
union {
  difference {
    blob { threshold 0.7
	cylinder {<0,0,-0.3>,<0,0,0.3>, 0.5, 1}
        cylinder {<0,0,-0.7>,<0,0,-0.3>, 0.1, 1}
        cylinder {<0.1,0,-0.9>,<0.1,0,-0.7>, 1.5, 0.2}
      }
    cylinder {<-0.3,0.3,-0.2>, <-0.3,0-0.3,-0.2>, 0.1 }
    texture{tinta_vermelha}
  }
  cylinder {<-0.24,0.1, 0.1>, <0.2,0.1,0.1>, 0.07 texture{tinta_preta}}
  cylinder {<-0.24,-0.1, 0.1>, <0.2,-0.1,0.1>, 0.07 texture{tinta_preta}}
  scale 2
}


#declare braco =
union {
  blob { threshold 0.7
    cylinder {<0,0,0>,<0,0,-1>, 0.3, 2}
    cylinder {<0,0,-1>,<0,1,-1>, 0.3, 2}
    texture{T_Stone10}
  }
  difference {
    torus {0.35, 0.1 texture{tinta_azul} rotate<0,0,90> translate <0,1.45,-1>}
    cylinder {<0.2, 1.75, -1>, <-0.2, 1.75, -1>, 0.2}
  }
}

// Aqui está a cena, finalmente:

union {
  object { tronco texture{tinta_vermelha} translate <0,0,-0.8>}
  object {cabeca translate <0,0,0.5>}
  object {braco rotate <10,0,45> translate <0,0.75,-0.8>}
  object {braco rotate <10,0,135> translate <0, -0.75, -0.8> }
}