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

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

#declare tx_texto =
  texture{
    pigment{ color rgb < 1, 0.75, 0.85 > }
    finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
  }

#declare tx_pedestal =
  texture{
    pigment{ color rgb < 1, 1, 1 > }
    finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
  }

#declare tx_tapete =
  texture{
    pigment{ color rgb < 1, 0, 0 > }
    finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
  }

#declare tx_red =
  texture{
    pigment{ color rgb < 1, 0, 0 > }
    finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
  }

#declare tx_bandeira =
  texture{ uv_mapping
    pigment{ image_map { jpeg "Inglaterra.jpg"} }
    finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
  }

#declare tx_piso =
  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 tx_anuncio =
  texture{
       pigment{ image_map { jpeg "spfc.jpg"} scale (2.5) rotate 90*z translate <1.25,1.3,0>}
    finish{ diffuse 0.9 ambient 0.1 }
    scale 2.0
  }

#declare tx_vidro =
  texture{
    pigment{ color rgb < 1, 1, 1.00 > filter 1}
    finish{ diffuse 0.03 reflection 0.0 ambient 0.02 specular 0.25 roughness 0.005 }
  }

#declare raio = 1.000;

#macro predio ()
  union {
     box {<4,4,0>, <-4,-4,15>}

  }

#end

#macro janela  (dy, h)
  union {
     box {<5.5,1,0>, <-5.5,-1,1>}
     translate <0,dy,h>
  }

#end

#macro haste  (dx, dy, h)
  union {
     box {<0.15,0.15,-1>, <-0.15,-0.15,3>}
     translate <dx,dy,h>
      texture {tx_red}
  }

#end

#macro anuncio  (dx, dy, h)
  union {
     box {<3,3,0.05>, <-3,-3,-0.05>}
      texture {tx_anuncio}
      rotate 90*y
      translate <4,0,5>
  }

#end

#macro aviaodeformado(traseirat12,traseirat13,traseirat22,traseirat23,traseirat32,traseirat33, meiot22, meiot23, meiot32, meiot33, frentet22, frentet23, frentet32, frentet33, frentet42, frentet43, d1, d2)

    #local traseira12 = traseirat12+deform(traseirat12)*d1+deform2(traseirat12)*d2;
    #local traseira13 = traseirat13+deform(traseirat13)*d1+deform2(traseirat13)*d2;

    #local traseira22 = traseirat22+deform(traseirat22)*d1+deform2(traseirat22)*d2;
    #local traseira23 = traseirat23+deform(traseirat23)*d1+deform2(traseirat23)*d2;

    #local traseira32 = traseirat32+deform(traseirat32)*d1+deform2(traseirat33)*d2;
    #local traseira33 = traseirat33+deform(traseirat33)*d1+deform2(traseirat33)*d2;

    #local meio22 = meiot22+deform(meiot22)*d1+deform2(meiot22)*d2;
    #local meio23 = meiot23+deform(meiot23)*d1+deform2(meiot23)*d2;

    #local meio32 = meiot32+deform(meiot32)*d1+deform2(meiot32)*d2;
    #local meio33 = meiot33+deform(meiot33)*d1+deform2(meiot33)*d2;

    #local frente22 = frentet22 +deform(frentet22)*d1+deform2(frentet22)*d2;
    #local frente23 = frentet23+deform(frentet23)*d1+deform2(frentet23)*d2;

    #local frente32 = frentet32+deform(frentet32)*d1+deform2(frentet32)*d2;
    #local frente33 = frentet33+deform(frentet33)*d1+deform2(frentet33)*d2;

    #local frente42 = frentet42+deform(frentet42)*d1+deform2(frentet42)*d2;
    #local frente43 = frentet43+deform(frentet43)*d1+deform2(frentet43)*d2;

  #local traseira11 = <0,traseira12.y, traseira12.z >;
  #local traseira14 = <0,traseira13.y, traseira13.z >;

  #local traseira21 = <0,traseira22.y, traseira22.z >;
  #local traseira24 = <0,traseira23.y, traseira23.z >;

  #local traseira31 = <0,traseira32.y, traseira32.z >;
  #local traseira34 = <0,traseira33.y, traseira33.z >;

   #local meio21 = <0,meio22.y, meio22.z>;
  #local meio24 = <0,meio23.y, meio23.z>;

  #local meio31 = <0,meio32.y, meio32.z>;
  #local meio34 = <0,meio33.y, meio33.z>;

  #local frente21 = <0,frente22.y,frente22.z>;
  #local frente24 = <0,frente23.y,frente23.z>;

  #local frente31 = <0,frente32.y,frente32.z>;
  #local frente34 = <0,frente33.y,frente33.z>;

    #local frente41 = <0,frente42.y,frente42.z>;
    #local frente44 = <0,frente43.y,frente43.z>;

    #local frente11 = (meio31+frente21)/2;
    #local frente12 = (meio32+frente22)/2;
    #local frente13 = (meio33+frente23)/2;
    #local frente14 = (meio34+frente24)/2;

    #local meio41 = frente11;
    #local meio42 = frente12;
    #local meio43 = frente13;
    #local meio44 = frente14;

    #local traseira41 = (traseira31+meio21)/2;
    #local traseira42 = (traseira32+meio22)/2;
    #local traseira43 = (traseira33+meio23)/2;
    #local traseira44 = (traseira34+meio24)/2;

    #local meio11 = traseira41;
    #local meio12 = traseira42;
    #local meio13 = traseira43;
    #local meio14 = traseira44;

      retalho(
      traseira11,traseira12,traseira13,traseira14,
      traseira21,traseira22,traseira23,traseira24,
      traseira31,traseira32,traseira33,traseira34,
      traseira41,traseira42,traseira43,traseira44,
      0.01,
      tx_vidro,tx_pedestal)

      retalho(
      meio11,meio12,meio13,meio14,
      meio21,meio22,meio23,meio24,
      meio31,meio32,meio33,meio34,
      meio41,meio42,meio43,meio44,
      0.01,
      tx_vidro,tx_pedestal)

      retalho(
      frente11,frente12,frente13,frente14,
      frente21,frente22,frente23,frente24,
      frente31,frente32,frente33,frente34,
      frente41,frente42,frente43,frente44,
      0.01,
      tx_vidro,tx_pedestal)

