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

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_fosca =
  texture{
    pigment{ color rgb < 1.00, 0.80, 0.10 > }
    finish{ diffuse 0.9 ambient 0.1 }
  }

#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 }
  }

#declare tx_vidro =
  texture{
    pigment{ color rgb < 0.85, 0.95, 1.00 > filter 0.70 }
    finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 }
  }

#declare tx_xadrez =
  texture{
    pigment{ checker color rgb < 0.10, 0.32, 0.60 >, color rgb < 1.00, 0.97, 0.90 > }
    finish{ diffuse 0.9 ambient 0.1 }
    scale 2.0
  }

#macro Make_Mina(nCamaras, nTuneis)
  #declare roleta = seed(nCamaras);
  #declare i=0;
  #declare camPos = array[nCamaras];
  #while(i<nCamaras)
    #declare centro = <5+int(10*rand(roleta)),3+int(10*rand(roleta)),int(10*rand(roleta))>;
    #declare camPos[i] = centro;
    sphere{
      centro,+1
      texture{tx_plastico}
    }
    #declare i=i+1;
  #end
  #declare i=0;
  #declare roleta = seed(nCamaras);
  #while (i<nTuneis)
    #declare base = int(nCamaras*rand(roleta));
    #declare topo = int(nCamaras*rand(roleta));
    #if (base=topo)
      #declare topo = topo+1;
    #end
    cylinder{camPos[base],camPos[topo], +0.1 texture{tx_fosca}}
    #declare i=i+1;
  #end

    cylinder{camPos[0], <+15,+15,+15>, +0.1 texture{tx_fosca}}
#end

#include "eixos.inc"

Make_Mina(50,50)

#include "camlight.inc"
#declare centro_cena = < 0.00, 0.00, 00 >;
#declare raio_cena = 25.0;
#declare dir_camera = < +20, +20, +10 >;
#declare dist_camera = 5*raio_cena;
#declare intens_luz = 1.20;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)