// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2020-12-08 10:46:02 by jstolfi

#version 3.6;
global_settings{ max_trace_level 30 }

// ======================================================================
// CORES E TEXTURAS

background{ color rgb < 0.85, 0.83, 0.55 > }

#declare tx_espelho = 
    texture
        {
            pigment{color rgb < 1.000, 1.000, 1.000 >}
            finish{diffuse 0.05 reflection 0.95*< 1.000, 1.000, 1.000 > ambient 0}
        }
#declare tx_caldeira =
    texture
        {
            pigment{color rgb < 1.000, 0.000, 0.000 >}
            finish{diffuse 0 ambient 1}
        }
        
#declare tx_estrutura =
    texture
        {
            pigment{color rgb <0.800, 0.800, 0.800>} 
            finish{diffuse 0.2 ambient 0.8}
        } 
        
#declare tx_chao = 
    texture
        {
            pigment{color rgb <0.800, 0.900, 0.900>}
            finish{diffuse 0.2 ambient 0.8}
        }

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

#declare caldeira = 
    cylinder{  
        <0.00, 0.00, 0.00>
        <0.00, 0.00, 2.50>
        1.00
        texture{tx_caldeira}
    }
    
#declare espelho =
    box{
        <0.00, 0.00, 0.00>
        <2.00, 0.20, 3.00> 
        texture{tx_espelho}
    }  
    
#declare estrutura =
    cylinder{
        <0.00, 0.00, 0.00>
        <0.00, 0.00, -4.00>
        0.15
        texture{tx_estrutura}
    } 
    
#declare estrutura_esp =
    cylinder{
        <0.00, 0.00, 0.00>
        <0.00, 0.00, -4.00>
        0.10
        texture{tx_estrutura}
    } 
    
#declare chao =
    box{
        <20,20,-4>
        <-20, -20, -5> 
        texture{tx_chao}
    }

#include "eixos.inc"
#include "frontal.inc" 
#include "camlight.inc"
#include "direcao_do_sol.inc"
#declare centro_cena = <1.00, 0.00, 0.00 >;
#declare raio_cena = 9;
#declare dir_camera = direcao_do_sol(-22.905833, 23.43656, clock*16+4);
#declare dist_camera = 5*raio_cena;
#declare intens_luz = 1.20;      
#declare dist_overlay = 0.67*dist_camera; // Agora eh distancia da camera ao overlay.     

camlight(centro_cena, raio_cena, dir_camera, dist_camera, z, intens_luz)

// Aqui está a cena, finalmente:

union{
  object{ eixos(3.00) }            
  object {caldeira}
  object {estrutura} 
  
  object{espelho rotate<-20.00, 0.00, 0.00> translate <0.00, 6.00, -1.00> scale<-1.00, -1.00, 1.00>}
  object{estrutura_esp translate <0.50, 6.60, -0.10> scale<-1.00, -1.00, 1.00>} 
  object{espelho rotate<-20.00, 0.00, 0.00> translate <0.00, 6.00, -1.00>}
  object{estrutura_esp translate <0.50, 6.60, -0.10>} 
  
  object{espelho rotate<-20.00, 0.00, 0.00> translate <3.00, 4.00, -1.00> scale<-1.00, -1.00, 1.00>}
  object{estrutura_esp translate <3.50, 4.60, -0.10> scale<-1.00, -1.00, 1.00>}
  object{espelho rotate<-20.00, 0.00, 0.00> translate <3.00, 4.00, -1.00>}
  object{estrutura_esp translate <3.50, 4.60, -0.10>}    
  
  object{espelho rotate<-20.00, 0.00, 0.00> translate <-3.00, 4.00, -1.00> scale<-1.00, -1.00, 1.00>}
  object{estrutura_esp translate <-2.50, 4.60, -0.10> scale<-1.00, -1.00, 1.00>}
  object{espelho rotate<-20.00, 0.00, 0.00> translate <-3.00, 4.00, -1.00>}
  object{estrutura_esp translate <-2.50, 4.60, -0.10>}
  object{chao}
}