#end

#macro deform (p)

  #if(p.y<2)
    #local cons = -4;
  #else
    #if(p.y>4.3)
      #local cons = +4;
    #else
      #local cons = 0;
    #end
  #end

  <
    p.x,
    p.y,
    p.z+cons
  >

#end

#macro deform2(p)
  <
    p.x*p.y,
    p.y,
    p.z
  >

#end

#include "eixos.inc"
#include "retalho.inc"

union {

      union {

    #local traseirar12 = <0,0,0.9>;
    #local traseirar13 = <0,0,0.15>;

    #local traseirar22 = <0.5,0.25,2.25>;
    #local traseirar23 = <0.5,0.25,0.25>;

    #local traseirar32 = <0.5,0.5,0.7>;
    #local traseirar33 = <0.5,0.5,0.25>;

    #local meior22 = <1,2.5,1.25>;
    #local meior23 = <1,2.5,0.0>;

    #local meior32 = <0.75,3.25,1.3>;
    #local meior33 = <0.75,3.25,-0.05>;

    #local frenter22 = <0.5,4.25,0.7>;
    #local frenter23 = <0.5,4.25,0.15>;

    #local frenter32 = <0.25,4.5,0.55>;
    #local frenter33 = <0.25,4.5,0.2>;

    #local frenter42 = <0,4.8,0.375>;
    #local frenter43 = <0,4.8,0.275>;

      aviaodeformado(traseirar12,traseirar13,traseirar22,traseirar23,traseirar32,traseirar33,
                meior22, meior23, meior32, meior33,
                frenter22, frenter23, frenter32, frenter33, frenter42, frenter43, 1, 0)

    #local traseirad12 = <0,0,0.9>;
    #local traseirad13 = <0,0,0.15>;

    #local traseirad22 = <-0.5,0.25,2.25>;
    #local traseirad23 = <-0.5,0.25,0.25>;

    #local traseirad32 = <-0.5,0.5,0.7>;
    #local traseirad33 = <-0.5,0.5,0.25>;

    #local meiod22 = <-1,2.5,1.25>;
    #local meiod23 = <-1,2.5,0.0>;

    #local meiod32 = <-0.75,3.25,1.3>;
    #local meiod33 = <-0.75,3.25,-0.05>;

    #local frented22 = <-0.5,4.25,0.7>;
    #local frented23 = <-0.5,4.25,0.15>;

    #local frented32 = <-0.25,4.5,0.55>;
    #local frented33 = <-0.25,4.5,0.2>;

    #local frented42 = <0,4.8,0.375>;
    #local frented43 = <0,4.8,0.275>;

     aviaodeformado(traseirad12,traseirad13,traseirad22,traseirad23,traseirad32,traseirad33,
            meiod22, meiod23, meiod32, meiod33,
            frented22, frented23, frented32, frented33, frented42, frented43, 1, 0)

      }

      union {

      aviaodeformado(traseirar12,traseirar13,traseirar22,traseirar23,traseirar32,traseirar33,
                meior22, meior23, meior32, meior33,
                frenter22, frenter23, frenter32, frenter33, frenter42, frenter43, 0, 1)

      aviaodeformado(traseirad12,traseirad13,traseirad22,traseirad23,traseirad32,traseirad33,
            meiod22, meiod23, meiod32, meiod33,
            frented22, frented23, frented32, frented33, frented42, frented43, 0, 1)

      translate<0,0,5>

      }

      union {
        object {
         cylinder{
            < -3.00, +2.750, +0.5 >,
            < +3.00, +2.750, +0.5 >,
            0.15
            texture{ tx_pedestal }
          }
        }
        object {
         cylinder{
            < -3.00, +2.250, +0.5 >,
            < +3.00, +2.250, +0.5 >,
            0.15
            texture{ tx_pedestal }
          }
        }

        object {
         box{
            < -3.0, +2.250, +0.35 >,
            < +3.0, +2.750, +0.65 >
            texture{ tx_pedestal }
          }
        }

        translate<0,2,0>

      }

  scale (0.6)
  translate<0,-3,0>

}

#include "camlight.inc"
#declare centro_cena = < 0.00, 0.00, 1.00 >;
#declare raio_cena = 10.0;
#declare dir_camera = <7.00,5.00, 2.00 >;
#declare dist_camera = 16.0;
#declare intens_luz = 1.00;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)