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

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

#declare tx_escada =
  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_assento =
  texture{
    pigment{ color rgb < 1.00, 0.80, 0.10 > }
    finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
  }

#declare tx_pele =
texture{
    pigment{ color rgb < 1.00, 0.80, 0.10 > }
    finish{ diffuse 0.9 ambient 0.1 }
  }

#declare roleta = seed(19);
#declare scale_roda = .2;

#macro escada(n)
   union{
      #declare i=0;
      #while(i<n)
         object{ box{ <0,0,-i> <i+1,2,-i-1> } texture{ tx_escada } }
         #declare i=i+1;
      #end
   }
#end

#declare assento =
   union{
      box{ <0,0,0> <.1,1,.8> texture{ tx_assento } }
      box{ <0,0,0> <1,1,.1> texture{ tx_assento } }
   }

#macro secao(fileiras,apf)
   union{
      #declare i=0;
      #while(i<fileiras)
         object{ box{ <1,0,-i> <i+2,1.5,-i-2> } scale <1,apf,1> translate <0,-.25,0> texture{ tx_escada } }
         #declare j=0;
         #while(j<apf)
            object{ assento translate <i+1,j*1.5,-i> }
            #declare time=rand(roleta);
            #if(time<.33)
               #declare tx=pigment{ color rgb<1,.1,.1>};
            #else
               #if(time<.66)
                  #declare tx=pigment{ color rgb<.1,1,.1>};
               #else
                  #declare tx=pigment{ color rgb<.1,.1,1>};
               #end
            #end
            object{ torcedor(tx) scale 1/3 translate <i+1.5,j*1.6,-i+2> }
            #declare j=j+1;
         #end
         #declare i=i+1;
      #end
   }
#end

#macro torcedor(tx)
   union{

     object{ sphere{ <0,0,0>, 1} texture{ tx_pele } }

     object{ cylinder{ <0,0,0> <0,0,-1.3> .3} texture{ tx_pele } }

     object{ cone{ <0,0,-1.3> .5 <0,0,-3> 1} texture{ tx } }

     object{ cylinder{ <0,-1.5,-2> <0,+1.5,-2> .3} texture{ tx_pele } }

     object{ cylinder{ <0,-.5,-2> <0,-.5,-4> .3} texture{ tx_pele } }
     object{ cylinder{ <0,+.5,-2> <0,+.5,-4> .3} texture{ tx_pele } }
   }
#end

#include "eixos.inc"

union{
   object{ eixos(3.00) }

   object{ secao(10,0) }
   object{ secao(10,8) translate<0,1.5,0>  }

   object{ secao(10,0) translate<0,13.5,0> }
   object{ secao(10,8) translate<0,15,0>}

union{
   object{ secao(10,0) }
   object{ secao(10,8) translate<0,1.5,0>  }

   object{ secao(10,0) translate<0,13.5,0> }
   object{ secao(10,8) translate<0,15,0>}
   rotate 180*z
      translate <35,20,0>
}

}

#include "camlight.inc"
#declare centro_cena = < 10.00, 8.00, -1.00 >;
#declare raio_cena = 30.0;
#declare dir_camera = < 1.00, 1.00, 2.00 >;
#declare dist_camera = 8.0;
#declare intens_luz = 1.00;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)