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

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

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

#declare tx_base = texture
{
  pigment { image_map { jpeg "compre-baton.jpg" } rotate <0, 90, 0> }
  finish { diffuse 0.9 ambient 0.5 }
}

#declare tx_predio = texture
{
  pigment { color rgb <0.0, 0.5, 0.5> }
  finish { diffuse 0.9 ambient 0.3 }
}

#declare tx_frente = texture
{
  pigment { color rgb <0.0, 1, 0> }
  finish { diffuse 0.9 ambient 0.3 }
}

#declare tx_roda = texture
{
  pigment { color rgb <0.0, 0.0, 1.0> }
  finish { diffuse 0.9 ambient 0.3 }
}

#declare txg = texture
{
  pigment { color rgb <1.0, 0, 0> }
  finish { diffuse 0.9 ambient 0.3 }
}

#declare txp = texture
{
  uv_mapping
  pigment { image_map { jpeg "brasil.jpg" } translate <-0.5, -0.5, 0> scale 1 rotate <0, 0, -90> translate <0.5, 0.5, 0> }
  finish { diffuse 0.9 ambient 0.5 }
}

#declare txp2 = texture
{
  uv_mapping
  pigment { image_map { jpeg "brasil.jpg" } translate <-0.5, -0.5, 0> scale 1 rotate <0, 0, 0> translate <0.5, 0.5, 0> }
  finish { diffuse 0.9 ambient 0.5 }
}

#declare raio = 2.000;

#declare cilindro = cylinder {
  <0,0,0>,
  <0,2,0>,
  0.3
  texture { tx_base }
}

#declare chao =
  box{ <-20,-20,-1>, <+20,+20,0> }

#macro predio()
  union {
    object { box { <-1, -1, -1>, <1, 1, 1> } translate <0, 0, 1> scale <1, 1, 5> texture { tx_predio} }
    object { cylinder { <0, 0, 0>, <0, 0, 2>, 0.1 } translate <0, 0, 10> texture { tx_roda } }
  }
#end

#macro predioaux()
 union {
  object { predio() }
  object {  retalho(p11, p12, p13, p14,
                    p21, p22, p23, p24,
                    p31, p32, p33, p34,
                    p41, p42, p43, p44,
                    raio,
                    txg, txp)
    scale <1, 16/9, 1>
    translate <0, 0, 11>
  }
 }
#end

#macro banner()
  union {
    object { box { <-1, -1, -1>, <1, 1, 1> } translate <0, 1, 1> scale <0.01, 0.5, 0.5> texture { tx_base } }
    translate <0, -0.5, -0.5>
    rotate <90, 0, 0>
    translate <0, 0.5, 0.5>
    scale <1, 2, 2>
  }
#end

#macro carcaca()
union {
object { retalho(a11, a12, a13, a14,
          a21, a22, a23, a24,
          a31, a32, a33, a34,
          a41, a42, a43, a44,
          raio, txg, txp) }

    object { retalho(b11, b12, b13, b14,
         b21, b22, b23, b24,
         b31, b32, b33, b34,
         b41, b42, b43, b44,
         raio, txg, txp) }

    object { retalho(c11, c12, c13, c14,
         c21, c22, c23, c24,
         c31, c32, c33, c34,
         c41, c42, c43, c44,
         raio, txg, txp) }
 }
#end

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

union{
  object{ eixos(3.00) }

  #local d1 = 0.3;
  #local ele = 1.5;
  #local s = 3/5;

  #local r11 = <0, -2/3, 3/3>;   #local r12 = <0, -1/3, 3/3>;   #local r13 = <0, -0.1, 3/3>;
  #local r21 = <0.1, -2/3, 3.2/3>;   #local r22 = <0.1, -0.2, 3.2/3>;  #local r23 = <0.1, -0.2, 3.2/3>;
  #local r31 = <0.1, -2/3, 1/3>;   #local r32 = <0.1, -0.1, 2/3>;  #local r33 = <0.1, -0.1, 2/3>;
  #local r41 = <0, -2/3, 0/3>;   #local r42 = <0, -1/3, 0/3>;   #local r43 = <0, -0.1, 0/3>;

  #local a12 = <0, 0, 3/3>;   #local a13 = <0, 1/3, 3/3>;   #local a14 = <0, 2/3, 3/3>;
  #local a22 = <d1*s, 0, 2/3>;   #local a23 = <d1, 1/3, 2/3>;  #local a24 = <d1, 2/3, 2/3>;
  #local a32 = <d1*s, 0, 1/3>;   #local a33 = <d1, 1/3, 1/3>;  #local a34 = <d1, 2/3, 1/3>;
  #local a42 = <0, 0, 0/3>;   #local a43 = <0, 1/3, 0/3>;   #local a44 = <0, 2/3, 0/3>;

  #local r14 = (r13 + r12)/2;  #local a11 = r14;
  #local r24 = (r23 + r22)/2;  #local a21 = r24;
  #local r34 = (r33 + r32)/2;  #local a31 = r34;
  #local r44 = (r43 + r42)/2;  #local a41 = r44;

