// Trabalho de Laboratorio 3: O Templo da Computacao
// Created by Thais RA:017410

// ======================================================================
// CÂMERA 

camera {
  location  <  0.00, 100.00, 0.00 >  // Posição do observador.
  right     -1.00*x                // Largura RELATIVA da imagem.
  up        0.75*y                 // Altura RELATIVA da imagem.      
  sky       z                      // Qual direção é "para cima"?
  look_at   <  0.00, 0.00, 0.00 >  // Para onde a câmera está apontando.
} 
// Nota: os parâmetros "right" e "up" devem ter a mesma proporção
// que os parâmetros ${WIDTH} e ${HEIGHT} no Makefile.

// ======================================================================
// FONTES DE LUZ
	
light_source {
  10 * < 50.0, 30.0, 50.0 >              // Posição da lâmpada.
  color rgb 5.2 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
} 

light_source {
  10 * < +50.0, -10.0, +10.0 >             // Posição da lâmpada.
  color rgb 0.8 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
} 

// ======================================================================
// DESCRIÇÃO DA CENA 

background{ color rgb < 0.75, 0.80, 0.85 > }


#declare vermelho = 
  texture {
    pigment { color rgb < 1 , 0, 0 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

#declare azul=< 0.1, 0.8, 1>; 

#declare azultransp = 
  texture {
	finish{
		ambient 0.1 diffuse 0.1 reflection 0.25
		specular 1 roughness 0.001
	}
	pigment {color azul filter 1}
}

#declare amarelo =
  texture {
    pigment {color rgb <1, 0.8, 0.1>}
    finish {diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1}
}


#declare janela=
	box{<5.5,22.51,8>,<4.5,22.49,7>
	texture {azultransp}
}

#declare andar=
	union{
	#declare i=0;
	#while (i<3)
		#declare xis=7.5 - i*5;
		#declare yis=22.5;
		#declare zis=10;
		#declare j=0;
		#while (j<9)
			#declare yis=22.5 - j*5;
			#declare k=0;
			#while (k<4)
				#declare zis=10 - k*5;
				#declare sala=
					box { <xis,yis,zis>,<xis-5,yis-5,zis-5> }
					object{sala}
				#if (i=2 & j=1 & k=1)
					box{	<1.5,22.6,-10>,<-1.5,22.4,-6>
						texture{vermelho}
					}
				#else
					object  { 
						janela
						translate <-5*i,0,-5*k>
					}
					object  { 
						janela
						translate <-5*i,-45,-5*k>
					}
				#end
				#declare k=k+1;
			#end
			#declare j=j+1;
		#end
		#declare i=i+1;
	#end
	texture{amarelo}
	}

#declare gerador=seed(123456);
#declare sol=
sphere{<50*rand(gerador),0,45>,5
texture{amarelo}
}

union{
object {andar}
object {sol}
}