#include "colors.inc" #include "textures.inc" #include "stones.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, 3.9, -3.5>} //garagem box{<-19.8, 0.2, 6.3><9.8, 3.9, 3.5>} //garagem box{<-19.801, 0.2001, -3.6><-3.5, 3.9, 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{T_Grnt23 normal{brick 0.25 scale 0.3}} } #declare luz_na_entrada = cylinder{<9.5,4,-1>,<9.5,4,1>,0.1 pigment{rgb<10,10,10>}} object{luz_na_entrada} #declare porta_de_entrada = box{<9.2,.20002,1.9999><9,3.59999,0> texture{Glass2}} object{porta_de_entrada} object{porta_de_entrada translate<-9.2,0,0> rotate<0,-50,0> translate<9.2,0,-2>} #declare portao_garagem = difference{ box{<9.8,0.2002,6.24999><10,3.5999,3.5501>} box{<9.7, .5, 6.05><10.1, 3.3, 5.75>} box{<9.7, .5, 5.55><10.1, 3.3, 5.25>} box{<9.7, .5, 5.05><10.1, 3.3, 4.75>} box{<9.7, .5, 4.55><10.1, 3.3, 4.25>} box{<9.7, .5, 4.05><10.1, 3.3, 3.75>} texture{Silver_Texture} } object{portao_garagem translate<-10, -3.6, 0> rotate<0,0,30> translate<10, 3.6, 0>} object{portao_garagem scale<1,1,-1>} #declare bloco = box{<-10,0,-6.5><10,3,6.5> // caixa principal a ser escavada para construir andar texture{T_Grnt23 normal{brick 0.25 scale 0.3}} } //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 {T_Grnt23} } } #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} //object{andar_completo translate 25*y} //object{andar_completo translate 28*y} // PAVIMENTO plane{<0,1,0>,0 texture{pigment{color Green}}} // FUNDO background{color Blue} // CAMERA camera { location <20,25,20> look_at <0,5,0> } // LUZ light_source{ <20,25,20> color White}