// Last edited on DATE TIME by USER
// Processed by remove-cam-lights

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

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

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

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

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

#declare tx_fosca2 =
  texture{
    pigment{ color rgb < 0.80, 0.40, 0.40 > }
    finish{ diffuse 0.9 ambient 0.1 }
  }

#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
  }

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

#macro roda(r)
  cylinder{
    <0,0,0>,
    <0,0.1,0>,
    r
    texture{tx_fosca}
  }

#end

#macro cano(n)
  cylinder{
    <0,0,0>,
    <n,0,0>,
    0.05
    texture{tx_fosca2}
  }
#end

#macro base(r,n)
 union{
  object{roda(r)}
  object{roda(r) translate<0,n+0.05,0>}
  object{cano(2*n) translate<0,n/2-0.025,0>}
  object{cano(2*n) translate<0,n/2+0.125,0>}
  object{roda(r/2) translate<n*2,n/2+0.025,0>}
 }
#end

#macro meio_sofa(n,m,r,tx1,tx2)
 union{
   #local A=array[4][4];
   #local A[0][0] = <0*n,0*2/3*m,0>;
   #local A[0][1] = <0*n,1*2/3*m,0>;
   #local A[0][2] = <0*n,2*2/3*m,0>;
   #local A[0][3] = <0*n,3*2/3*m,0>;
   #local A[1][0] = <1*n,0*2/3*m,0>;
   #local A[1][1] = <1*n,1*2/3*m,0>;
   #local A[1][2] = <1*n,2*2/3*m,0>;
   #local A[1][3] = <1*n,3*2/3*m,0>;
   #local A[2][0] = <2*n,0*2/3*m,0>;
   #local A[2][1] = <2*n,1*2/3*m,0>;
   #local A[2][2] = <2*n,2*2/3*m,0>;
   #local A[2][3] = <2*n,3*2/3*m,0>;
   #local A[3][0] = <3*n,0*2/3*m,0>;
   #local A[3][1] = <3*n,1*2/3*m,0>;
   #local A[3][2] = <3*n,2*2/3*m,0>;
   #local A[3][3] = <3*n,3*2/3*m,0>;

  object{
   retalho(A[0][0],A[0][1],A[0][2],A[0][3],A[1][0],A[1][1],A[1][2],A[1][3],A[2][0],A[2][1],A[2][2],A[2][3],A[3][0],A[3][1],A[3][2],A[3][3],r, tx1,tx2)
  }
 }
#end

#include "eixos.inc"
#include "retalho.inc"

union{
  object{ eixos(3.00) }

  object{ chao  translate < 0,0,-5 > texture{ tx_xadrez } }
  object{ base(0.5,1.5)}
  object{meio_sofa(0.5,0.5,0.12,tx_plastico2,tx_plastico) translate<0,0.3,0.2>}
  object{meio_sofa(-0.5,0.5,0.1,tx_plastico3,tx_plastico) rotate<0,75,0> translate<0,0.3,0.2>}
}

#include "camlight.inc"
#declare centro_cena = < 0.00, 0.00, 1.00 >;
#declare raio_cena = 6.0;
#declare dir_camera = < 14.00, 7.00, 4.00 >;
#declare dist_camera = 16.0;
#declare intens_luz = 1.00;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)