// Last edited on 2007-06-28 09:23:01 by stolfi
// Processed by remove-cam-lights

global_settings { max_trace_level 12 }

background { color rgb < 0.90, 0.95, 1.00 > }

#declare raio = 2.000;

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

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

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

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

#declare dourado =
  texture {
    pigment { color rgb < 1.00, 0.80, 0.00 > }
    finish {  ambient 0.3
  diffuse 0.2
  specular 0.3 roughness 0.005 
  reflection 0.2 
    }
  }

#declare prata =
  texture {
    pigment { color rgb < 0.70, 0.70, 0.70 > }
    finish {  ambient 0.3
  diffuse 0.2
  specular 0.3 roughness 0.005 
  reflection 0.2 
    }
  }

#declare vermelho_rubi = 
  texture {
    pigment { color rgb < 1.00, 0.00, 0.00 > filter 1.0 }
    finish {    ambient 0.3
  diffuse 0.2
  specular 0.3 roughness 0.005 
  reflection 0.2 
    }
  }

#declare verde_esmeralda = 
  texture {
    pigment { color rgb < 0.00, 0.90, 0.00 > filter 1.0 }
    finish {    ambient 0.3
  diffuse 0.2
  specular 0.3 roughness 0.005 
  reflection 0.2 
    }
  }

#declare quadriculado =
  texture {
    pigment { checker color rgb < 0.30, 0.30, 0.80 >, color rgb < 1.00, 0.80, 0.80 > scale 2 }
    finish { ambient 0.6 diffuse 0.4 }
  }

#declare eixoX = 
  cylinder {
    < 0.00, 0.00, 0.00 >,
    < 10.00, 0.00, 0.00 >,
    0.05
    texture { vermelho }
  }

#declare eixoY = 
  cylinder {
    < 0.00, 0.00, 0.00 >,
    < 0.00, 10.00, 0.00 >,
    0.05
    texture { verde }
  }

#declare eixoZ = 
  cylinder {
    < 0.00, 0.00, 0.00 >,
    < 0.00, 0.00, 10.00 >,
    0.05
    texture { azul }
  }

#declare eixos_cartesianos =
  union {
    object {eixoX }
    object {eixoY }
    object {eixoZ }
}


#declare fundo =
  plane { z,0
 translate -5*z
 texture { quadriculado }
  }


#declare cilindro_fora =
  cylinder {
    < 0.00, 0.00, 0.00 >,
    < 0.00, 0.00, 4.00 >,
    3.00
    texture { dourado }
  }

#declare cilindro_dentro =
  cylinder {
    < 0.00, 0.00, 0.00 >,
    < 0.00, 0.00, 5.00 >,
    2.80
    texture { dourado }
  }

#declare caixa_comprida =
  box {
    < -3.50, -0.50, 3.50 >,
    < 3.50, 0.50, 4.20 >
  }

#declare coroa =
  difference {
    object {cilindro_fora}
    object {cilindro_dentro}
    object {caixa_comprida}
    object {caixa_comprida
      rotate 90*z
 }
    object {caixa_comprida
      rotate 45*z
 }
    object {caixa_comprida
      rotate 135*z
 }
  }

#declare bola_caveira =
  sphere {
    < 0.00, 0.00, 2.00 >, 1.50 
    texture { prata }
  }

#declare cilindro_boca =
  cylinder {
    < 0.35, 0.35, 0.00 >,
    < 0.35, 0.35, 2.00 >,
    1.00
    texture { prata }
  }

#declare olho =
  sphere {
    < 0.00, 0.00, 0.00 >, 0.30 
    texture { vermelho_rubi }
    interior { ior 1.5 }
  }


#declare cone_nariz =
  cone {
    <  0.00, 0.00, 1.00 >, 0.00
    <  0.00, 0.00, 0.00 >, 0.30 
    texture { verde_esmeralda }
    interior { ior 1.5 }
  } 

#declare conezinho_nariz =
  cone {
    <  0.00, 0.00, 0.00 >, 0.30
    <  0.00, 0.00, -0.10 >, 0.20 
    texture { verde_esmeralda }
    interior { ior 1.5 }
  } 

#declare nariz =
  union{
    object {cone_nariz}
    object {conezinho_nariz}
  }

#declare caveira =
  union {
    object { bola_caveira }
    object { cilindro_boca }
    object { olho 
       translate <1.30,0.70,2.50>
    }
    object { olho 
       translate <0.70,1.30,2.50>
    }
    object { nariz 
       translate <1.00,1.00,1.30>
    }   
  }

object {fundo}

object {coroa}

object { caveira
  translate <2,2,1>
  }


// Original camera parameters:
// #local cam_ctr = <0,0,0>
// #local cam_vec = <4.00,10.00,5.00>
// #local cam_sky = z

#include "camlight.inc"
camlight(<0,0,1>,<8,10,5>,12.0,z,1.0)