#include "colors.inc" #include "textures.inc" // MONUMENTO #declare bloco = box{<-10,0,-6.5><10,3,6.5> // caixa principal a ser escavada pigment{color Gray} } //OBJETOS NOS APARTAMENTOS #declare varanda = merge{ box{<10, 0.2, 3>,<11, 0, 1.2>} prism { linear_sweep linear_spline 0.2, 1.2, 9, <9.8,3>, <11,3>, <11,1.2>, <9.8,1.2>, <9.8, 1.3>, <10.9,1.3>, <10.9,2.9>,<9.8,2.9>,<9.8,3> } pigment{color rgbt<0,0,1,.7>} } #declare porta_de_entrada = box{<3.4,.2002,.3001>,<3.6,2.5999,1.0999> pigment{DMFWood4} } #declare porta_da_cozinha = box{<3.8001,.2002,1.4>,<4.5999,2.5999,1.6> pigment{DMFWood4} } #declare janela_do_quarto = box{<9.8,1.2001,4.0001>,<10,2.5999,5.7999> texture{NBglass} } #declare janela_do_banheiro = box{<2.4,2.0001,5.2501>,<2.6,2.5999,6.2499> texture{NBglass} } #declare janela_da_cozinha = box{<2.4,.8001,2.9001>,<2.6,2.5999,3.3999> texture{NBglass} } #declare janela_de_fora = box{<.8001,1.5001,2.4>,<1.4999,2.5999,2.6> texture{NBglass} } #declare objetos = merge{ object{janela_de_fora} object{janela_de_fora scale<-1,1,1>} #declare i=0; #while (i<4) #switch (i) #case (0) #declare j=1; #declare k=1; #break #case (1) #declare j=-1; #declare k=1; #break #case (2) #declare j=1; #declare k=-1; #break #case (3) #declare j=-1; #declare k=-1; #break #end object{varanda scale} object{porta_de_entrada scale} object{porta_da_cozinha scale} object{porta_da_cozinha scale translate<0,0,2*k>} //portas da area de servico object{porta_da_cozinha scale translate<2.2*j,0,2*k>} //portas do quarto object{porta_de_entrada scale translate<2*j,0,5*k>} //portas do banheiro object{janela_do_quarto scale} object{janela_do_banheiro scale} object{janela_do_banheiro scale translate<0,0,-1.5*k>} //janela da area de servico object{janela_da_cozinha scale} #declare i=i+1; #end } #declare espacos = merge{ box{<-2.4, -0.001, 2.6>,<2.4, 3.1, 6.6>} //espacos fora do predio box{<-2.4, -0.001, -2.6>,<2.4, 3.1, -6.6>} box{<-.9, -0.1, -1>,<.9, 3.1, 1>} //poco do elevador box{<-2.4, 0.2001, 1.1>,<2.4, 3.1, 2.4>} //corredores frente e tras do elevador box{<-2.4, 0.2001, -1.1>,<2.4, 3.1, -2.4>} box{<-2.4, 0.2, -1.2>,<-1.1, 3.1, 1.2>} //laterais do elevador box{<2.4, 0.2, -1.2>,<1.1, 3.1, 1.2>} box{<-3.4, 0.2002, -1.4>,<-2.1, 3.1, 1.4>} // entradas dos apartamentos box{<3.4, 0.2002, -1.4>,<2.1, 3.1, 1.4>} box{<-1.5, 1.5, 2.3>,<-.8, 2.6, 2.7>} //janelas na frente do elevador box{<1.5, 1.5, 2.3>,<.8, 2.6, 2.7>} box{<-.5, .2, .8>,<.5, 2.6, 1.2>} //porta do elevador #declare i=0; #while (i<4) #switch (i) #case (0) #declare j=1; #declare k=1; #break #case (1) #declare j=-1; #declare k=1; #break #case (2) #declare j=1; #declare k=-1; #break #case (3) #declare j=-1; #declare k=-1; #break #end box{<9.8, 0.2, 6.3>,<5.6, 3.1, 3.6> scale} // quartos box{<9.8, 0.2, 3.4>,<5.6, 3.1, 0.1> scale} // salas box{<5.7, 0.2001, 1.4>,<3.6, 3.1, 0.1> scale} // corredores box{<5.4, 0.2, 3.4>,<2.6, 3.1, 1.6> scale} // cozinhas box{<5.4, 0.2, 6.3>,<2.6, 3.1, 5.1> scale} // banheiros box{<5.4, 0.2, 4.9>,<2.6, 3.1, 3.6> scale} // areas de servico box{<10.1, 0.2, 3>,<9.7, 2.6, 1.2> scale} // varandas da sala box{<10.1, 1.2, 4>,<9.7, 2.6, 5.8> scale} // janelas no quarto box{<2.3, 2, 5.25>,<2.7, 2.6, 6.25> scale} // janelas no banheiro box{<2.3, 2, 4.75>,<2.7, 2.6, 3.75> scale} // janelas na area de servico box{<2.3, .8, 2.9>,<2.7, 2.6, 3.4> scale} // janelas na cozinha box{<3.3, .2, .3>,<3.7, 2.6, 1.1> scale} // portas de entrada box{<4.6, .2, 1.3>,<3.8, 2.6, 1.7> scale} // portas da cozinha para o corredor box{<4.6, .2, 3.3>,<3.8, 2.6, 3.7> scale} // portas da cozinha para a área de serviço box{<6, .2, 3.3>,<6.8, 2.6, 3.7> scale} // portas da sala para o quarto box{<5.3, .2, 6.1>,<5.7, 2.6, 5.3> scale} // portas do banheiro #declare i=i+1; #end } #declare andar = difference{ object{bloco} object{espacos texture { pigment{color White} } } } #declare andar_completo = merge{ object{andar} object{objetos} } object{andar_completo} object{andar_completo translate 3*y} object{andar_completo translate 6*y} object{andar_completo translate 9*y} object{andar_completo translate 12*y} object{andar_completo translate 15*y} object{andar_completo translate 18*y} // PAVIMENTO plane{<0,1,0>,0 texture{pigment{color Green}}} // FUNDO background{ color Blue} box{<500,1000,500>,<-500,-1,-500> pigment { bozo turbulence .1 color_map { [0.0 color White filter 1] [1.0 color White] } } hollow} // CAMERA camera { location <0,10,40> look_at <0,10,0> } // LUZ light_source{ <0,50,70> color White} light_source{ <50,50,0> color White}