//Last edited on 2003-05-30 00:33:57 by stolfi

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

#declare ctr = <0,0,2>;

  camera {
    location ctr + 1.2 * <12,3,8>
    right x  up y
    look_at ctr
  }

  light_source { 10*<10, 1, 10> color 1.2*White }
  light_source { 10*<-10, -3, 10> color 0.8*White }
  light_source { 10*<20 ,50 , 5> color 0.6*White }

  plane{y,-6.5 texture{Cork scale 5}}

#declare peesq=
#switch (clock)
#range (0,.25)
      cylinder {<0,0,0>,<0,0,2>, .5 }
 #break
#range (0.26,.50)
       cylinder {<0,0,0>,<0,0,2>, .5 }
  #break
#range(.51,.75)
       cylinder {<0,0,0>,<0,0,2>, .5 }
  #break
#range(.76,1)
       cylinder {<0,0,0>,<0,0,2>, .5 }
#end




#declare pernaesq=union{
#switch (clock)
#range(0,.25)
      object{peesq  rotate x*-90*clock translate <0,-3,0>}
       cylinder {<0,0,0>,<0,-3,0>, .5}//perna
 #break
#range(.26,.50)
       object{peesq  rotate x*-90*clock translate <0,-3,0>}
       cylinder {<0,0,0>,<0,-3,0>, .5}//perna
  #break
#range(.51,.75)
       object{peesq rotate x*-90*(1-clock) translate <0,-3,0>}
       cylinder {<0,0,0>,<0,-3,0>, .5}//perna
  #break
#range(.76,1)
       object{peesq rotate x*90*(1-clock) translate <0,-3,0>}
       cylinder {<0,0,0>,<0,-3,0>, .5}//perna
#end

}


#declare coxaesq=union{
#switch (clock)
#range(0,.25)
 cylinder {<0,0,0>,<0,-3,0>, .5 }
 object{pernaesq  rotate x*240*clock translate<0,-3,0>}
 #break
#range(.26,.50)
  cylinder {<0,0,0>,<0,-3,0>, .5 }
  object{pernaesq rotate x*240*(.5-clock) translate<0,-3,0>}
  #break
#range(.51,.75)
  cylinder {<0,0,0>,<0,-3,0>, .5 }
  object{pernaesq  translate<0,-3,0>}
  #break
#range(.76,1)
  cylinder {<0,0,0>,<0,-3,0>, .5 }
  object{pernaesq translate<0,-3,0>}
#end
}

#declare pedir=cylinder {<0,0,0>,<0,0,2>, .5}

#declare pernadir=union{
#switch (clock)
#range(0,.25)
       object{pedir rotate x*-90*(clock) translate <0,-3,0>}
       cylinder {<0,0,0>,<0,-3,0>, .5 }
   #break
#range(.26,.50)
       object{pedir rotate x*-90*clock  translate <0,-3,0>}
       cylinder {<0,0,0>,<0,-3,0>, .5 }
  #break
#range(.51,.75)
       object{pedir rotate x*-90*(1-clock) translate <0,-3,0>}
       cylinder {<0,0,0>,<0,-3,0>, .5 }
  #break
#range(.76,1)
       object{pedir rotate x*-90*(1-clock) translate <0,-3,0>}
       cylinder {<0,0,0>,<0,-3,0>, .5 }
#end

}


#declare coxadir=union{
#switch (clock)
#range(0,.25)
  cylinder {<0,0,0>,<0,-3,0>, .5 }
  object{pernadir  translate<0,-3,0>}
  #break
#range(.26,.50)
  cylinder {<0,0,0>,<0,-3,0>, .5 }
  object{pernadir  translate<0,-3,0>}
  #break
#range(.51,.75)
    cylinder {<0,0,0>,<0,-3,0>, .5 }
    object{pernadir  rotate x*240*(clock-.5) translate<0,-3,0>}
    #break
#range(.76,1)
   cylinder {<0,0,0>,<0,-3,0>, .5 }
   object{pernadir  rotate x*240*(1-clock) translate<0,-3,0>}
#end
}

#declare corpo= union{
#if (clock<.51)
     object {coxadir translate <0,-3,0> rotate x*+45*clock translate<1,3,0>}//pigment {Blue}}
     object{coxaesq translate <0,-3,0> rotate x*-45*clock translate<-1,3,0>}
     cylinder {<0,0,0>,<0,5,0>,2 }
#end
#if (clock>.50)
     object {coxadir translate <0,-3,0> rotate x*45*(1-clock) translate<1,3,0>}//pigment{Blue}}
     object{coxaesq translate <0,-3,0> rotate x*-45*(1-clock) translate<-1,3,0>}
     cylinder {<0,0,0>,<0,5,0>,2 }
#end
}


//-------------------------------------//

union{
#if (clock<.51)
object {corpo translate <0,0,clock*6>}
pigment {Yellow}
#else
object {corpo translate <0,0,clock*6>}//3+(clock-.5)*3>}
pigment {Yellow}
#end
}