// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2020-12-08 10:47:26 by jstolfi
// ssh ra217638@ssh2.students.ic.unicamp.br
// scp main.pov main.png  ra217638@ssh2.students.ic.unicamp.br:/home/ec2018-fra/ra217638/public_html/mc937-2020-2

#version 3.6;
global_settings{ max_trace_level 30 }

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

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

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

#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_xadrez =
  texture{
    pigment{ checker color rgb < 0.600, 0.600, 0.600 >, color rgb < 0.900, 0.900, 0.900 > }
    finish{ diffuse 0.9 ambient 0.1 }
    scale 1
  }


// ======================================================================
// Macros

#macro espelho()

  union {
    box {
      <-4, -2.5, -0.1>, <4, 2.5, 0.1> // <x, y, z> near lower left corner, <x, y, z> far upper right corner
      rotate <0, 60, 0> // <x°, y°, z°>
      translate <0, 0, 3.46> // <x, y, z>
      texture {tx_espelho}
    }
    box {
      <-0.25, -0.25, -3.46>, <0.25, 0.25, 3.46> // <x, y, z> near lower left corner, <x, y, z> far upper right corner
      translate <-2.25, 0, 3.46> // <x, y, z>
      texture {
        tx_plastico
      }
    }
  }
 
  
#end




// Inicio da cena
#include "eixos.inc"
#include "direcao_do_sol.inc"

union{
  // object{ eixos(3.00) }

  
  box{ < -80, -80, -0.1 >, < +80, +80, 00.0 > texture{ tx_xadrez } }

  cylinder {
    <0, 0, -2.5>, <0, 0, 2.5>, 1 // center of one end, center of other end, radius
    translate <0, 0, 2.5> // <x, y, z>
    texture {tx_caldeira}
  }

  object{espelho() translate <-7, 0, 0> rotate <0, 0, 60> }
  object{espelho() translate <-7, 0, 0> rotate <0, 0, 120>  }
  object{espelho() translate <-7, 0, 0> rotate <0, 0, 180>  }
  object{espelho() translate <-7, 0, 0> rotate <0, 0, 240>  }
  object{espelho() translate <-7, 0, 0> rotate <0, 0, 300>  }
  object{espelho() translate <-7, 0, 0> rotate <0, 0, 360>  }


  
  
}

#include "camlight.inc"
#include "frontal.inc"




#declare hora = (16*(clock) + 4);
#declare sol = direcao_do_sol(-22.9,-20,hora);
#declare centro_cena = < 0, 0, 0>;
#declare raio_cena = 15;
#declare dir_camera = sol;
#declare dist_camera = 5*raio_cena;
#declare intens_luz = 1.20;


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