// TP11 - 28/11/03
// Last edited on 2003-12-12 14:39:51 by stolfi

#declare bz_name = "Winnie the Pooh"

#include "colors.inc"

#declare tinta_cinza = 
  texture {
    pigment { Gray75 }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

#declare tinta_vermelha = 
  texture {
    pigment { color rgb < 1.00, 0.00, 0.00 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

#declare A11 = <0,1.9,0>;
#declare A12 = <0,2.2,0.3>;
#declare A13 = <0,1.9,0.4>;
#declare A14 = <0,1.7,0.8>;

#declare A21 = <-0.2,1.8,0>;
#declare A22 = <-0.2,2.1,0.3>;
#declare A23 = <-0.2,1.8,0.4>;
#declare A24 = <-0.2,1.6,0.8>;

#declare A31 = <-0.4,1.8,0>;
#declare A32 = <-0.4,2.0,0.2>;
#declare A33 = <-0.4,1.8,0.3>;
#declare A34 = <-0.4,1.6,0.6>;

#declare A41 = <-0.6,1.5,0>;
#declare A42 = <-0.6,1.5,0.2>;
#declare A43 = <-0.6,1.5,0.3>;
#declare A44 = <-0.5,1.5,0.6>;

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

#declare B21 = <0.2,1.8,0>;
#declare B22 = <0.2,2.1,0.3>;
#declare B23 = <0.2,1.8,0.4>;
#declare B24 = <0.2,1.6,0.8>;

#declare B31 = <0.4,1.8,0>;
#declare B32 = <0.4,2.0,0.2>;
#declare B33 = <0.4,1.8,0.3>;
#declare B34 = <0.4,1.6,0.6>;

#declare B41 = <0.6,1.5,0>;
#declare B42 = <0.6,1.5,0.2>;
#declare B43 = <0.6,1.5,0.3>;
#declare B44 = <0.5,1.5,0.6>;

#declare C11 = A14;
#declare C12 = <0,1.5,1.1>;
#declare C13 = <0,1.4,1.3>;
#declare C14 = <0,1.2,1.1>;

#declare C21 = A24;
#declare C22 = <-0.2,1.5,1.1>;
#declare C23 = <-0.2,1.4,1.3>;
#declare C24 = <-0.2,1.15,1.2>;

#declare C31 = A34;
#declare C32 = <-0.4,1.5,0.5>;
#declare C33 = <-0.4,1.4,0.6>;
#declare C34 = <-0.4,1.15,0.5>;

#declare C41 = A44;
#declare C42 = <-0.5,1.15,0.5>;
#declare C43 = <-0.6,1.15,0.6>;
#declare C44 = <-0.45,1.15,0.5>;

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

#declare D21 = B21;
#declare D22 = <0.2,1.5,1.1>;
#declare D23 = <0.2,1.4,1.3>;
#declare D24 = <0.2,1.15,1.2>;

#declare D31 = B31;
#declare D32 = <0.4,1.5,0.5>;
#declare D33 = <0.4,1.4,0.6>;
#declare D34 = <0.4,1.15,0.5>;

#declare D41 = B41;
#declare D42 = <0.5,1.15,0.5>;
#declare D43 = <0.6,1.15,0.6>;
#declare D44 = <0.45,1.15,0.5>;

#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.055;
#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 }
}

// Aqui está a cena:
#declare scene = 
  union{
    union {
      object { retalhoA }
      object { retalhoB }
      object { retalhoC }
      object { retalhoD }
      translate <0,-1.5,-0.5>
      rotate -20*y
    }
    // object{ bz_axes }
  }

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