// Last edited on 2003-06-22 00:50:39 by stolfi

#include "colors.inc"
#include "textures.inc"

#declare A11=<0,1,0>;
#declare A12=<1,2,0>;
#declare A13=<2,2,0>;
#declare A14=<3,2,0>;
#declare A21=<0,1,-1>;
#declare A22=<1,2,-2>;
#declare A23=<2,2,-2>;
#declare A24=<3,2,-2>;
#declare A31=<0,0,-1>;
#declare A32=<1,0,-2>;
#declare A33=<2,0,-2>;
#declare A34=<3,0,-2>;
#declare A41=<0,0,0>;
#declare A42=<1,-1,0>;
#declare A43=<2,-1,0>;
#declare A44=<3,-1,0>;

#declare B11=A14;
#declare B12=<4,2,0>;
#declare B13=<5,2,0>;
#declare B14=<6,1.5,0>;
#declare B21=A24;
#declare B22=<4,2,-2>;
#declare B23=<5,2,-2>;
#declare B24=<6,1.5,-2>;
#declare B31=A34;
#declare B32=<4,0,-2>;
#declare B33=<5,0,-2>;
#declare B34=<6,-.5,-2>;
#declare B41=A44;
#declare B42=<4,-1,0>;
#declare B43=<5,-1,0>;
#declare B44=<6,-.5,0>;

#declare C11=B14;
#declare C12=<7,1,0>;
#declare C13=<8,0.5,0.5>;
#declare C14=<10,3,0>;
#declare C21=B24;
#declare C22=<7,1,-2>;
#declare C23=<8,0.5,0.5> + 0.0001*z;
#declare C24=<10,2,0>;
#declare C31=B34;
#declare C32=<7,-.5,-2>;
#declare C33=<8,0.5,0.5>;
#declare C34=<10,0,0>;
#declare C41=B44;
#declare C42=<7,-.5,0>;
#declare C43=<8,0.5,0.5> + 0.0002*z;
#declare C44=<10,-2,0>;

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


#declare retalhoA =
  union {
    bicubic_patch {
      type 1 flatness 0
      u_steps 4 v_steps 4
      A11, A12, A13, A14
      A21, A22, A23, A24
      A31, A32, A33, A34
      A41, A42, A43, A44
      texture { bz_tx_A }
    }
    object { bz_grid_A }
  }

#declare retalhoB=
  union {
    bicubic_patch {
      type 1 flatness 0
      u_steps 4 v_steps 4
      B11, B12, B13, B14
      B21, B22, B23, B24
      B31, B32, B33, B34
      B41, B42, B43, B44
      texture { bz_tx_B }
    }
    object { bz_grid_B }
  }

#declare retalhoC=
  union {
    bicubic_patch {
      type 1 flatness 0
      u_steps 4 v_steps 4
      C11, C12, C13, C14
      C21, C22, C23, C24
      C31, C32, C33, C34
      C41, C42, C43, C44
      texture { bz_tx_C }
    }
    object { bz_grid_C }
  }

#declare scene =
  union{
    union{
      object{retalhoA pigment{Blue_Agate}}
      object{retalhoB pigment{Blue_Agate}}
      object{retalhoC pigment{Blue_Agate}}
      object{retalhoA scale <1,1,-1>pigment{Blue_Agate}}
      object{retalhoB scale <1,1,-1>pigment{Blue_Agate}}
      object{retalhoC scale <1,1,-1>pigment{Blue_Agate}}
      translate < -5, 0, 0 >
    }
    // object{ bz_axes }
    rotate 180*y
  }

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