// Last edited on 2023-12-28 09:13:21 by stolfi // Raio da grade debug: // #declare rdb = 0.05; #declare rdb = 0; background{ color rgb <0.75, 0.80, 0.85> } #declare tx_blue = texture{ pigment { color rgb <0.2, 0.2, 1> } finish { diffuse 0.2 ambient 0.2 } } #include "eixos.inc" #include "retalho.inc" #macro poltrona() #declare pe = array[4][4] { {<0.4, -2, 0>, <0.0, -1, 0>, <0.0, 1, 0>, <0.4, 2, 0>}, {<0.8, -1.8, 0>, <0.8, -0.75, 0>, <0.8, 0.75, 0>, <0.8, 2, 0>}, {<1.5, -1.25, 0>, <1.25, -0.5, 0>, <1.25, 0.5, 0>, <1.5, 1.5, 0>}, {<2, -0.75, 0>, <2.5, -0.25, 0>, <2.5, 0.25, 0>, <2, 0.75, 0>}, } #declare apoio_perna = array[4][4] { {<-1.5, -2.8, 1.5>, <-1.5, -2.8, 1.9>, <-1.5, -2, 1.9>, <-1.5, -2, 1.5>}, {<-0.75, -2.8, 1.5>, <-0.35, -2.8, 1.5>, <-0.35, -2, 1.5>, <-0.75, -2, 1.5>}, {<0, -2.8, 1>, <0.4, -2.8, 1>, <0.4, -2, 1>, <0, -2, 1>}, {<0.4, -2.8, 0>, <0.8, -2.8, 0>, <0.8, -2, 0>, <0.4, -2, 0>}, } #declare perna = array[4][4] { {<-1.5, -2, 1.5>, <-1.5, -1, 1.1>, <-1.5, 1, 1.1>, <-1.5, 2, 1.5>}, {<-0.75, -2, 1.5>, <-1.15, -1, 1.5>, <-1.15, 1, 1.5>, <-0.75, 2, 1.5>}, {<0, -2, 1>, <-0.4, -1, 1>, <-0.4, 1, 1>, <0, 2, 1>}, {<0.4, -2, 0>, <0.0, -1, 0>, <0.0, 1, 0>, <0.4, 2, 0>}, } #declare apoio_corpo = array[4][4] { {<-2.75, -2.8, 4>, <-2.35, -2.8, 4>, <-2.35, -2, 4>, <-2.75, -2, 4>}, {<-2.75, -2.8, 2>, <-2.35, -2.8, 2>, <-2.35, -2, 2>, <-2.75, -2, 2>}, {<-2.25, -2.8, 1.5>, <-2.65, -2.8, 2.3>, <-2.65, -2, 2.3>, <-2.25, -2, 1.5>}, {<-1.5, -2.8, 1.5>, <-1.5, -2.8, 1.9>, <-1.5, -2, 1.9>, <-1.5, -2, 1.5>}, } #declare costas = array[4][4] { {<-2.75, -2, 4>, <-3.15, -1, 4>, <-3.15, 1, 4>, <-2.75, 2, 4>}, {<-2.75, -2, 2>, <-3.15, -1, 2>, <-3.15, 1, 2>, <-2.75, 2, 2>}, {<-2.25, -2, 1.5>, <-1.85, -1, 0.7>, <-1.85, 1, 0.7>, <-2.25, 2, 1.5>}, {<-1.5, -2, 1.5>, <-1.5, -1, 1.1>, <-1.5, 1, 1.1>, <-1.5, 2, 1.5>}, } union { object { retalho(costas, rdb, cret0, 3) } object { retalho(perna, rdb, cret1, 3) } object { retalho(apoio_perna, rdb, cret2, 3) } object { retalho(apoio_perna, rdb, cret3, 3) translate <0, 4.8, 0> } object { retalho(apoio_corpo, rdb, cret4, 3) } object { retalho(apoio_corpo, rdb, cret5, 3) translate <0, 4.8, 0> } object { retalho(pe, rdb, cret6, 3) } cylinder { <-2, -1.25, 0> <-2, -1.25, 1.25> 0.3 texture { tx_blue } } cylinder { <-2, 1.25, 0> <-2, 1.25, 1.25> 0.3 texture { tx_blue } } } #end #declare cmin = < -4, -4, -1 >; #declare cmax = < +3, +4, +5 >; 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.55*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)