/* Breno Filipe Bocalon Cavalcanti */

/* Stolfi, eu nao lembrava direito como eu desenhei no papel que
entreguei para a Anamaria. Logo, eu tentei fazer o programa da maneira
mais parecida possivel com que eu lembrasse. Minhas sinceras
desculpas! */

#include "colors.inc"


background{ Black}
camera {
    location 0.90*<40, 10, -30>
    look_at <0,2,0>
    angle 30
  }
  
light_source { <500, 500, -1000> 1.2*White }
light_source { <-500, 500, -1000> 0.6*White }





#if (clock <= 0.25)
	#declare deslocamentoA = (-22*clock);
	#declare rotacaoA = (-30*clock);
	#declare rotacaoB = (0*clock);
	#declare deslocamentoB= 0;
	#declare desA = 0;	
	#declare desBy = 0;
	#declare rotacaofinal = 0;
#else
  #if (clock <= 0.50)

	#declare deslocamentoA = (-22*0.25);
	#declare rotacaoA = (-30*0.25 +10*clock);
	#declare rotacaoB = (40*clock);
	#declare deslocamentoB= (-1*clock);
	#declare desA = (1*clock);;
	#declare desBy = 0;
	#declare rotacaofinal = 0;
	
  #else
    #if (clock <=0.75)

	#declare deslocamentoA = (-22*0.25 -7.5*clock);
	#declare rotacaoA = (-30*0.25 +10*0.5);
	#declare rotacaoB = (40*0.5);
	#declare deslocamentoB= (-1*0.5);
	#declare desA = (1*0.5);
	#declare desBy = (-7*clock);
	#declare rotacaofinal = 0;
	
     
   #else 
		
	#declare deslocamentoA = (-22*0.25 -7.5*0.75);
	#declare rotacaoA = (-30*0.25 +10*0.5);
	#declare rotacaoB = (40*0.5);
	#declare deslocamentoB= (-1*0.5);
	#declare desA = (1*0.5);
	#declare desBy = (-7*0.75);
	#declare rotacaofinal = 100*clock;

   #end
#end
#end


sky_sphere {
  pigment {
    gradient y
    color_map { [0.0 color rgb <0.7,0.7,1.0>] [1.0 color blue 0.5] }
  }
}






#declare labelA =
  text { ttf "gothic.ttf" "A" 0.3, 0  pigment {Cyan }}
  
#declare labelB =
  text { ttf "gothic.ttf" "B" 0.3, 0 pigment {Cyan} }  
  
#declare labelC =
  text { ttf "gothic.ttf" "C" 0.3, 0.0 pigment {Cyan} }
  

#declare objetoB=
union{
object{labelB translate<-6,2,0>} 
torus {
    2, 0.7
    rotate -20*x
    translate 3*y
    pigment { Blue }
}}



#declare objetoA=
union{ 
object{labelA translate <2,7,0>}
lathe {
    linear_spline
    6, 
    <0,-4>, <1,-3.5>, <0.5,0>, <3,0>, <1,0.5>, <0,0.5> 
    pigment { Pink }
    finish {
	ambient .3
	phong .75 }
     translate 10*y   
} }

#declare objetoC=
union{
object{labelC translate <-6,-5,0>}
cylinder {
    <0, 1, 0>,     
    <0, 4, 0>,     
    2.5         
    open           
    translate <0.8,-7,0>
    pigment { Green  }
  } }


#declare fundo =
  plane { y, -6.5
    pigment {
      checker color 0.7*White + 0.3*Brown, color 0.3*White + 0.7*Brown
    }
  }



union{
object{objetoA translate <desA,deslocamentoA,0> rotate <rotacaoA,rotacaofinal,0>}
object{objetoB rotate <rotacaoB,rotacaofinal,0> translate <deslocamentoB,desBy,0> }
object{objetoC rotate <0,0,0>}
object{fundo}
}