// Last edited on 2003-05-29 19:40:13 by stolfi

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

sky_sphere{ pigment { color rgb < 0.5, 0.6, 1.0 > } }

camera {
  location  0.50*<  15.00, -3, -1.00 > // x, y, z
  right x   up y
  sky y
  look_at   <  0.00, 0.00, 1.00 >
}

light_source { 100*< 15.00, 7.00, -20 > color rgb 1.2*< 1.00, 1.00, 1.00 > }
light_source { 100*< 15.00, 4.00, 20 > color rgb 0.8*< 1.00, 1.00, 1.00 > }

plane{<0,1,0>,-3.1
  texture {T_Stone15}
}

#declare marrom =
  texture {

    pigment { color rgb < 0.77, 0.43, 0.13 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

#declare pe1 = 
sphere{
<0.25,-2.8 ,1  >,0.5
texture {marrom}
scale<0,0,2.5>
}  


#declare perna1 =
  sphere{
    < 0.25, -1.2, 2.9 >, 0.50
    texture { marrom }
    scale<0,1.7,0>
  }


#declare pe2 = 
sphere{
<-0.5,-2.8 ,1  >,0.5
texture {marrom}
scale<0,0,2.5>
}  
#declare perna2 =
  sphere{
    < -0.5, -1.2, 2.9 >, 0.50
    texture { marrom }
    scale<0,1.7,0>
  }


#declare coxa2 =
  sphere{
    < -0.5, -0.2, 2.9 >, 0.50
    texture { marrom }
    scale<0,2,0>
  }

#declare coxa1 =
  sphere{
    < 0.25, -0.2, 2.9 >, 0.50
    texture { marrom }
    scale<0,2,0>
  }

#declare tronco =
  sphere{
    < 0, 0.8, 2.9 >, 0.8
    texture { marrom }
    scale<1.3,1.6,0>
  }

#declare cabeca =
  sphere {
    < 0, 2.9, 2.9 >, 0.7 
    texture { marrom }
  }
#declare braco1 = 
sphere{
    < 1.0, 0.5, 2.9 >, 0.50
    texture { marrom }
    scale<0,2,0>
  }
  
#declare braco2 = 
sphere{
    < -1.2, 0.5, 2.9 >, 0.50
    texture { marrom }
    scale<0,2,0>
  }
  

#declare deslocamento = 3;


#if (clock < 0.25)
 #declare rotacao1 = ((clock * 100 /25)*90);
 #declare rotacao2 = 0;
 #declare rotacao3 = 0;
 #declare andar = 0;
#else
 #if (clock < 0.5)
  #declare rotacao1 = 90;
  #declare rotacao2 = (90/0.25)*(clock-0.25)*(-1);
  #declare rotacao3 = 0;
  #declare andar = 0;
 #else
   #if (clock < 0.75)
    #declare rotacao1 = (-1)*(90/0.5)*(clock-0.5)+90;
    #declare rotacao2 = (-90)+(90/0.25)*(clock-0.5);
    #declare rotacao3 = (-1)*(45/0.25)*(clock-0.5);
    #declare andar = deslocamento * (-1/0.5)*(clock-0.5);
   #else
    #declare rotacao1 = (-1)*(90/0.5)*(clock-0.5)+90;
    #declare rotacao2 = 0;
    #declare rotacao3 = -45+(45/0.25)*(clock-0.75);
    #declare andar = deslocamento * (-1/0.5)*(clock-0.5);
   #end
 #end
#end

#declare perna_1 = 
union{
object {pe1}
object {perna1}
}


#declare perna_e =
union{
 object {perna_1
translate< -0.25, 1.2, -2.9 >
rotate <rotacao2,0,0>
translate< 0.25, -1.2, 2.9 >}
 object {coxa1}
}

#declare perna_2 = 
union{
object {pe2}
object {perna2}
}

#declare perna_d =
union{
object {perna_2}
object {coxa2}
}

#declare corpo = 
union{
object {cabeca}
object {tronco}
object {braco1}
object {braco2}

object {perna_e 
 translate < -0.25, 0.2, -2.9> 
 rotate <rotacao1,0,0>
 translate < 0.25, -0.2, 2.9> 
}

object {perna_d
 translate  < 0.5, 0,-3.3 >
 rotate <rotacao3,0,0>
 translate  < -0.5, 0, 3.3 >
}


}

object {corpo
translate <0,0,andar>
}