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

#include "eixos.inc"
#include "textures.inc"
#include "camlight.inc"
#include "colors.inc"
#include "retalho.inc"

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

#declare raio=0.01;
#declare A=array[4][4]
#declare A[0][0]=<-2,0,0>;
#declare A[0][1]=<-1,0,0>;
#declare A[0][2]=<1,0,0>;
#declare A[0][3]=<2,0,0>;
#declare A[1][0]=<-1.4,-2,0>;
#declare A[1][1]=<-2.4,-2,0>;
#declare A[1][2]=<1.4,-2,0>;
#declare A[1][3]=<2.4,-2,0>;
#declare A[2][0]=<-3,-3,0>;
#declare A[2][1]=<-3.4,-3,0>;
#declare A[2][2]=<3,-3,0>;
#declare A[2][3]=<3.4,-3,0>;
#declare A[3][0]=<-4,-4,0>;
#declare A[3][1]=<-2,-4,0>;
#declare A[3][2]=<2,-4,0>;
#declare A[3][3]=<4,-4,0>;

#declare roda=
        cylinder{<0,0,0>,<0.2,0,0>,0.6 texture{Silver_Metal}}

#declare frente=union{
  object{roda translate x*(2)}
  object{roda translate x*(-2)}
}

#macro meio_sofa()
  union{
    #local A=array[4][4]
#local A[0][0]=<0,0,0>;
#local A[0][1]=<0.5,0,0>;
#local A[0][2]=<1,0,0>;
#local A[0][3]=<2,0,0>;
#local A[1][0]=<0,-2,0>;
#local A[1][1]=<0.6,-2,0>;
#local A[1][2]=<1.2,-2,0>;
#local A[1][3]=<2.4,-2,0>;
#local A[2][0]=<0,-3,0>;
#local A[2][1]=<0.8,-3,0>;
#local A[2][2]=<2.4,-3,0>;
#local A[2][3]=<3.4,-3,0>;
#local A[3][0]=<0,-4,0>;
#local A[3][1]=<1,-4,0>;
#local A[3][2]=<2,-4,0>;
#local A[3][3]=<4,-4,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],
                raio,texture{Rust},texture{Rust})}

#local B=array[4][4]
#local B[0][0]=<1,0,1>;
#local B[0][1]=<1.4,0,2>;
#local B[0][2]=<1.8,0,1>;
#local B[0][3]=A[0][3];
#local B[1][0]=<1,-2,1.4>;
#local B[1][1]=<1.4,-2,3>;
#local B[1][2]=<1.8,-2,1.4>;
#local B[1][3]=A[1][3];
#local B[2][0]=<1,-3,1.6>;
#local B[2][1]=<1.4,-3,3.4>;
#local B[2][2]=<1.8,-3,1.6>;
#local B[2][3]=A[2][3];
#local B[3][0]=<1,-4,1.8>;
#local B[3][1]=<1.4,-4,3.6>;
#local B[3][2]=<1.8,-4,1.8>;
#local B[3][3]=A[3][3];

object{retalho( B[0][0],B[0][1],B[0][2],B[0][3],
                B[1][0],B[1][1],B[1][2],B[1][3],
                B[2][0],B[2][1],B[2][2],B[2][3],
                B[3][0],B[3][1],B[3][2],B[3][3],
                raio,texture{Rust},texture{Cork})}

#local C=array[4][4]
#local C[0][0]=B[0][0];
#local C[0][1]=A[0][1];
#local C[0][2]=A[0][2];
#local C[0][3]=A[0][3];
#local C[1][0]=B[1][0];
#local C[1][1]=B[0][1];
#local C[1][2]=B[0][2];
#local C[1][3]=B[0][3];
#local C[2][0]=B[2][0];
#local C[2][1]=B[0][1];
#local C[2][2]=B[0][2];
#local C[2][3]=B[0][3];
#local C[3][0]=B[3][0];
#local C[3][1]=B[0][1];
#local C[3][2]=B[0][2];
#local C[3][3]=B[0][3];

object{retalho( C[0][0],C[0][1],C[0][2],C[0][3],
                C[1][0],C[1][1],C[1][2],C[1][3],
                C[2][0],C[2][1],C[2][2],C[2][3],
                C[3][0],C[3][1],C[3][2],C[3][3],
                raio,texture{Silver_Metal},texture{Cork})}
}

#end

object{eixos(5)}

object{frente}
object{frente translate y*(-2) scale 2}

union{
object{meio_sofa()}

}

#declare centro_cena = < 0.00, 0.00, 1.00 >;
#declare raio_cena = 10.0;
#declare dir_camera = < 10, 10, 3 >;
#declare dist_camera = 80.0;
#declare intens_luz = 1.40;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)