// Last edited on 2023-12-28 09:04:09 by stolfi #include "eixos.inc" #include "retalho.inc" // Raio da grade debug: // #declare rdb = 0.05; #declare rdb = 0; background{ color rgb < 0.8, 0.8, 0.8 > } #declare roleta = seed(1246553); #macro poltrona() #declare b = array[4][4]; #declare b[0][1] = <-2.5,-3,-2>; #declare b[0][2] = < 2.5,-4,2>; #declare b[0][3] = < 2,-2,-0.5>; #declare b[1][1] = <-3,-1,-3>; #declare b[1][2] = < 2.5,-1,2>; #declare b[1][3] = < 3,-1,-1>; #declare b[2][1] = <-3, 1,-3>; #declare b[2][2] = < 2.5, 1,2>; #declare b[2][3] = < 3, 1,-1>; #declare b[3][1] = <-2.5, 3,-2>; #declare b[3][2] = < 2.5, 4,2>; #declare b[3][3] = < 2, 2,-0.5>; #declare e = array[4][4]; #declare e[0][1] = <-3.5, -3, 2>; #declare e[0][2] = <-4 , -3, 5>; #declare e[0][3] = <-4.5, -2, 7.5>; #declare e[1][1] = <-4 , -1, 2>; #declare e[1][2] = <-4.5, -1, 5>; #declare e[1][3] = <-4.5, -1, 8>; #declare e[2][1] = <-4 , 1, 2>; #declare e[2][2] = <-4.5, 1, 5>; #declare e[2][3] = <-4.5, 1, 8>; #declare e[3][1] = <-3.5, 3, 2>; #declare e[3][2] = <-4 , 3, 5>; #declare e[3][3] = <-4.5, 2, 7.5>; #declare e[0][0] = (e[0][1] + b[0][1])/2; #declare e[1][0] = (e[1][1] + b[1][1])/2; #declare e[2][0] = (e[2][1] + b[2][1])/2; #declare e[3][0] = (e[3][1] + b[3][1])/2; #declare b[0][0] = e[0][0]; #declare b[1][0] = e[1][0]; #declare b[2][0] = e[2][0]; #declare b[3][0] = e[3][0]; union{ object{ retalho(b, rdb, cret0, 3) } object{ retalho(e, rdb, cret1, 3) } } #end #declare cmin = < -6, -5, -4 >; #declare cmax = < +4, +5, +9 >; object{ poltrona() } #include "eixos.inc" #if (rdb > 0) object{ eixos(5.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 = < 7, 5, 3 >; #declare intens_luz = 1.20; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)