#include "colors.inc" #include "textures.inc" // MONUMENTO #declare terreo = difference{ box{<-20,0,-6.5><10,4,6.5>} //caixa principal box{<-19.8, 0.2, -6.3><9.8, 4.5, -3.5>} //garagem box{<-19.8, 0.2, 6.3><9.8, 4.5, 3.5>} //garagem box{<-19.801, 0.2001, -3.6><-3.5, 4.5, 3.6>} //garagem box{<-.9, -0.1, -1>,<.9, 4.1, 1>} //poco do elevador box{<-3.3, 0.2001, 1.1>,<3.3, 4.1, 3.3>} //corredores frente e tras do elevador box{<-3.3, 0.2001, -1.1>,<3.3, 4.1, -3.3>} box{<-3.3, 0.2, -1.2>,<-1.1, 4.1, 1.2>} //laterais do elevador box{<3.3, 0.2, -1.2>,<1.1, 4.1, 1.2>} box{<3.5, 0.2, -3.3>,<9, 4.1, 3.3>} //sala do terreo box{<9.2, 0.2, -3.3>,<11, 4.1, 3.3>} //espaco na entrada box{<9.2, 0.2001, -6.25>,<11, 3.6, -3.55>} //portoes box{<9.2, 0.2001, 6.25>,<11, 3.6, 3.55>} box{<8.2, 0.20001, 2>,<11, 3.6, -2>} //porta de entrada texture{pigment{Gray} normal{brick 0.25 scale 0.3}} } #declare bloco = box{<-10,0,-6.5><10,3,6.5> // caixa principal a ser escavada para construir andar 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_z = box{<0.0,.2002,0.0001>,<0.1,2.5999,0.7999> pigment{DMFWood4} } #declare porta_x = box{<0.0001,.2002,0.0>,<0.7999,2.5999,0.1> pigment{DMFWood4} } #declare janela_do_quarto = box{<9.8,1.2001,4.0001>,<9.9,2.5999,5.7999> texture{NBglass} } #declare porta_da_varanda = box{<9.8,0.2001,1.2001>,<9.9,2.5999,2.9999> texture{NBglass} } #declare janela_do_banheiro = merge{ difference{ box{<0.0, -0.5999, 5.2501>,<0.1, -0.0001, 6.2499>} box{<-0.1,-0.5499, 5.3001>,<0.2, -0.0499, 6.1999>} texture{pigment{Gray}} } box{<0.02, -0.5498, 5.3002>,<0.08, -0.0498, 6.1998> texture{NBglass}} } #declare janela_da_cozinha = merge{ difference{ box{<0.0, -1.8001, 2.9001>,<0.1, -0.0001, 3.3999>} box{<-0.1,-1.7501, 2.9501>,<0.2, -0.0499, 3.3499>} texture{pigment{Gray}} } box{<0.02, -1.7502, 2.9502>,<0.08, -0.0498,3.3498> texture{NBglass}} rotate<0,0,-20> translate<2.4, 2.6, 0>} #declare janela_de_fora = merge{ difference{ box{<.8001, -0.9999, 0.0>,<1.4999, -0.0001, 0.1>} box{<.8501 ,-0.9499, -0.1>,<1.4499, -0.0499, 0.2>} texture{pigment{Gray}} } box{<.8502, -0.9498, .02>,<1.4498, -0.0498, .08> texture{NBglass}} rotate<-30,0,0> translate<0, 2.6, 2.4>} #declare objetos = merge{ object{janela_de_fora} object{janela_de_fora scale<-1,1,1>} box{<-.49, .2001, 1>,<.49, 2.599, 1.1> texture{pigment{Blue}}} //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 object{varanda scale} object{porta_z rotate<0, 30,0> translate<3.4, 0, 0.3> scale} //porta de entrada object{porta_x rotate<0,-30,0> translate<3.8, 0, 1.4> scale} //porta da cozinha object{porta_x rotate<0,-30,0> translate<3.8, 0, 3.4> scale} //portas da area de servico object{porta_x rotate<0,-30,0> translate<6.0, 0, 3.4> scale} //portas do quarto object{porta_z rotate<0, 30,0> translate<5.4, 0, 5.3> scale} //portas do banheiro object{porta_da_varanda scale} object{janela_do_quarto scale} object{janela_do_banheiro rotate<0,0,-50> translate<2.4, 2.6, 0> scale} object{janela_do_banheiro rotate<0,0,-70> translate<2.4, 2.6, -1.5> scale} //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{terreo} object{andar_completo translate 4*y} object{andar_completo translate 7*y} object{andar_completo translate 10*y} object{andar_completo translate 13*y} object{andar_completo translate 16*y} object{andar_completo translate 19*y} object{andar_completo translate 22*y} // PAVIMENTO plane{<0,1,0>,0 texture{pigment{color Green}}} // FUNDO background{ color Blue} /*box{<1000,1000,1000>,<-1000,-1000,-1000> pigment { bozo turbulence .1 color_map { [0.0 color White filter 1] [1.0 color White] } } hollow} */ // CAMERA camera { location <40,10,0> look_at <5,10,0> } // LUZ light_source{ <70,50,0> color White}