// cadeira ergométrica - mc937 data: 16/09/2023
//============================================================================

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

//declarações

    //texturas
#declare tx_chao=
    texture{
    pigment{ checker color rgb < 0.80, 0.85, 0.90 >, color rgb < 1.00, 0.97, 0.90 > }
    finish{ diffuse 0.9 ambient 0.1 }
    scale 2.0
  }    
#declare tx_box=
    texture{
    pigment{ checker color rgb < 1, 0, 0 >, color rgb < 1.00, 0.97, 0.90 > }
    finish{ diffuse 0.9 ambient 0.1 }
    scale 0.5
  }

#declare tx_cone=
    texture{
    pigment{ checker color rgb < 0.0, 0.8, 0.0 >, color rgb < 1.00, 0.97, 0.90 > }
    finish{ diffuse 0.9 ambient 0.1 }
    scale 0.2
  }

#declare tx_sphere=
    texture{
    pigment{ checker color rgb < 0.20, 0.20, 1.00>, color rgb < 1.00, 0.97, 0.90 > }
    finish{ diffuse 0.9 ambient 0.1 }
    scale 0.2
  }

#declare tx_cylinder=
    texture{
    pigment{ checker color rgb < 0.50, 0.50, 0.50 >, color rgb < 1.00, 0.97, 0.90 > }
    finish{ diffuse 0.9 ambient 0.1 }
    scale < 10, 10, 0.10 >
  }

    //variáveis
#declare R_pe= 0.350;
#declare R_encosto= 0.250;
#declare R_bolinha= R_encosto+0.05;
#declare R_furo= R_encosto+0.01;
    //objetos
#declare chao= box{<-20,-20,-1>, <+20,+20,0> texture{tx_chao}}
#declare pe= cylinder{<+1,-1,0>, <+1,-1,+2>, R_pe texture{tx_cylinder}}

#declare assento= box{<-1.5,-4.5,+2>,<+1.5,0,+2.3> texture{tx_box}}

#declare cylinder_encosto= cylinder{<+0.8,-4.2,+2.3>, <+0.8,-4.2,+4.3>, R_encosto texture{tx_cylinder}}
#declare encosto= box{<+0.8+R_encosto,-4.2,+2.7> <-0.45-R_encosto,-4.2,+3.7> texture{tx_box} }

#declare bolinha_encosto=sphere{<+0.8,-4.2,+4.3+R_bolinha>,R_bolinha texture{tx_sphere}}
#declare cone_encosto= cone{<+0.8,-4.2,+4.81>,R_bolinha,<+0.8,-4.2,+5.8>,0 texture{tx_cone}}

#declare furo=sphere{<+0.8,-4.2,+3.3>,R_furo texture{tx_sphere}}

#include "eixos.inc"

//cena
union{
    // object{ eixos(5.00) }
    object{chao}

    object{pe} object{pe translate<-2,0,0>} 
    object{pe translate<0,-3,0>} object{pe translate<-2,-3,0>} 
    object{assento}
    difference{
        union{
            object{cylinder_encosto} 
            object{cylinder_encosto translate<-1.5,0,0>}
            object{encosto}
        }
        object{furo}
        object{furo translate<-1.5,0,0>}

    }
    
    object{bolinha_encosto} object{bolinha_encosto translate<-1.5,0,0>}
    object{cone_encosto} object{cone_encosto translate<-1.5,0,0>}
}

#include "camlight.inc"
#declare centro_cena = < 0.00, -2.00, 2.70 >;
#declare raio_cena = 5.2;
#declare dir_camera = < 7.00, 14.00, 4.00 >;
#declare dist_camera = 5*raio_cena;
#declare intens_luz = 1.20;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)