// 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_verde =
  texture{
    pigment{ color rgb < 0.10, 1.00, 0.10 > }
    finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
  }

#declare tx_branco =
  texture{
    pigment{ color rgb < 1.0, 1.00, 1.0 > }
    finish{ diffuse 0.9 ambient 0.1 }
  }

#declare tx_preto =
  texture{
    pigment{ color rgb < 0.0, 0.00, 0.0 > }
    finish{ diffuse 0.9 ambient 0.1 }
  }

#declare tx_vermelho =
  texture{
    pigment{ color rgb < 1.00, 0, 0 > }
    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
  }

#declare torcedorA = union {

         cone {
              < 0 , 0, 2 >,0.1
              < 0  ,0 , 0.5 >, 0.3
              texture{ tx_plastico  }
              }

         sphere{ <0,0,2.35>,
                 0.35
                 texture{tx_fosca}
                 }

        cylinder{
                < 0, 0, 1.5 >,
                < 0.5, 0, 1.2 >,
                0.10
                texture{ tx_fosca }
                }

        cylinder{
                < 0, 0, 1.5 >,
                < -0.5, 0, 1.2 >,
                0.10
                texture{ tx_fosca }
                }

        cylinder{
                < 0.2, 0, 0.5 >,
                < 0.25, 0, 0 >,
                0.10
                texture{ tx_fosca }
                }

        cylinder{
                < -0.2, 0, 0.5 >,
                < -0.25, 0, 0 >,
                0.10
                texture{ tx_fosca }
                }
}

#declare torcedorB = union {

         cone {
              < 0 , 0, 2 >,0.1
              < 0  ,0 , 0.5 >, 0.3
              texture{ tx_verde  }
              }

         sphere{ <0,0,2.35>,
                 0.35
                 texture{tx_vermelho }
                 }

        cylinder{
                < 0, 0, 1.5 >,
                < 0.5, 0, 1.2 >,
                0.10
                texture{ tx_vermelho }
                }

        cylinder{
                < 0, 0, 1.5 >,
                < -0.5, 0, 1.2 >,
                0.10
                texture{ tx_vermelho }
                }

        cylinder{
                < 0.2, 0, 0.5 >,
                < 0.25, 0, 0 >,
                0.10
                texture{ tx_vermelho }
                }

        cylinder{
                < -0.2, 0, 0.5 >,
                < -0.25, 0, 0 >,
                0.10
                texture{ tx_vermelho }
                }
}

#macro torcida(n,m)
       union {
         #declare roleta=seed(315);
         #declare i=0;
         #while(i<n)
                #declare j=0;
                #while(j<m)
                        #if ( rand(roleta)<0.25 )
                                object{ torcedorA translate <1+j*1.5,0.5-i,0.5+i/2> }
                        #else
                           #if( rand(roleta) <0.33)
                                object{ torcedorB translate <1+j*1.5,0.5-i,0.5+i/2> }
                           #end
                        #end
                        #declare j=j+1;
                #end
        #declare i=i+1;
        #end
      }
#end

#declare cadeira = union {
         box {<0,0,0>, <0.4,0.4,0.1> texture{tx_branco}}
         box {<0,0,0>, <-0.1,0.4,0.5> texture{tx_branco}}
}

#macro sessao(n,largura,assentos)
        union {
              #declare i=0;
              #while (i<n)
                     box{ <0,0-i,0>, <largura,+1-i,+0.5 + i/2> }
                     #if (assentos=1)
                         #declare j=0;
                         #while(j<largura)
                                object{cadeira translate <0.5-i,j-4.5,0.5+i/2> rotate 90*z}
                                #declare j=j+1;
                        #end
                     #end
                     #declare i=i+1;
              #end
              }
#end

#macro escada(n,largura)
        union {

              #declare i=0;
              #while (i<n)
                     box{ <0,0-i,0>, <largura,1-i,+0.5 + i/2> }
                     #declare i=i+0.5;
              #end
              }
#end

#declare campo = union {
   box{ <-10,-5,0>, <+10,+5,0>  texture{ tx_verde } }
   box{ < -0.1,-5,0.01>, <+0.1,+5,0.01> texture {tx_branco} }
   }

#include "eixos.inc"

union{

        object{ eixos(3) }

        object{ campo  translate < 0,0,0 > }

        object{ sessao(10,17,0) translate <-7,-6,0> texture{tx_vermelho} }

        object{ torcida(10,11)translate <-7,-6,0> }

        object{ sessao(4,17,0) translate <-7,-6,0> rotate 180*z  texture{tx_vermelho}}

        object{ torcida(4,9) translate <-7,-6,0> rotate 180*z }

        object{ sessao(6,5,1) translate <-7,-10,2> rotate 180*z texture{tx_preto} }

        object{ torcida(6,3) translate <-7.5,-10,2> rotate 180*z }

        object{ sessao(6,5,1) translate <0,-10,2> rotate 180*z texture{tx_preto} }

        object{ torcida(6,3) translate <-0.5,-10,2> rotate 180*z }

        object{ sessao(6,3,0) translate <7,-10,2> rotate 180*z texture{tx_vermelho} }

        object{ torcida(6,2) translate <6.5,-10,2> rotate 180*z }

        object{ escada(10,3) translate <-10,-6,0> texture{tx_fosca} }

        object{ escada(10,3) translate <-10,-6,0> rotate 180*z texture{tx_fosca} }

        object{ escada(6,2) translate <-2,-10,2> rotate 180*z texture{tx_fosca} }

        object{ escada(6,2) translate <5,-10,2> rotate 180*z texture{tx_fosca} }

}

#include "camlight.inc"
#declare centro_cena = < 0.00, 2.00, 0.00 >;
#declare raio_cena = 40.0;
#declare dir_camera = < 17.00, 0.00, 17.00 >;
#declare dist_camera = 30.0;
#declare intens_luz = 1.00;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)