// Last edited on 2003-06-24 15:21:33 by stolfi

#include "colors.inc"

#declare A11 = <-11.0,1,0>;
#declare A12 = <-10.0,4,0>;
#declare A13 = <-8.0,7,0>;
#declare A14 = <-5,10,0>;

#declare A21 = <-11.5,2,0>;
#declare A22 = <-10.3,1.5,1>;
#declare A23 = <-8.2,3,3>;
#declare A24 = <-5.1,5,5>;

#declare A31 = <-11.5,-2,0>;
#declare A32 = <-10.3,1.5,1.001>;
#declare A33 = <-8.2,-3,3>;
#declare A34 = <-5.1,-5,5>;

#declare A41 = <-11.0,-1,0>;
#declare A42 = <-10.0,-4,0>;
#declare A43 = <-8.0,-7,0>;
#declare A44 = <-5,-10,0>;

#declare B11 = A11;
#declare B12 = A12;
#declare B13 = A13;
#declare B14 = A14;

#declare B21 = A21;
#declare B22 = <-10.3,1.5,-1>;
#declare B23 = <-8.2,3,-3>;
#declare B24 = <-5.1,5,-5>;

#declare B31 = A21 + 0.0001*z;
#declare B32 = <-10.3,1.5,-1.0001>;
#declare B33 = <-8.2,-3,-3>;
#declare B34 = <-5.1,-5,-5>;

#declare B41 = A41;
#declare B42 = A42;
#declare B43 = A43;
#declare B44 = A44;

#declare C11 = A14;
#declare C12 = <0,12,0>;
#declare C13 = <5,8,0>;
#declare C14 = <10,6,0>;

#declare C21 = A24;
#declare C22 = <0,5,6>;
#declare C23 = <5,5,5>;
#declare C24 = <10,7,2>;

#declare C31 = A34;
#declare C32 = <0,-5,6>;
#declare C33 = <5,-5,5>;
#declare C34 = <10,-7,2>;

#declare C41 = A44;
#declare C42 = <0,-12,0>;
#declare C43 = <5,-8,0>;
#declare C44 = <10,-6,0>;

#declare D11 = C11;
#declare D12 = C12;
#declare D13 = C13;
#declare D14 = C14;

#declare D21 = C21;
#declare D22 = <0,5,-6>;
#declare D23 = <5,5,-5>;
#declare D24 = <10,7,-2>;

#declare D31 = C31;
#declare D32 = <0,-5,-6>;
#declare D33 = <5,-5,-5>;
#declare D34 = <10,-7,-2>;

#declare D41 = C41;
#declare D42 = C42;
#declare D43 = C43;
#declare D44 = C44;

#declare E11 = C14;
#declare E12 = <12,8,0>;
#declare E13 = <14,10,0>;
#declare E14 = <17,13,0>;

#declare E21 = C24;
#declare E22 = <12.1,4,2.5>;
#declare E23 = <14.2,6,2.5>;
#declare E24 = <17.3,10,0>;

#declare E31 = C34;
#declare E32 = <12.1,-4,2.5>;
#declare E33 = <14.2,-6,2.5>;
#declare E34 = <17.3,-10,0>;

#declare E41 = C44;
#declare E42 = <12,-8,0>;
#declare E43 = <14,-10,0>;
#declare E44 = <17,-13,0>;

#declare F11 = C14;
#declare F12 = <12,8,0>;
#declare F13 = <14,10,0>;
#declare F14 = <17,13,0>;

#declare F21 = C24;
#declare F22 = <12.1,4,-2.5>;
#declare F23 = <14.2,6,-2.5>;
#declare F24 = <17.3,10,0>;

#declare F31 = C34;
#declare F32 = <12.1,-4,-2.5>;
#declare F33 = <14.2,-6,-2.5>;
#declare F34 = <17.3,-10,0>;

#declare F41 = C44;
#declare F42 = <12,-8,0>;
#declare F43 = <14,-10,0>;
#declare F44 = <17,-13,0>;

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

#declare retalhoA = 
union{
  bicubic_patch{
	type 1 flatness 0.001
   	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.001
   	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.001
   	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 retalhoD = 
union{
  bicubic_patch{
	type 1 flatness 0.001
   	u_steps 4 v_steps 4
   
	D11, D12, D13, D14 
	D21, D22, D23, D24
	D31, D32, D33, D34 
	D41, D42, D43, D44 

   	texture { bz_tx_D }
   
  }
  object{ bz_grid_D }
}


#declare retalhoE = 
union{
  bicubic_patch{
	type 1 flatness 0.001
   	u_steps 4 v_steps 4
   
	E11, E12, E13, E14 
	E21, E22, E23, E24
	E31, E32, E33, E34 
	E41, E42, E43, E44 

   	texture { bz_tx_E }
   
  }
  object{ bz_grid_E }
}

#declare retalhoF = 
union{
  bicubic_patch{
	type 1 flatness 0.001
   	u_steps 4 v_steps 4
   
	F11, F12, F13, F14 
	F21, F22, F23, F24
	F31, F32, F33, F34 
	F41, F42, F43, F44 

   	texture { bz_tx_F }
   
  }
  object{ bz_grid_F }
}

#declare scene =
  union{
    union {
      object {retalhoA scale<1,1,-1>}
      object {retalhoB scale<1,1,-1>}
      object {retalhoC scale<1,1,-1>}
      object {retalhoD scale<1,1,-1>}
      object {retalhoE scale<1,1,-1>}
      object {retalhoF scale<1,1,-1>}
      translate -4.0*x
    }
    // object { bz_axes }
  }

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