// CORES E TEXTURAS

// background{ color rgb < 0.75, 0.80, 0.85 > }
background{ color rgb < 0.90, 0.20, 0.85 > }

#declare tx_plastico = 
  texture{
    pigment{ color rgb < 0.10, 0.80, 1.00 > }
    finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
  }

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

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

#declare tx_espelho = 
  texture{
    pigment{ color rgb < 1.00, 0.85, 0.30 > }
    // finish{ diffuse 0.2 reflection 0.7*< 1.00, 0.85, 0.30 > ambient 0.1 }
    finish{ diffuse 0.2 reflection 1.0*< 1.00, 1.00, 1.00 > 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 }
  }


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

/////////////////////////////////////////////////////////////////////////////////////////////

// DESCRICAO DA CENA

#include "eixos.inc"

#declare raio_cilindro_encosto = 5.0;

#declare cilindro_encosto = 
  cylinder{
    < +0.00, +0.00,  +0.00 >,
    < +0.00, +0.00, +10.00 >,
    raio_cilindro_encosto
    texture{ tx_fosca }
  }

#declare box_negativo_encosto = 
  box{
    <-4, -raio_cilindro_encosto,  -1.0>,
    <+6, +raio_cilindro_encosto, +11.0>
    texture{ tx_bug } // Professor.
  }

#declare esfera_assento =
  sphere{
    < 0.00, 0.00, 4.00 >, raio_cilindro_encosto
    texture{ tx_fosca }
  }

#declare box_negativo_assento =
  box{
    <-4, -raio_cilindro_encosto,  +0.0>,
    <+6, +raio_cilindro_encosto, +11.0>
    texture{ tx_bug } // Professor.
  }

#declare encosto =
  difference{
    object{cilindro_encosto}
    object{box_negativo_encosto}
  }

#declare assento =
  difference{
    object{esfera_assento}
    object{box_negativo_assento}
  }

// Aqui esta a cena, finalmente:

object{assento}
object{encosto}

// object{ eixos(10.00) }

#include "camlight.inc"
#declare centro_cena = < -2.00, 0.00, 5.00 >;
#declare raio_cena = 10.0;
#declare dir_camera = < 0.50, 7.00, 0.50 >;
#declare dist_camera = 5*raio_cena;
#declare intens_luz = 1.20;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)