// Last edited on DATE TIME by USER
// Processed by remove-cam-lights

#declare tx_espelho =
  texture{
    pigment{ color rgb < 1.00, 0.85, 0.30 > }
    finish{ diffuse 0.2 reflection 0.7*< 1.00, 0.85, 0.30 > ambient 0.1 }
  }

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

#macro MakeMina(n_camaras, n_tuneis)
  #declare roleta1 = seed(1500);
  #declare centro_das_camaras = array[n_camaras];
  #declare camaras = array[n_camaras];
  #declare tuneis = array[n_tuneis];

  #declare i = 0;
  #while (i < n_camaras)
    #declare centro_das_camaras[i] = < 1+sin(3*i)*(int(rand(roleta1)*15)),
                                       int(rand(roleta1)*15), int(rand(roleta1)*15)>;
    #declare camaras[i] = sphere { centro_das_camaras[i],
                                   1+(rand(roleta1)) texture {tx_espelho}}
    #declare i = i + 1;
  #end

  #declare i = 0;
  #while (i < n_tuneis)
    #declare c1 = int(rand(roleta1)*n_camaras);
    #declare c2 = int(rand(roleta1)*n_camaras);
    #if (c2 != c1)
       #declare tuneis[i] = cylinder { centro_das_camaras[c1],
                                       centro_das_camaras[c2], 0.3 texture{tx_espelho}}
       #declare i = i + 1;
    #end
  #end

  union {
  #declare i = 0;
  #while (i < n_camaras)
    object { camaras[i] }
    #declare i = i + 1;
  #end
  #declare i = 0;
  #while (i < n_tuneis)
    object { tuneis[i] }
    #declare i = i + 1;
  #end
  }
#end

MakeMina(15,5)

#include "camlight.inc"
#declare centro_cena = < 0.00, 0.00, 0.00 >;
#declare raio_cena = 30.0;
#declare dir_camera = < 10.00, 10.00, 10.00 >;
#declare dist_camera = 2*raio_cena;
#declare intens_luz = 1.20;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)