// Exemplo de arquivo de descricao de cena para POV-ray

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

#include "colors.inc"
#include "stones.inc"

camera {
  location  <40.00, 40.00, 40.00>   // Posição do observador.
  right     -0.75*x                // Largura RELATIVA da imagem.
  up        1.00*y
  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 { White }
background{ color rgb < 0.75, 0.80, 0.85 > }

//Pontos que formam a superfície de rotação

#declare predio = 
cylinder {
   <0,1,0>,
   <0,5,0>, 5
   open
   texture { T_Stone17 }
}

#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 filme_rgb = <0.2, 0.20, 0.80>;
#declare filme =
	texture {
	   finish {
		ambient 0.1 diffuse 0.1 reflection 0.15
		specular 2 roughness 0.010
		}
	   pigment { color filme_rgb filter 1 }
	}

#declare filme_t_rgb = <0.7, 0.70, 0.87>;
#declare filme_t =
	texture {
	   finish {
		ambient 0.1 diffuse 0.1 reflection 0.15
		specular 2 roughness 0.010
		}
	   pigment { color filme_t_rgb filter 1 }
	}

//#declare G = seed(76614);
//#declare H = seed(10871);
#declare vagoes =
union {
   #declare a = 1;
   //#declare nv = (5*rand(G) + 5);
   //#declare nj = 5*rand(H);
   #while ( a <= 7 )
	#declare vagao =
	#declare b = 1;
	union { 	
	   #while (b <= 5)
	      #declare janela =	
	      #if (b <= 3)	
		   box{<0.1,4,0>, <0.2,5,1> texture { filme_t } }
	      #else
		   box{<0.1,4,0>, <0.2,5,1> texture { filme } }
	      #end
	      object { janela translate <3,2,0>}
	      torus {0.40,0.30 
		translate <3,0,0> 
		rotate 90*y
		pigment{color <0.02,0.42,0.65>}
		}	
	      torus {0.40,0.30 
		translate <-3,0,3> 
		rotate 90*y
		pigment{color <0.02,0.42,0.65>}
		}
	   box{<0,0,0>, <3,2,5> pigment { color <0.67,0.3,0.2>}}
	   #declare b = b + 1; 
	   #end 
	}
   	
   object { vagao translate <-2,0,2*a> }
   #declare a = a + 1;
   #end   	
}
vagoes