  #local r11 = <0, r21.y, r21.z>;
  #local r12 = <0, r22.y, r22.z>;
  #local r13 = <0, r23.y, r23.z>;
  #local r14 = <0, r24.y, r24.z>;
  #local a11 = <0, a21.y, a21.z>;
  #local a12 = <0, a22.y, a22.z>;
  #local a13 = <0, a23.y, a23.z>;
  #local a14 = <0, a24.y, a24.z>;

  #local r41 = <0, r31.y, r31.z>;
  #local r42 = <0, r32.y, r32.z>;
  #local r43 = <0, r33.y, r33.z>;
  #local r44 = <0, r34.y, r34.z>;
  #local a41 = <0, a31.y, a31.z>;
  #local a42 = <0, a32.y, a32.z>;
  #local a43 = <0, a33.y, a33.z>;
  #local a44 = <0, a34.y, a34.z>;

  #local r11 = <0, r12.y, r12.z>;
  #local r21 = <0, r22.y, r22.z>;
  #local r31 = <0, r32.y, r32.z>;
  #local r41 = <0, r42.y, r42.z>;

  #local b12 = <0, 4/3, 3/3>;   #local b13 = <0, 5/3, 3/3>;  #local b14 = <0, 6/3, 3/3>;
  #local b22 = <d1, 4/3, 2/3>;  #local b23 = <d1+0.2, 5/3, 2/3>;  #local b24 = <d1*s, 6/3, 2/3>;
  #local b32 = <d1, 4/3, 1/3>;  #local b33 = <d1+0.2, 5/3, 1/3>;  #local b34 = <d1*s, 6/3, 1/3>;
  #local b42 = <0, 4/3, 0.0>;   #local b43 = <0, 5/3, 0/3>;  #local b44 = <0, 6/3, 0/3>;

  #local a14 = (a13 + b12)/2;  #local b11 = a14;
  #local a24 = (a23 + b22)/2;  #local b21 = a24;
  #local a34 = (a33 + b32)/2;  #local b31 = a34;
  #local a44 = (a43 + b42)/2;  #local b41 = a44;

  #local a11 = <0, a21.y, a21.z>;
  #local a12 = <0, a22.y, a22.z>;
  #local a13 = <0, a23.y, a23.z>;
  #local a14 = <0, a24.y, a24.z>;
  #local b11 = <0, b21.y, b21.z>;
  #local b12 = <0, b22.y, b22.z>;
  #local b13 = <0, b23.y, b23.z>;
  #local b14 = <0, b24.y, b24.z>;

  #local a41 = <0, a31.y, a31.z>;
  #local a42 = <0, a32.y, a32.z>;
  #local a43 = <0, a33.y, a33.z>;
  #local a44 = <0, a34.y, a34.z>;
  #local b41 = <0, b31.y, b31.z>;
  #local b42 = <0, b32.y, b32.z>;
  #local b43 = <0, b33.y, b33.z>;
  #local b44 = <0, b34.y, b34.z>;

  #local c12 = <0, 7/3, 3/3>;   #local c13 = <0, 7.2/3, 3/3>;  #local c14 = <0, 8/3, 3/3>;
  #local c22 = <d1*s, 7/3, 2/3>;  #local c23 = <d1, 7.2/3, 2/3>;  #local c24 = <0, 7.3/3, 1.5/3>;
  #local c32 = <d1*s, 7/3, 1/3>;  #local c33 = <d1, 7.2/3, 1/3>;  #local c34 = <0, 7.3/3, 1.3/3>;
  #local c42 = <0, 7/3, 0.0>;   #local c43 = <0, 7.2/3, 0/3>;  #local c44 = <0, 8/3, 0/3>;

  #local b14 = (b13 + c12)/2;  #local c11 = b14;
  #local b24 = (b23 + c22)/2;  #local c21 = b24;
  #local b34 = (b33 + c32)/2;  #local c31 = b34;
  #local b44 = (b43 + c42)/2;  #local c41 = b44;

  #local b11 = <0, b21.y, b21.z>;
  #local b12 = <0, b22.y, b22.z>;
  #local b13 = <0, b23.y, b23.z>;
  #local b14 = <0, b24.y, b24.z>;
  #local c11 = <0, c21.y, c21.z>;
  #local c12 = <0, c22.y, c22.z>;
  #local c13 = <0, c23.y, c23.z>;
  #local c14 = <0, c24.y, c24.z>;

  #local b41 = <0, b31.y, b31.z>;
  #local b42 = <0, b32.y, b32.z>;
  #local b43 = <0, b33.y, b33.z>;
  #local b44 = <0, b34.y, b34.z>;
  #local c41 = <0, c31.y, c31.z>;
  #local c42 = <0, c32.y, c32.z>;
  #local c43 = <0, c33.y, c33.z>;
  #local c44 = <0, c34.y, c34.z>;

  #local raio = 0.00001;

  union {
    object { carcaca() }
    object { carcaca() scale <-1, 1, 1> }
    box { <-1, -1, -1>, <1, 1, 1> texture {txp2 scale 0.5} scale <1, 0.1, 0.05> translate <0, 1.7, 0.5> }
  }

}

#include "camlight.inc"
#declare centro_cena = < 0.00, 1.00, 0.00 >;
#declare raio_cena = 3;
#declare dir_camera = < 1.00, 1.0, 1.00 >;
#declare dist_camera = 3.0;
#declare intens_luz = 1.00;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)