// MC937 - Cadeira Ergologica
// Nome: Michell Henrique Lucino RA: 242056
//


// Cores e Texturas //
background{ color rgb < 1.0, 1.0, 1.0 > }

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

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

#declare xadrez =
  texture{
    pigment{ checker color rgb < 0.00, 0.00, 0.00 >, color rgb < 1.0, 1.0, 1.0 > }
    finish{ diffuse 0.9 ambient 0.1 }
    scale 2.0
  }


// Partes da Cena //
#declare raio = 1.000;

#declare bola =
  sphere{
    < 0.00, 0.00, 1.00 >, raio 
    texture{ plastico }
  }

#declare assento =
    box{
        <-1, -1, 0>, <1, 1, 0.25>
        texture{ plastico }
    }

#declare encosto =
    sphere {
        <0, -2.5, 1>, 2 * raio
        texture{ plastico }
    }

#declare base_encosto = 
    cone {
        <0, 0, 0>, 0.7
        <0, 0, -0.5>, 0.1
        texture{ metal }
    }


#declare cilindrao =
    cylinder{
        < 0.00, 0.00, 0.00 >,
        < 0.00, 0.00, -2.00 >,
        0.2
        texture{ metal }
    }

#declare base = 
    cone {
        <0, 0, -1.5>, 0.1
        <0, 0, -2>, 0.5
        texture{ metal }
    }

#declare chao_cozinha = 
  box{ <-20,-20,-1>, <+20,+20, 0> }

// Cena //
union {
    object{ chao_cozinha  translate < 0,0,-2 > texture{ xadrez } }

    // Assento da Cadeira //
    difference {
        object { assento }
        object { bola }    
    }

    // Encosto da Cadeira //
    intersection {
        object { encosto }
        object { bola }    
    }

    union {
        object { base_encosto }
        object { cilindrao }
        object { base } 
    }
}


#include "camlight.inc"
#declare centro_cena = < 0.00, 0.00, 0.00 >;
#declare raio_cena = 6.0;
#declare dir_camera = < 21.00, 5.00, 5.00 >;
#declare dist_camera = 5*raio_cena;
#declare intens_luz = 1.20;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)