// Last edited on DATE TIME by USER
// Processed by remove-cam-lights
background{ color rgb < 1, 1, 1 > }

#declare roleta = seed(315);

#declare comprimentoArquibancada = 12;

#declare tx_cadeiras =
              texture{
                pigment{ color rgb < 0.80, 0.70, 0.60 > }
                finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
              }

#declare tx_pessoa1 =
              texture{
                pigment{ color rgb < 0.70, 0.50, 0.60 > }
                finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
              }

#declare tx_pessoa2 =
              texture{
                pigment{ color rgb < 0.30, 0.50, 0.90 > }
                finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
              }

#declare assento =
   box{
    < -2, 0, 1 >,
    < 0, 2, 1.2 >
  }
#declare encosto =
   box{
    < -2, 0, 1 >,
    < -1.8, 2, 3 >
  }

#declare cadeira =
union {
  object {assento}
  object {encosto}
  texture {tx_cadeiras}

}
#declare perna1 =
  cylinder{
    < 0, 0.75, 2 >,
    < 0, 0, 0 >,
    0.2
  }
#declare perna2 =
  cylinder{
    < 0, 1.25, 2 >,
    < 0, 2, 0 >,
    0.2
  }
#declare corpo =
   box{
    < 0.4, 0.75, 5 >,
    <-0.4, 1.25, 1.6 >
  }
#declare braco1 =
  cylinder{
    < 0, 0, 4 >,
    < 0, 0.75, 4 >,
    0.2
  }
#declare braco2 =
  cylinder{
    < 0, 1.25, 4 >,
    < 0, 2, 4 >,
    0.2
  }
#declare cabeca =
  sphere {
    < 0, 1, 5.6 >,
    0.8
  }

#declare pessoa =
union {
    object {perna1}
    object {perna2}
    object {braco1}
    object {braco2}
    object {corpo}
    object {cabeca}
translate <-1.5, 0.2, 1.5>

}

#macro ArquibancadaCompleta (fileiras, cadeiras)
 union {
    union {
    #declare i=0;

      #while (i  <  fileiras)
          box{
            < -3.5-(3.5*i), 0, 0 >,
            < 0-(3.5*i), (3*cadeiras)-1, 1+i >

            texture{
              pigment{ color rgb < 0.20, 0.50, 0.30 > }
              finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
            }
          }
          #declare i = i+1;
      #end
     scale 0.2
    }

    union {
      #declare j=0;
      #while (j <  fileiras)

        #declare i=0;

          #while (i <  cadeiras)
              union {
                  object {cadeira translate < -(3.5*j) , (3*i), j> scale 0.2}
                  object {pessoa

                    #if (rand(roleta) < 0.5)
                        texture {tx_pessoa1}
                    #else
                        texture {tx_pessoa2}
                    #end

                    translate < -((3.5/3)*4*j) , (4*i), j> scale 0.15
                  }
              }
              #declare i = i+1;
          #end

          #declare j = j+1;
      #end
    }
}
#end

#macro Estadio(comprimento)
union {
    object {
      ArquibancadaCompleta(10, comprimento)
      rotate 90*z
      translate < ((3*comprimento)-1)*0.2 , 0, 0>
    }
    object {
      ArquibancadaCompleta(6, comprimento)
    }
    object {
      ArquibancadaCompleta(13, comprimento)
      rotate 270*z
      translate < 0 , ((3*comprimento)-1)*0.2, 0>

    }
    object {
      ArquibancadaCompleta(8, comprimento)
      rotate 180*z
    translate < ((3*comprimento)-1)*0.2 , ((3*comprimento)-1)*0.2, 0>

    }
}
#end

#include "eixos.inc"
object {eixos(3.00)}
object {Estadio(comprimentoArquibancada) scale 0.5}

#include "camlight.inc"
#declare centro_cena = < 0.00, 0.00, 1.00 >;
#declare raio_cena = 9.0;
#declare dir_camera = < 2, 3, 1 >;
#declare dist_camera = 16.0;
#declare intens_luz = 1.50;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)