// CORES E TEXTURAS

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

#declare tx_fosca = 
  texture{
    pigment{ color rgb < 1.00, 0.80, 0.10 > }
    finish{ diffuse 0.9 ambient 0.1 }
  }

#declare tx_vidro = 
  texture{
    pigment{ color rgb < 0.85, 0.95, 1.00 > filter 0.70 }
    finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 }
  }

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

// Partes da cena:
  
#declare articulacao1 =
  sphere{
    < -2.00, +2.00, 0.00 >, 0.50 
    texture{ tx_fosca }
  }

#declare articulacao2 =
  sphere{
    < +2.00, -2.00, 0.00 >, 0.50
    texture{ tx_fosca }
  }

#declare corpo = 
  cylinder{
    < -2.00, +2.00, 0.00 >,
    < +2.00, -2.00, +0.00 >,
    0.50
    texture{ tx_fosca }
  }

#declare pescoco =
  cylinder{
    < 0.00, 0.00, 0.00 >,
    < 0.00, 0.00, -2.00 >,
    0.50
    texture{ tx_fosca }
  }
 
#declare pescoco1 =
  cylinder{
    < -2.00, +2.00, 0.00 >,
    < -2.00, +2.00, +3.00 >,
    0.50
    texture{ tx_fosca }
  }

#declare pescoco2 =
  cylinder{
    < +2.00, -2.00, 0.00 >,
    < +2.00, -2.00, +3.00 >,
    0.5
    texture{ tx_fosca }
  }

#declare orelha1_c1 =
  cone{
    < -3.00, 3.00, 4>, 0,
    < -3.30, 3.30, 4>, 0.20
    texture{ tx_fosca }
  }

#declare orelha2_c1 =
  cone{
    < -0.70, 0.70, 4>, 0.20,
    < -1.00, 1.00, 4>, 0
    texture{ tx_fosca }
  }

#declare orelha1_c2 =
  cone{
    < 3.00, -3.00, 4>, 0,
    < 3.30, -3.00, 4>, 0.20
    texture{ tx_fosca }
  }

#declare orelha2_c2 =
  cone{
    < 0.70, -0.70, 4>, 0.20,
    < 1.00, -1.00, 4>, 0
    texture{ tx_fosca }
  }

#declare cabeca1 =
  box{ <-3.00, +3.00, 3.00>, < -1.00, +1.00, 5.00> }

#declare cabeca2 =
  box{ <3.00, -3.00, 3.00>, < 1.00, -1.00, 5.00> }

// Aqui está a cena, finalmente:

union{
  object{ corpo translate < 0, 0, 0 > texture{ tx_vidro } }
  object{ pescoco translate < 0, 0, 0 > texture{ tx_vidro } }
  object{ pescoco1 translate < 0, 0, 0 > texture{ tx_vidro } }
  object{ pescoco2 translate < 0, 0, 0 > texture{ tx_vidro } }
  object{ articulacao1 translate < 0, 0, 0 > texture{ tx_vidro } }
  object{ articulacao2 translate < 0, 0, 0 > texture{ tx_vidro } }
  object{ cabeca1 translate < 0, 0, 0 > texture{ tx_fosca } }
  object{ cabeca2 translate < 0, 0, 0 > texture{ tx_fosca } }
  object{ orelha1_c1 translate < 0, 0, 0 > texture{ tx_fosca } }
  object{ orelha2_c1 translate < 0, 0, 0 > texture{ tx_fosca } }
  object{ orelha1_c2 translate < 0, 0, 0 > texture{ tx_fosca } }
  object{ orelha2_c2 translate < 0, 0, 0 > texture{ tx_fosca } }
}

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