// Last edited on 2023-12-28 17:25:28 by stolfi // Raio da grade debug: // #declare rdb = 0.02; #declare rdb = 0; #include "retalho.inc" background{ color rgb < 0.75, 0.75, 0.85 > } #macro cadeira(escalax, escalay, escalaz) #local coord1 = array[4][4]; #local coord1[0][0] = <0,0,3>; #local coord1[0][1] = <1,0,3>; #local coord1[0][2] = <2,0,3>; #local coord1[0][3] = <3,0,3>; #local coord1[1][0] = <0,3,1>; #local coord1[1][1] = <1,3,1>; #local coord1[1][2] = <2,2,3>; #local coord1[1][3] = <3,2,3>; #local coord1[2][0] = <0,0,-3>; #local coord1[2][1] = <1,0,-3>; #local coord1[2][2] = <2,0,-1>; #local coord1[2][3] = <3,0,-1>; #local coord1[3][0] = <0,2,-3>; #local coord1[3][1] = <1,2,-3>; #local coord1[3][2] = <2,2,-1>; #local coord1[3][3] = <3,2,-1>; #local coord2 = array[4][4]; #local coord2[0][0] = <0,2,-3>; #local coord2[0][1] = <1,2,-3>; #local coord2[0][2] = <2,2,-1>; #local coord2[0][3] = <3,2,-1>; #local coord2[1][0] = <0,4,-3>; #local coord2[1][1] = <1,4,-3>; #local coord2[1][2] = <2,4,-1>; #local coord2[1][3] = <3,4,-1>; #local coord2[2][0] = <0,1,-5>; #local coord2[2][1] = <1,1,-5>; #local coord2[2][2] = <2,1,-3>; #local coord2[2][3] = <3,1,-3>; #local coord2[3][0] = <0,5,-6>; #local coord2[3][1] = <1,5,-6>; #local coord2[3][2] = <2,5,-6>; #local coord2[3][3] = <3,5,-6>; #local coord3 = array[4][4]; #local coord3[0][0] = <3,0,3>; #local coord3[0][1] = <4,0,3>; #local coord3[0][2] = <5,0,3>; #local coord3[0][3] = <6,0,3>; #local coord3[1][0] = <3,2,3>; #local coord3[1][1] = <4,2,3>; #local coord3[1][2] = <5,2,3>; #local coord3[1][3] = <6,2,3>; #local coord3[2][0] = <3,0,-1>; #local coord3[2][1] = <4,0,-1>; #local coord3[2][2] = <5,2,0>; #local coord3[2][3] = <6,4,1>; #local coord3[3][0] = <3,2,-1>; #local coord3[3][1] = <4,2,-1>; #local coord3[3][2] = <5,4,0>; #local coord3[3][3] = <6,4,1>; #local coord4 = array[4][4]; #local coord4[0][0] = <-0,0,3>; #local coord4[0][1] = <-1,0,3>; #local coord4[0][2] = <-2,0,3>; #local coord4[0][3] = <-3,0,3>; #local coord4[1][0] = <-0,3,1>; #local coord4[1][1] = <-1,3,1>; #local coord4[1][2] = <-2,2,3>; #local coord4[1][3] = <-3,2,3>; #local coord4[2][0] = <-0,0,-3>; #local coord4[2][1] = <-1,0,-3>; #local coord4[2][2] = <-2,0,-1>; #local coord4[2][3] = <-3,0,-1>; #local coord4[3][0] = <-0,2,-3>; #local coord4[3][1] = <-1,2,-3>; #local coord4[3][2] = <-2,2,-1>; #local coord4[3][3] = <-3,2,-1>; #local coord5 = array[4][4]; #local coord5[0][0] = <-0,2,-3>; #local coord5[0][1] = <-1,2,-3>; #local coord5[0][2] = <-2,2,-1>; #local coord5[0][3] = <-3,2,-1>; #local coord5[1][0] = <-0,4,-3>; #local coord5[1][1] = <-1,4,-3>; #local coord5[1][2] = <-2,4,-1>; #local coord5[1][3] = <-3,4,-1>; #local coord5[2][0] = <-0,1,-5>; #local coord5[2][1] = <-1,1,-5>; #local coord5[2][2] = <-2,1,-3>; #local coord5[2][3] = <-3,1,-3>; #local coord5[3][0] = <-0,5,-6>; #local coord5[3][1] = <-1,5,-6>; #local coord5[3][2] = <-2,5,-6>; #local coord5[3][3] = <-3,5,-6>; #local coord6 = array[4][4]; #local coord6[0][0] = <-3,0,3>; #local coord6[0][1] = <-4,0,3>; #local coord6[0][2] = <-5,0,3>; #local coord6[0][3] = <-6,0,3>; #local coord6[1][0] = <-3,2,3>; #local coord6[1][1] = <-4,2,3>; #local coord6[1][2] = <-5,2,3>; #local coord6[1][3] = <-6,2,3>; #local coord6[2][0] = <-3,0,-1>; #local coord6[2][1] = <-4,0,-1>; #local coord6[2][2] = <-5,2,0>; #local coord6[2][3] = <-6,4,1>; #local coord6[3][0] = <-3,2,-1>; #local coord6[3][1] = <-4,2,-1>; #local coord6[3][2] = <-5,4,0>; #local coord6[3][3] = <-6,4,1>; union{ object{ retalho(coord1, rdb, cret0, 3) } object{ retalho(coord2, rdb, cret1, 3) } object{ retalho(coord3, rdb, cret2, 3) } object{ retalho(coord4, rdb, cret3, 3) } object{ retalho(coord5, rdb, cret4, 3) } object{ retalho(coord6, rdb, cret5, 3) } scale translate <10 + escalax, escalay, escalaz> } #end #declare duas = false; #declare cmin = < +2.0, +0.5, -5.5 >; #declare cmax = < +21.0, +7.0, +5.0 >; #if (duas) #declare disp = < 9.0, 0, 0>; #declare cmin = cmin - disp; #declare cmax = cmax + disp; object{ cadeira(1.0, 1.0, 1.0) translate -disp } object{ cadeira(1.5, 1.0, 0.7) translate +disp } #else object{ cadeira(1.0, 1.0, 1.0) } #end #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 = < -5, 7, 3 >; #declare intens_luz = 1.20; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)