// Last edited on 2003-06-21 23:36:26 by stolfi
// José Renato Paulon ra 970904
// Exercicio 11

#include "colors.inc"
#include "textures.inc"
#include "stones.inc"
#include "finish.inc"

//---------Pontos da 1a Parte---------
#declare A11 = <0, 0, 0>; 
#declare A12 = <2, 0, 0>;
#declare A13 = <4, 1, 0>;
#declare A14 = <6, 1, 0>;

#declare A21 = <0, 2, 1>;
#declare A22 = <2, 2, 1>;
#declare A23 = <4, 2, 1>;
#declare A24 = <6, 2, 1>;

#declare A31 = <0, 4, 1.5>;
#declare A32 = <2, 4, 1.5>;
#declare A33 = <5, 4, 1.5>;
#declare A34 = <7, 4, 1.5>;

#declare A41 = <0, 4, 0>;
#declare A42 = <2, 4, 0>;
#declare A43 = <5, 4.5, 0>;
#declare A44 = <7, 4.5, 0>;

//---------Pontos da 2a Parte---------
#declare B11 = A14; 
#declare B12 = <8,1,0>;
#declare B13 = <10,2,0>;
#declare B14 = <12,2,0>;

#declare B21 = A24;
#declare B22 = <8,2,1>;
#declare B23 = <10,3,1>;
#declare B24 = <12,3,1>;

#declare B31 = A34;
#declare B32 = <8, 4, 1.5>;
#declare B33 = <10, 4, 1.5>;
#declare B34 = <12, 4, 1.5>;

#declare B41 = A44;
#declare B42 = <8, 4.5, 0>;
#declare B43 = <10, 4.3, 0>;
#declare B44 = <12, 4, 0>;

//---------Pontos da 3a Parte---------
#declare C11 = B14; 
#declare C12 = <14,2,0>;
#declare C13 = <15,1,0>;
#declare C14 = <16,-.5,0>;

#declare C21 = B24;
#declare C22 = <14,2,1>;
#declare C23 = <15,1,1>;
#declare C24 = <16,0,1>;

#declare C31 = B34;
#declare C32 = <14, 4, 1.5>;
#declare C33 = <15, 3, 1.5>;
#declare C34 = <16, 2, 1.5>;

#declare C41 = B44;
#declare C42 = <14, 4, 0>;
#declare C43 = <15, 3, 0>;
#declare C44 = <16, 2, 0>;

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

#declare parte1 =
  union{
    bicubic_patch {
      type 0
      flatness 0
      u_steps 3
      v_steps 3
      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 parte2 =
  union{
    bicubic_patch {
      type 0
      flatness 0
      u_steps 3
      v_steps 3
      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 parte3 =
  union{
    bicubic_patch {
      type 0
      flatness 0
      u_steps 3
      v_steps 3
      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 {parte1 }
      object {parte1 scale <1,1,-1> } 
      object {parte2 }
      object {parte2 scale <1,1,-1> } 
      object {parte3 }
      object {parte3 scale <1,1,-1> } 
      translate < -7.5, -1, 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 }