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

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

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

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

#include "retalho.inc"

#declare ciclo1 = union{
sphere{<-1, 4,  0>,0.3}
 cylinder{
     < -1, 4,  0>,
    < -1,4,2>,
    0.1
    texture{ tx_fosca }
  }
}

#declare ciclo2 = union{
sphere{<0, 4, 0 >,0.3}
 cylinder{
    < 0, 4, 0 >,
    < 0,4,1>,
    0.1
    texture{ tx_fosca }
  }
}

#declare ciclo3 = union{
sphere{<0, 1,  0>,0.3}
 cylinder{
     < 0, 1,  0>,
    < 0,1,1>,
    0.1
    texture{ tx_fosca }
  }
}

#declare ciclo4 = union{
sphere{<-1, 1, 0 >,0.3}
 cylinder{
    < -1, 1, 0 >,
    < -1,1,2>,
    0.1
    texture{ tx_fosca }
  }
}

#declare sofa =

  #local A= array[4][4];
  #local A[0][0]=<0,1,2>; #local A[0][1]=<-1,1,2>;#local A[0][2]=<0,1,3>; #local A[0][3]=<-1,1,3>;
  #local A[1][0]=<0,2,2>; #local A[1][1]=<-1,2,2>;#local A[1][2]=<0,2,3>; #local A[1][3]=<-1,2,3>;
  #local A[2][0]=<0,3,2>; #local A[2][1]=<-1,3,2>;#local A[2][2]=<0,3,3>; #local A[2][3]=<-1,3,3>;
  #local A[3][0]=<0,4,2>; #local A[3][1]=<-1,4,2>;#local A[3][2]=<0,4,3>; #local A[3][3]=<-1,4,3>;

  #local B= array[4][4];
  #local B[0][0]=<0,1,1>; #local B[0][1]=<-1,1,1>;#local B[0][2]=<0,1,2>; #local B[0][3]=<-1,1,2>;
  #local B[1][0]=<0,2,1>; #local B[1][1]=<-1,2,1>;#local B[1][2]=<0,2,2>; #local B[1][3]=<-1,2,2>;
  #local B[2][0]=<0,3,1>; #local B[2][1]=<-1,3,1>;#local B[2][2]=<0,3,2>; #local B[2][3]=<-1,3,2>;
  #local B[3][0]=<0,4,1>; #local B[3][1]=<-1,4,1>;#local B[3][2]=<0,4,2>; #local B[3][3]=<-1,4,2>;

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

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

  union{
  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], 0.001, tx_espelho, tx_fosca)  }
  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], 0.001, tx_espelho, tx_fosca) }

}
#declare sofa1 =

  #local B= array[4][4];
  #local B[0][0]=<0,1,1>; #local B[0][1]=<-1,1,1>;#local B[0][2]=<0,1,2>; #local B[0][3]=<-1,1,2>;
  #local B[1][0]=<0,2,1>; #local B[1][1]=<-1,2,1>;#local B[1][2]=<0,2,2>; #local B[1][3]=<-1,2,2>;
  #local B[2][0]=<0,3,1>; #local B[2][1]=<-1,3,1>;#local B[2][2]=<0,3,2>; #local B[2][3]=<-1,3,2>;
  #local B[3][0]=<0,4,1>; #local B[3][1]=<-1,4,1>;#local B[3][2]=<0,4,2>; #local B[3][3]=<-1,4,2>;

  union{
  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], 0.001, tx_espelho, tx_fosca)  }
 object{ciclo1 }
object{ciclo2 }
object{ciclo3 }
object{ciclo4 }
}

#include "eixos.inc"

union{

object {sofa  }
 object{ciclo1 }
object{ciclo2 }
object{ciclo3 }
object{ciclo4 }
 object {sofa1 translate<-1,-4,-1>  }
 }

#include "camlight.inc"
#declare centro_cena = < 0.00, 0.00, 0.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)