// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2020-09-30 19:57:13 by jstolfi

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

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

#declare tx_robo = 
  texture {
    pigment { color rgb <0.8, 0.8, 0.8> } // Adjust the color as needed
    finish {
      ambient 0.1 
      diffuse 0.9 
      specular 1.0 
      metallic 1.0 
    }
}

#declare tx_painel = texture {
  pigment { color rgb <1, 0, 0> }
  finish { 
    ambient 1
    diffuse 0
  }
} 
// ======================================================================
// DESCRI��O DA CENA 

#include "direcao_do_sol.inc"
#include "parametros.inc"

#macro parede(a, b, offp)
  union {
    object {
      box {
        a, b
      } texture { tx_robo }
    }
    object { painel(<a.x + offp, b.y, a.z + offp>, <b.x - offp, b.y + offp / 2, b.z - offp>) }
  }
#end

#macro painel(a, b)
  union {
    object {
      box {
        a, b // <x, y, z> near lower left corner, <x, y, z> far upper right corner
      }
    } texture { tx_painel }
  }
#end

#macro templo()
  union {
    object { parede(<-40, -1, -10>, <20, 1, 10>, 2) rotate <20, 0, 0> }
    object { parede(<-20, -1, -10>, <20, 1, 10>, 2) rotate <20, 0, -90> translate <20, -22, 0> }
    object { parede(<-20, -1, -10>, <18, 1, 10>, 2) rotate <20, 0, -60> translate <30, -60, 0> }
    object { parede(<-40, -1, -10>, <40, 1, 10>, 2) rotate <30, 0, -180> translate <0, -80, 0> }
    object { parede(<-40, -1, -10>, <40, 1, 10>, 2) rotate <30, 0, -180> translate <0, -80, 0> }
    object { parede(<-20, -1, -10>, <22, 1, 10>, 2) rotate <30, 0, -240> translate <-50, -60, 0> }
    object { parede(<-20, -1, -10>, <22, 1, 10>, 2) rotate <30, 0, -300> translate <-52, -20, 0> }
  }
#end

union {
  object { templo() }
}

#local dir_sol = direcao_do_sol(lat, lon, mes, hora);

#include "camlight.inc"
#declare centro_cena = < 0.00, -40, 10.00 >;
#declare raio_cena = 100.0;
#declare dir_camera = dir_sol;
#declare dist_camera = 200*raio_cena;
#declare intens_luz = 1.20;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)