// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2003-09-04 15:25:26 by stolfi

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

#include "colors.inc"

camera {
  location  <  8.00, 7.00, 2 >  // Posição do observador.
  right     0.75*x                // Largura RELATIVA da imagem.
  up        -1.00*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 1.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 raio = 2.000;
#declare amarelo = <1,.8,.1>;
#declare verde = <0,1,0>;
#declare vermelho = <1,0,0>;

#declare tverde =
    texture {
	finish {
		ambient 0.1 diffuse .1 reflection .25 
		specular 1 roughness .001
		}
	pigment { color verde filter 1 }
}


#declare tinta_A = 
  texture {
    pigment { color rgb < 0.10, 0.80, 1.00 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

#declare tinta_B = 
  texture {
    pigment { color rgb < 1.00, 0.80, 0.10 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }
	
#declare tinta_C = 
  texture {
    pigment { color rgb < 1.00, 0.0, 0.0 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

#declare tvermelho =
    texture {
	finish {
		ambient 0.1 diffuse .1 reflection .25 
		specular 1 roughness .001
		}
	pigment { color vermelho filter 1 }
	}

#declare tx_espelho =
texture {
	pigment { rgb amarelo }
	finish {
	ambient .05 diffuse .05
	reflection amarelo *.50
	specular .20 roughness .05
}
}


#declare predio =
box {
	<-3,1,-1>
	<3,-1,3>
	texture {tinta_A}
}

#declare fechadura =
 cylinder {
	<3,-.2,-.6>
	<2.8,-.2,-0.6>
	.05
	pigment { color rgb <0,0,0>}
}

#declare porta =
box {
	<3,.3,-1>
	<2.8,-.3,0>
	texture {tinta_C}
}

#declare adorno = 
cylinder {
	<3.05,0,2.3>
	<2.8,0,2.3>
	.4 
	texture {tverde}
}
	

#declare janela_quadrada =
box {
	<2.8,1.1,-.5>
	<2.3,.8,0>
	texture {tinta_B}
}

#declare janela_retangular = 
box {
	<2.8,1.1,-.4>
	<2.3,.8,0>
	texture {tinta_C}
}





#declare janelas =
union {
	#declare i=0;
	#declare gerador = seed ( 1234567);
	#while (i<4)
	#declare j=0;
	#while (j<10)
	   #if (rand (gerador )>=.5)
		 object { janela_retangular translate <-0.55*j,0,.8*i>}
	   #else 
		 object { janela_quadrada translate <-0.55*j,0,.8*i>}	
	   #end
	   #declare j=j+1;
	
	#end
	#declare i=i+1;
	#end
	}



#declare  pedra_verde = 
 	cylinder {
	<3,0,.8>
	<2.9,0,.8>,
	.2
	texture { tverde}
	interior { ior 1.5 }
}
difference {

union {
object {predio}
object {porta}
object {adorno}
object {fechadura}
}
object {janelas}
}