#include "colors.inc"

// background{ SummerSky }

plane {
z, 100
pigment {checker color <0.2,0.5,1.0>, color <0.2,0.7,1.0> scale 0.5}
} 

// the rotating camera: ----------
camera { 
  angle    35          
  location <0 , 0 ,-40>
  right    x*image_width/image_height
  look_at  <0 , 0, 50>
  rotate   <0,-360*(clock+0.10),0> 
}
//---------------------- end of camera




light_source {
  100*< 5.00, 15.00, -15.00 >
  color rgb 1.3*< 1,1,1 >
}

light_source {
  100*< -5.00, 15.00, -20.00 >
  color rgb 1.1*< 1,1,1 >
}


#declare transparente =
  texture {
    finish {
      ambient 0.1 diffuse 0.1
      reflection 0.25
      specular 1 roughness 0.001
    }
    pigment { color White  filter 0.8}
  }


#declare dx = 5; // distancia
#declare dy = 4; // distancia
#declare i = -10;
#declare j = -4;
#declare gerador = seed(1234517);


// gera rede
#while (j <= 4)  
  #declare i = -10;
  #while (i <= 10)                                  
    #declare R = rand(gerador); 					// Tom do vermelho
    #declare G = rand(gerador); 					// Tom do verde
    #declare B = rand(gerador); 					// Tom do azul
    sphere { <i, j, 0>, 1.0 pigment { color rgb <1,0,0> } finish { diffuse 0.7 ambient 0.3 }}
    //  box { <7*i-0.3, -5, 30>, <7*i+0.3, 4, 350> pigment {White} }     
    #declare i = i + dx;
  #end
  #declare j = j + dy;
#end

#declare e = 0.2;
#declare i = -10;
#declare j = -4;


// gera links Horiz
#while (j <= 4) 
  #declare i = -10;
  #while (i <= 10 - 5)  
    //  cylinder { <i + e , j, 0>, <i + dx - e, j, 0>, 0.4  pigment { color rgb <0,1,0> } finish { diffuse 0.7 ambient 0.3 }}  
    cylinder { <i + e , j, 0>, <i + dx - e, j, 0>, 0.6   texture {transparente}}
    #declare i = i + dx;
  #end  
  #declare  j= j+4;
#end


#declare j = 0;
// gera links Vertic
#while (j <= 4) 
  #declare i = -10;
  #while (i <= 10)  
    cylinder { <i, j - e, 0>, <i, j - dy + e, 0>, 0.6    texture {transparente}}   
    #declare i = i + dx;
  #end  
  #declare  j= j+4;
#end


#declare gerador = seed(1234517);

#declare e = 0.2;
#declare i = -10;
#declare j = -4;


//insere pacote na horiz
#while (j <= 4) 
  #declare i = -10;
  #while (i <= 10)  
    #declare rand1 = rand(gerador);
    #if (rand1>0.85)  		
      sphere{ <i*clock*sin(2*pi*clock) ,j ,0 >, 0.4 pigment { color Yellow } finish { diffuse 0.7 ambient 0.3 }}
    #else
      #if (rand1>0.75)
	sphere{ <i*sin(2*pi*clock) ,j ,0 >, 0.4 pigment { color Blue } finish { diffuse 0.7 ambient 0.3 }}	
      #end
    #end
    #declare i = i + 0.5;
  #end  
  #declare  j= j + 4;
#end

//insere pacote na vert


#declare j = -4;
#declare i =-10;

#while(i <= 10)
  #declare j = -4;
  #while (j <= 4) 
    #declare rand2 = rand(gerador);
    #if (rand2>0.83)  
      sphere{ <i ,j*sin(2*pi*clock) ,0 >, 0.45 pigment { color Green } finish { diffuse 0.7 ambient 0.3 }}
    #else
      #if (rand2>0.78)
	sphere{ <i ,j*sin(2*pi*clock) ,0 >, 0.45 pigment { color Pink } finish { diffuse 0.7 ambient 0.3 }}
      #end
    #end
    #declare j = j + 0.5;
  #end  
  #declare  i= i +5;
#end