// Last edited on 2003-12-11 01:08:52 by stolfi

#include "colors.inc"
#include "stones.inc" 
#include "golds.inc"
#include "textures.inc"
#include "skies.inc"

/*Não deu tempo de fazer as outras curvas.... =(*/

#declare bz_name = "Sandman"

#declare cinza = 
  texture{
    pigment { color rgb < 0.3, 0.3, 0.3 > }
  }
#declare amarelo = 
  texture{
    pigment { color rgb < 0.4, 0.4, 0.05 > }
  }

#declare cor_vidro = color rgb <0.4,0.4,0.4>;
#declare vidro= 
  texture{
    finish{
      ambient 0.1 diffuse 0.1
      reflection 0.25
      specular 1 roughness 0.01
    }
    pigment { cor_vidro filter 1}
  }   

#declare cifrao =
text{
  ttf "arial.ttf"
  "$" 
  0.15,0
  texture{cinza}
  scale 3*<1,1,1>
  translate<1,-0.5,-7>
  translate<0,clock*5,clock*-22>
}

#declare B11=<3.0,-0.9,-5.0>;
#declare B12=<2.0,-0.5,-4.0>;
#declare B13=<1.0,-0.2,-0.4>;
#declare B14=<0.0,0.0,0.0>;
#declare B21=<5.0,-2.5,-5.0>;
#declare B22=<3.7,-2.5,-4.0>;
#declare B23=<1.3,-2.5,-0.5>;
#declare B24=<0.0,-2.5,0.0>;
#declare B31=<5.0,-3.5,-5.0>;
#declare B32=<3.7,-3.5,-4.0>;
#declare B33=<1.3,-3.5,-0.5>;
#declare B34=<0.0,-3.5,0.0>;
#declare B41=<4.0,-4.5,-5.0>;
#declare B42=<2.7,-4.5,-4.0>;
#declare B43=<0.3,-4.5,-3.5>;
#declare B44=<0.0,-4.5,-2>;

#declare A11=<3.0,-0.9,-5.0>;
#declare A12=<2.0,-0.5,-4.0>;
#declare A13=<1.0,-0.2,-0.4>;
#declare A14=<0.0,0.0,0.0>;
#declare A21=<5.0,-2.5,-5.0>;
#declare A22=<3.7,-2.5,-4.0>;
#declare A23=<1.3,-2.5,-0.5>;
#declare A24=<0.0,-2.5,0.0>;
#declare A31=<5.0,-3.5,-5.0>;
#declare A32=<3.7,-3.5,-4.0>;
#declare A33=<1.3,-3.5,-0.5>;
#declare A34=<0.0,-3.5,0.0>;
#declare A41=<4.0,-4.5,-5.0>;
#declare A42=<2.7,-4.5,-4.0>;
#declare A43=<0.3,-4.5,-3.5>;
#declare A44=<0.0,-4.5,-2>;
#declare bz_scale=0.5;

#declare bz_scale = 0.4;
#include "bz-things.inc"

#declare disco=
  cylinder { <0, 0, 0>,<0,0,0.5>,1  texture {vidro} no_shadow
    rotate <-5,45,0> translate <2.0,-2.5,-2.7>}

#declare supesq=
union{
  difference{
    bicubic_patch 
     { u_steps 4 v_steps 4 type 0 
       A11,A12,A13,A14,A21,A22,A23,A24,A31,A32,A33,A34,A41,A42,A43,A44
       // texture {cinza}
       texture{ bz_tx_E }
      }
    object{disco}
  }
  object{bz_grid_A}
  object{disco}
}

#declare supdir=
  object{supesq
    scale -1*<1,0,0>
  }

#declare filtro=
union{
  cylinder{<0,0,0>,<0,0,-2>,0.7 texture{amarelo}}
  difference{
    cylinder{<0,0,0>,<0,0,1.5>,1.75 texture{amarelo}}
    cylinder{<0,0,1.0>,<0,0,2.0>,0.5 texture{amarelo}}
  }
  rotate x*30
  translate <0,-7,0>
}

#declare scene =
  union{
    union{
      union{
        object{supesq}
        object{supdir}
        scale <1,1.5,1>
      }
      object{filtro}
      translate <0,6,4>
    }
    // object{ bz_axes }
  }

object{ bz_checker_bg }
object{ scene translate bz_rite_pos }
object{ scene rotate -90*y translate bz_left_pos }