// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2000-09-21 20:06:05 by stolfi

#include "colors.inc"

  camera {
    angle 40
    location <-6,15,20>
    look_at <0,0,0>
  }

  light_source { <-50, 50, 50> White }
  light_source { <50, -50, 50> White }
  light_source { <-50, 50, -50> White }
  light_source { <50, 50, -50> White }

background  { Gray25 }

#declare andares_r = seed(pi);
#declare janelas_fachada_r = seed(pi);
#declare janelas_lateral_r = seed(pi);


#declare a = 0;

//janelas
#declare frente_apagada =
	box { <-1,0.2,0.95> <-0.75,0.7,1.05>
		pigment { color Black }
 }

#declare lateral_apagada =
	box { <-0.95,0.2,-1> <-1.05,0.7,-0.75>
		pigment { color Black }
 }

/*#declare predio =	
	union
	{
		//base do predio
		box{ <-1,0,-1> <1,andares,1>
		pigment { color White } }

		//porta no terreo
		box { <-0.2,0,0.95> <0.2,0.8,1.05>
			pigment { color Red } }

		//macaneta
		sphere { <-0.1,0.4,1> 0.1
			pigment { color Green } }

		//janelas
		#while (j < andares)
			//janelas fachada
			#while (i < janelas_fachada)
				//janela apagada
				#declare k = 1.5/janelas_fachada;
					object { frente_apagada
						translate < (k*(i+1)),j,0>
							}
				#declare i = i + 1;
			#end
			//janelas laterais
			#declare i = 0;
			#while (i < janelas_lateral)
				//janela apagada
				#declare k = 1.5/janelas_lateral;
					object { lateral_apagada
						translate < 0,j,(k*(i+1))>
							}
				#declare i = i + 1;
            #end
	
			#declare i = 0;
			#declare j = j + 1;

		#end
	}
*/
#declare rua_NS =
	union
	{
		box { <-0.25,-0.1, 10> <0.25, 0, -20>
			pigment { color Black }
		}
	   	#declare p = 0;
		#while (p < 30)
			box { <-0.05,-0.1, 10> <0.05, 0.1, 9.5>
			pigment { color White }
			translate <0,0, -p>
			}
			#declare p = p + 1;
		#end
	}

#declare rua_LO =
	object {rua_NS
			rotate <0,90,0> }


	#while (a < 10)
		#declare andares = int(rand(andares_r)*10) + 2;
		#declare janelas_fachada = int(rand(janelas_fachada_r)*5) + 1;
		#declare janelas_lateral = int(rand(janelas_lateral_r)*5) + 1;

		#if (janelas_fachada > 4)
			#declare janelas_fachada = 4;
		#end
		#if (janelas_lateral > 3)
			#declare janelas_lateral = 3;
		#end
		
		#declare j = 1;
		#declare i = 0;
		
		union
		{
			//base do predio
			box{ <-1,0,-1> <1,andares,1>
				pigment { color White } }

			//porta no terreo
			box { <-0.2,0,0.95> <0.2,0.8,1.05>
				pigment { color Red } }

			//macaneta
			sphere { <-0.1,0.4,1> 0.1
				pigment { color Green } }

			//janelas
			#while (j < andares)
				//janelas fachada
				#while (i < janelas_fachada)
					//janela apagada
					#declare k = 1.5/janelas_fachada;
						object { frente_apagada
							translate < (k*(i+1)),j,0>
							}
					#declare i = i + 1;
				#end
				//janelas laterais
				#declare i = 0;
				#while (i < janelas_lateral)
					//janela apagada
					#declare k = 1.5/janelas_lateral;
						object { lateral_apagada
							translate < 0,j,(k*(i+1))>
							}
					#declare i = i + 1;
            	#end
	
				#declare i = 0;
				#declare j = j + 1;

			#end
		translate <-5 + a,0,3>
		}

    	#declare a = a + 2;
	#end

object {rua_NS
		translate <-6.5,0,0> }
object {rua_NS
		translate <4.5,0,0> }

object {rua_LO
		translate <0,0,4.5> }
object {rua_LO
		translate <5,0,-6.5> }