#include "colors.inc" #include "textures.inc" #declare ALTURA_DA_JANELA = 25.0; #declare LARGURA_DA_JANELA = 25.0; #declare ESPESSURA_DA_JANELA = 1.0; #declare ESPESSURA_DO_VIDRO = 0.5; #declare BORDA_DA_JANELA = 3.0; #declare ALTURA_DA_PORTA = 60.0; #declare LARGURA_DA_PORTA = 25.0; #declare ESPESSURA_DA_PORTA = 2.0; #declare JANELAS_POR_SALA = 8.0; // apenas as superiores #declare DIST_PISO_JANELA = 25.0; #declare ESPACAMENTO = 10.0; // distancia entre janelas, porta-janela, porta-fim da sala... #declare ESPESSURA_DA_PAREDE = 5.0; #declare DIST_TETO_JANELA = 15.0; #declare SALAS_ESQUERDA = 2.0; #declare SALAS_DIREITA = 4.0; #declare SALAS_POR_ANDAR = SALAS_ESQUERDA + SALAS_DIREITA; #declare LARGURA_DA_SALA = 2*LARGURA_DA_PORTA + JANELAS_POR_SALA * LARGURA_DA_JANELA + 5 * ESPACAMENTO; #declare ALTURA_DA_SALA = DIST_PISO_JANELA + 2*ALTURA_DA_JANELA + DIST_TETO_JANELA; #declare PROFUNDIDADE_SALA = (LARGURA_DA_SALA + ALTURA_DA_SALA)/2; #declare LARGURA_CORREDOR = LARGURA_DA_SALA/3; #declare LARGURA_CORREDOR_LATERAL = LARGURA_DA_SALA/6; #declare LARGURA_BANHEIRO = LARGURA_DA_SALA * 2/3; #declare LARGURA_PB = SALAS_POR_ANDAR * LARGURA_DA_SALA + LARGURA_CORREDOR + 2*(LARGURA_CORREDOR_LATERAL + LARGURA_BANHEIRO); #declare PROFUNDIDADE_PB = 2*PROFUNDIDADE_SALA + 2*LARGURA_CORREDOR_LATERAL; #declare ALTURA_BLOCO = 40; #declare TEXTURA_JANELA = texture { pigment { color blue 0.5 } } #declare TEXTURA_VIDRO = texture { Glass } #declare TEXTURA_PORTA = texture { pigment { color rgb <0,0.5,0.5> } } #declare TEXTURA_PAREDE = texture { pigment { White } } #declare TEXTURA_BLOCO = texture { pigment { Brown } } // ======================================================================================================== camera { location look_at } // ======================================================================================================== #declare i = SALAS_DIREITA + SALAS_ESQUERDA; #while (i > 0) light_source { color White } #declare i = i - 1 #end // ======================================================================================================== // ceu de fundo sky_sphere { pigment { gradient y color_map { [0.000 0.002 color rgb <0.0, 0.0, 0.5> color rgb <0.0, 0.0, 0.6>] [0.002 0.200 color rgb <0.0, 0.0, 0.4> color rgb <0.0, 0.0, 0.7>] } scale 2 translate -1 } pigment { bozo turbulence 0.4 octaves 6 omega 0.7 lambda 2 color_map { [0.0 0.1 color rgb <0.85, 0.85, 0.85> color rgb <0.75, 0.75, 0.75>] [0.1 0.5 color rgb <0.75, 0.75, 0.75> color rgbt <1, 1, 1, 1>] [0.5 1.0 color rgbt <1, 1, 1, 1> color rgbt <1, 1, 1, 1>] } scale <0.2, 0.5, 0.2> } rotate -135*x } // ======================================================================================================== // janela com canto inferior esquerdo frontal em <0,0,0> #declare janela = union { difference { // caixa azul que vai ser cortada para colocacao do vidro box { <0,0,0> texture { TEXTURA_JANELA } } // caixa para cortar a janela box { } } // vidro box { texture { TEXTURA_VIDRO } } } // ======================================================================================================== // porta com canto inferior esquerdo frontal em <0,0,0> #declare porta = box { <0,0,0> texture { TEXTURA_PORTA } } // ======================================================================================================== // sala de aula com canto inferior esquerdo frontal em <0,0,0> #declare sala_de_aula = union { difference { // bloco de concreto onde sera moldada a sala box { <0,0,0> texture { TEXTURA_PAREDE } } // corte para deixar a sala oca box { ESPESSURA_DA_PAREDE * <1,-1,1> - ESPESSURA_DA_PAREDE * <1,-1,1> texture { TEXTURA_PAREDE } } // cortes para colocação de portas box { texture { TEXTURA_PAREDE } } box { texture { TEXTURA_PAREDE } } // cortes para colocacao de janelas #declare i = 0; #while (i < JANELAS_POR_SALA) #if (i < JANELAS_POR_SALA/2) #declare SOMA = 0; #else #declare SOMA = ESPACAMENTO; #end box { texture { TEXTURA_PAREDE } } // janelas inferiores #if (mod(i,JANELAS_POR_SALA-1) = 0) box { texture { TEXTURA_PAREDE } } #end #declare i = i + 1; #end } // colocação das portas object { porta translate ESPACAMENTO*x } object { porta translate (LARGURA_DA_SALA-ESPACAMENTO-LARGURA_DA_PORTA)*x } //colocação das janelas #declare i = 0; #while (i < JANELAS_POR_SALA) #if (i < JANELAS_POR_SALA/2) #declare SOMA = 0; #else #declare SOMA = ESPACAMENTO; #end object { janela translate } // janelas inferiores #if (mod(i,JANELAS_POR_SALA-1) = 0) object { janela translate } #end #declare i = i + 1; #end } // ======================================================================================================== // primeiro andar (apenas salas de aula da frente), com canto em <0,0,0> #declare salas_frente_primeiro_andar = union { #declare i = 0; #while (i < SALAS_ESQUERDA + SALAS_DIREITA) #if (i < SALAS_ESQUERDA) #declare SOMA = 0; #else #declare SOMA = LARGURA_CORREDOR; #end object { sala_de_aula translate (i*LARGURA_DA_SALA + SOMA)*x } #declare i = i + 1 #end } // ======================================================================================================== // primeiro andar (salas de aula do fundo), com canto em <0,0,0> #declare salas_fundo_primeiro_andar = object { salas_frente_primeiro_andar scale -z translate PROFUNDIDADE_SALA*z } // ======================================================================================================== // primeiro andar (todas as salas), com canto em <0,0,0> #declare salas_primeiro_andar = union { object { salas_frente_primeiro_andar } object { salas_fundo_primeiro_andar translate PROFUNDIDADE_SALA*z } } // ======================================================================================================== // definicao do bloco de separacao entre andares, com canto em <0,0,0> #declare bloco_separador = box { <0,0,0> texture { TEXTURA_BLOCO } } // ======================================================================================================== object { salas_primeiro_andar } // ======================================================================================================== // piso plane { y 0 pigment { White } } // ========================================================================================================