//Rafael Henrique C. Souza ra017134
//Laboratório 10 : Dar imaginacao as Asas
//Retalhos de Bezier com bordas arredondadas e tudo mais :-)

#declare bz_name = "Satelite estranho"

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

// ***************** RETALHO A *************************
#declare A11=<1.00,0.00,0.00>;
#declare A12=<1.00,0.00,0.50>;
#declare A13=<0.05,0.00,0.01>;
#declare A14=<0.05,0.00,-0.03>;

#declare A21=A11 + <0.00,0.25,0.00>;
#declare A22=A12 + <0.00,0.25,0.00>;
#declare A23=A13 + <0.00,0.25,0.00>;
#declare A24=A14 + <0.00,0.25,0.00>;

#declare A31=A21 + <0.00,0.25,0.00>;
#declare A32=A22 + <0.00,0.25,0.00>;
#declare A33=A23 + <0.00,0.25,0.00>;
#declare A34=A24 + <0.00,0.25,0.00>;

#declare A41=A31 +<0.00,0.25,0.00>;
#declare A42=A32 +<0.00,0.25,0.00>;
#declare A43=A33 +<0.00,0.25,0.00>;
#declare A44=A34 +<0.00,0.25,0.00> ;

// ***************** RETALHO B *************************
#declare B11=< 1.00, 0.00, 0.00>;
#declare B12=< 1.00, 0.00,-0.50>;
#declare B13=< 0.05, 0.00,-0.07>;
#declare B14=< 0.05, 0.00,-0.03>;

#declare B21= B11 + <0.00,0.25,0.00>;
#declare B22= B12 + <0.00,0.25,0.00>;
#declare B23= B13 + <0.00,0.25,0.00>;
#declare B24= B14 + <0.00,0.25,0.00>;

#declare B31= B21 + <0.00, 0.25, 0.00>;
#declare B32= B22 + <0.00, 0.25, 0.00>;
#declare B33= B23 + <0.00, 0.25, 0.00>;
#declare B34= B24 + <0.00, 0.25, 0.00>;

#declare B41= B31 + <0.00,0.25,0.00>;
#declare B42= B32 + <0.00,0.25,0.00>;
#declare B43= B33 + <0.00,0.25,0.00>;
#declare B44= B34 + <0.00,0.25,0.00>;

// ***************** RETALHO C *************************

#declare C11=<1.00,0.75,0.00>;
#declare C12=<1.00,0.75,0.50>;
#declare C13=<0.05,0.75,0.01>;
#declare C14=<0.05,0.75,-0.03>;

#declare C21=C11 + <0.00,0.25,0.00>;
#declare C22=C12 + <0.00,0.25,-0.15>;
#declare C23=C13 + <0.00,0.25,0.00>;
#declare C24=C14 + <0.00,0.25,0.00>;

#declare C31=C21 + <0.00,0.25,0.00>;
#declare C32=C22 + <0.00,0.25,-0.15>;
#declare C33=C23 + <0.00,0.25,0.00>;
#declare C34=C24 + <0.00,0.25,0.00>;

#declare C41=C31 +<0.00,0.25,0.00>;
#declare C42=C32 +<0.00,0.25,-0.19999>;
#declare C43=C33 +<0.00,0.25,0.00>;
#declare C44=C34 +<0.00,0.25,0.00>;



// ***************** RETALHO D *************************
#declare D11=< 1.00, 0.75, 0.00>;
#declare D12=< 1.00, 0.75,-0.50>;
#declare D13=< 0.05, 0.75,-0.075>;
#declare D14=< 0.05, 0.75,-0.03>; 

#declare D21= D11 + <0.00,0.25,0.00>;
#declare D22= D12 + <0.00,0.25,0.15>;
#declare D23= D13 + <0.00,0.25,0.00>;
#declare D24= D14 + <0.00,0.25,0.00>;

#declare D31= D21 + <0.00, 0.25, 0.00>;
#declare D32= D22 + <0.00, 0.25, 0.15>;
#declare D33= D23 + <0.00, 0.25, 0.00>;
#declare D34= D24 + <0.00, 0.25, 0.00>;

#declare D41= D31 + <0.00,0.25,0.00>;
#declare D42= D32 + <0.00,0.25,0.199999>;
#declare D43= D33 + <0.00,0.25,0.00>;
#declare D44= D34 + <0.00,0.25,0.00>;


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

#declare retalhoA = 
  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 }
  }
    

  
#declare retalhoB = 
  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 }
    
    
  }
#declare retalhoC = 
  
  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 }
    
    
  }
#declare retalhoD = 
  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_checker_bg }
//object{ scene translate bz_rite_pos }
union {
  union{
    object {retalhoA }
    object {retalhoB }
    object {retalhoC }
    object {retalhoD }  
    translate 0.50*y
  }
  union{
    object {retalhoA }
    object {retalhoB }
    object {retalhoC }
    object {retalhoD }  
    scale <1,-1,1> translate -0.50*y
  }
  cylinder{
    <-1.00,0.00,0.00>,
    <2.00,0.00,0.00>,
    0.50
    pigment{color Flesh}
    
  }
  rotate 40 * x 
  scale 1.25
}