// Last edited on 2003-12-12 19:12:37 by stolfi

#declare bz_name = "Cebolinha"

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

// ***************** RETALHO A *************************
#declare A11=<0,0,0> + 0.0001;
#declare A12=<0.5,-3,0>;
#declare A13=<2.95,-3,0>;
#declare A14=<3,0,0> + 0.0001;

#declare A21=<0,0,0> + 0.0002;
#declare A22=<0.5,-3,1>;
#declare A23=<2.7,-3,1>;
#declare A24=<3,0,0> + 0.0002;

#declare A31=<0,0,0> + 0.0003;
#declare A32=<0.5,-2,2.4>;
#declare A33=<2.8,-2,2.4>;
#declare A34=<3,0,0> + 0.0003;

#declare A41=<0,0,0> + 0.0004;
#declare A42=<0.5,0,2.1>;
#declare A43=<2.8,0,2.1>;
#declare A44=<3,0,0> + 0.0004;

// ***************** RETALHO B *************************
#declare B11=<0,0,0> + 0.0001;
#declare B12=<0.5,-3,0>;
#declare B13=<2.95,-3,0>;
#declare B14=<3,0,0> + 0.0001;

#declare B21=<0,0,0> + 0.0002;
#declare B22=<0.5,-2,-1>;
#declare B23=<3,-5,-1>;
#declare B24=<3,0,0> + 0.0002;

#declare B31=<0,0,0> + 0.0003;
#declare B32=<0.5,-2,-1.9>;
#declare B33=<2.95,-2,-1.9>;
#declare B34=<3,0,0> + 0.0003;

#declare B41=<0,0,0> + 0.0004;
#declare B42=<0.5,0,-1.9>;
#declare B43=<2.95,0,-1.9>;
#declare B44=<3,0,0> + 0.0004;

// ***************** RETALHO C *************************
#declare C11=<0,0,0> + 0.0001;
#declare C12=<0.5,3,0>;
#declare C13=<2.95,3,0>;
#declare C14=<3,0,0> + 0.0001;

#declare C21=<0,0,0> + 0.0002;
#declare C22=<0.5,2,-1>;
#declare C23=<3,5,-1>;
#declare C24=<3,0,0> + 0.0002;

#declare C31=<0,0,0> + 0.0003;
#declare C32=<0.5,2,-1.9>;
#declare C33=<2.95,2,-1.9>;
#declare C34=<3,0,0> + 0.0003;

#declare C41=<0,0,0> + 0.0004;
#declare C42=<0.5,0,-1.9>;
#declare C43=<2.95,0,-1.9>;
#declare C44=<3,0,0> + 0.0004;

// ***************** RETALHO D *************************
#declare D11=<0,0,0> + 0.0001;
#declare D12=<0.5,3,0>;
#declare D13=<2.95,3,0>;
#declare D14=<3,0,0> + 0.0001;

#declare D21=<0,0,0> + 0.0002;
#declare D22=<0.5,3,1>;
#declare D23=<2.7,3,1>;
#declare D24=<3,0,0> + 0.0002;

#declare D31=<0,0,0> + 0.0003;
#declare D32=<0.5,2,2.4>;
#declare D33=<2.8,2,2.4>;
#declare D34=<3,0,0> + 0.0003;

#declare D41=<0,0,0> + 0.0004;
#declare D42=<0.5,0,2.1>;
#declare D43=<2.8,0,2.1>;
#declare D44=<3,0,0> + 0.0004;

// ***************** BOCA *************************
#declare E11=<0,0,0> + 0.0001;
#declare E12=<1,-1,0>;
#declare E13=<2,-1,0>;
#declare E14=<3,0,0> + 0.0001;

#declare E21=<0,0,0> + 0.0002;
#declare E22=<1,-2,-3>;
#declare E23=<2,-2,-3>;
#declare E24=<3,0,0> + 0.0002;

#declare E31=<0,0,0> + 0.0003;
#declare E32=<1,-3,-3>;
#declare E33=<2,-3,-3>;
#declare E34=<3,0,0> + 0.0003;

#declare E41=<0,0,0> + 0.0004;
#declare E42=<1,-4,0>;
#declare E43=<2,-4,0>;
#declare E44=<3,0,0> + 0.0004;

#declare bz_scale = 0.25;
#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 boca = 
  sphere{<0,0,0>,0.5
   	pigment{Flesh}
}

#declare olho =
 union{
    sphere{<0,0,0>, 0.3 scale<0.2,1.3,1.5> pigment{color White}}
    sphere{<0.3,0,-0.1>, 0.15 scale<0.2,1,1> pigment{color Black}}
 }

#declare fio =
  cone{<0,0.00,0>, 0.08, <3,0.00,0.00>, 0
     pigment{color Black}
     //rotate<0,0,180>
  }
#declare nariz =
  sphere{<0,0,0>,0.3 scale<0.8,1.3,0.8> translate<4.4,0,0>
  pigment{color Flesh}
  }  

#declare scene = 
  union{
    union{
      difference{     
        union{ 
          object{retalhoA}
          object{retalhoB}
          object{retalhoC}
          object{retalhoD}
          object{olho rotate<0,-10,5> translate<2.85,0.4,0.5> }
          object{olho rotate<0,-10,-5> translate<2.85,-0.4,0.5> }
          scale<1.5,1,1>
        }
        object{boca  scale<1,1,0.8> translate<4,-0,-0.5>}
      }
      object{fio rotate<0,-90,0> scale<1,1,0.5> translate<2.1,0,1.6>}
      object{fio rotate<0,0,180+72> translate<2.1,0,1.6>}
      object{fio rotate<0,0,180+144> translate<2.1,0,1.6>}
      object{fio rotate<0,0,180-72> translate<2.1,0,1.6>}
      object{fio rotate<0,0,180-144> translate<2.1,0,1.6>}
      object{nariz}
      rotate -90*x
      translate <-2.0,+1.0,00.0>
      rotate -120*y
    } 
    // object{ bz_axes }
  } 

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