// Last edited on 2023-12-28 15:07:47 by stolfi // Raio da grade debug: // #declare rdb = 0.2; #declare rdb = 0; #include "retalho.inc" background{ color rgb < 0.75, 0.80, 0.85 > } #declare txp = texture{ pigment{ color rgb < 0.00, 0.80, 0.50 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #macro poltrona(aa, bb, inc) #declare a0 = aa * 0.6; #declare a3 = aa * 0.4 * -1; #declare a1 = a0 / 4; #declare a2 = a0 / 4 * 3; #declare b1 = bb / 3; #declare b2 = bb / 3 * 2; #declare b3 = bb; #declare P1 = array[4][4]; #declare P2 = array[4][4]; #declare rad = 0.2; #declare xmin = 0; #declare ymin = 0; #declare xmax = 1; #declare ymax = 1; // Array P1 -------------------------------- #declare P1[0][0] = <0,0,20>; #declare P1[1][0] = ; #declare P1[2][0] = ; #declare P1[3][0] = ; #declare P1[0][1] = <0,b1,20>; #declare P1[1][1] = ; #declare P1[2][1] = ; #declare P1[3][1] = ; #declare P1[0][2] = <0,b2,20>; #declare P1[1][2] = ; #declare P1[2][2] = ; #declare P1[3][2] = ; #declare P1[0][3] = <0,b3,20>; #declare P1[1][3] = ; #declare P1[2][3] = ; #declare P1[3][3] = ; // Array P2 ------------------------------- #declare P2[0][0] = P1[3][0]; #declare P2[1][0] = P2[0][0] + <15,-10,20>; #declare P2[2][0] = P2[1][0] + <5,0,0>; #declare P2[3][0] = P2[2][0] + <10,0,-10>; #declare P2[0][1] = P1[3][1]; #declare P2[1][1] = P2[0][1] + <15,0,0>; #declare P2[2][1] = P2[1][1] + <5,0,0>; #declare P2[3][1] = P2[2][1] + <10,0,-10>; #declare P2[0][2] = P1[3][2]; #declare P2[1][2] = P2[0][2] + <15,0,0>; #declare P2[2][2] = P2[1][2] + <5,0,0>; #declare P2[3][2] = P2[2][2] + <10,0,-10>; #declare P2[0][3] = P1[3][3]; #declare P2[1][3] = P2[0][3] + <15,-10,20>; #declare P2[2][3] = P2[1][3] + <5,0,0>; #declare P2[3][3] = P2[2][3] + <10,0,-10>; // ---------------------------------------- union{ object{ retalho(P1, rdb, cret0, 3) } object{ retalho(P2, rdb, cret1, 3) } object{ box{ P1[3][0], P1[3][3] + <1,1,a3> } texture{ txp } } object{ box{ P1[3][0] + <0,0,a3>, P2[3][2] + <0,b1,10 + a3> } texture{ txp } } } #end #declare duas = true; #declare cmin = < -2.0, -12.0, -42.0 >; #declare cmax = < +60.0, +42.0, +22.0 >; #if (duas) #declare disp = < 0, 27, 0>; #declare cmin = cmin - disp; #declare cmax = cmax + disp; object{ poltrona(25, 25, 2) translate -disp } object{ poltrona(45, 35, 1) translate +disp } #else object{ poltrona(45, 35, 1) } #end #include "eixos.inc" #if (rdb > 0) object{ eixos(20.0) } #end #include "gaiola.inc" #if (rdb > 0) object{ gaiola(cmin,cmax) } #end #if (rdb = 0) object{ gaipiso(cmin,cmax) } #end #declare centro_cena = (cmin + cmax)/2; #declare raio_cena = 0.65*vlength(cmax-cmin); #declare dist_camera = 7*raio_cena; #include "camlight.inc" #declare dir_camera = < 9, 3, 5 >; #declare intens_luz = 1.20; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)