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

background { color rgb < 1,1,1 > }

#declare tx_camara =
        texture {
            pigment { color rgb < 1,0,0 > }
                finish{ ambient 1 }
    }

#declare tx_tunel =
        texture {
                pigment { color rgb < 0,0,0 > }
                finish { diffuse 1 }
        }

#declare n_camaras = 50;
#declare n_tuneis = 50;

#declare camara =
  sphere {
    < 0.00, 0.00, 0.00 >, 2
    texture{ tx_camara }
  }

#macro gerarRede(n_camaras, n_tuneis)

        #declare aleatorio = seed(1153);

        #declare pos_camara = array[n_camaras];
        #for (i, 0, n_camaras-1)

                #declare tamanho = 3*rand(aleatorio);
                #while (tamanho < 1)
                        #declare tamanho = 3*rand(aleatorio);
                #end

                #declare pos_camara[i] = <4*n_camaras*rand(aleatorio), 4*n_camaras*rand(aleatorio), 2*n_camaras*rand(aleatorio)>;
                object { camara scale tamanho translate pos_camara[i] }
        #end

        object { cylinder {pos_camara[0], < pos_camara[0].x, pos_camara[0].y, pos_camara[0].z+n_camaras >, 1 } texture { tx_tunel } }

        #for (i, 0, n_tuneis-1)

                #declare camara1 = 0;
                #declare camara2 = 0;
                #while (camara1 = camara2)
                        #declare camara1 = int(rand(aleatorio)*n_camaras);
                        #declare camara2 = int(rand(aleatorio)*n_camaras);
                #end

                #declare tamanho = rand(aleatorio);
                #while (tamanho < 0.2)
                        #declare tamanho = rand(aleatorio);
                #end

                #declare tunel =
                        cylinder {
                                pos_camara[camara1], pos_camara[camara2], tamanho
                                texture { tx_tunel }
                        }

                object { tunel }
        #end

#end

gerarRede(n_camaras, n_tuneis)

#include "camlight.inc"
#declare centro_cena = < 2*n_camaras, 2*n_camaras, n_camaras >;
#declare raio_cena = 3*n_camaras;
#declare dir_camera = < 14.00, 7.00, 8.00 >;
#declare dist_camera = 4*raio_cena;
#declare intens_luz = 1.50;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)