// Last edited on DATE TIME by USER
// Processed by remove-cam-lights
#declare tx_corpo =
                texture {
                  pigment { color rgb < 1.00, 0.80, 0.10 > }
                  finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
                }
#declare tx_bacia =
                texture {
                  pigment { color rgb < 0.50, 0.50, 0.80 > }
                  finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
                }
#declare tx_chao =
                texture {
                  pigment { color rgb < 0.30, 0.80, 0.20 > }
                  finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
                }

#declare chao =
  box{
                  < 10, 10, -17>,
                  < -10, -10, -16 >
                  texture{tx_chao}
                }

#macro pe()
  cylinder{
                  < 0, 0, 0 >,
                  < 0, 3, 0 >
                  0.5
                  texture{tx_bacia}
                }
#end

#macro anteperna(teta)
  union {
         cylinder{
                  < 0, 0, 0 >,
                  < 0, 0, -6 >
                  0.5
                  texture{tx_bacia}
                }
                sphere{
                  < 0, 0, -6 >
                  0.5
                  texture{tx_corpo}
                }
                object {pe() rotate teta*x translate -6*z}
        }
#end

#macro perna(teta, alfa)
  union {
         cylinder{
                  < 0, 0, 0 >,
                  < 0, 6, 0 >
                  0.5
                  texture{tx_bacia}
                }
                sphere{
                  < 0, 6, 0 >
                  0.5
                  texture{tx_corpo}
                }
                object {anteperna(teta) rotate alfa*x translate 6*y}
        }
#end

#macro corpo (teta, alfa, fi)
  union {
                sphere{
                  < 0, 0, 0 >
                  4
                  texture{tx_corpo}
                }
                cylinder{
                  < 6, 0, -3 >,
                  < -6, 0, -3 >
                  0.5
                  texture{tx_bacia}
                }
                sphere{
                  < 6, 0, -3 >
                  0.5
                  texture{tx_corpo}
                }
                sphere{
                  < -6, 0, -3 >
                  0.5
                  texture{tx_corpo}
                }
                object {perna(teta, alfa) rotate -1*fi*x translate <6, 0, -3>}
                object {perna(teta, alfa) rotate -1*fi*x translate <-6, 0, -3>}
  }
#end

#macro interpola (ta, va, tb, vb, tt)
  #local s= (tt-ta)/(tb-ta);
  ((1-s)*va+s*vb)
#end

#declare t0 = 0.000;
#declare t1 = 0.250;
#declare t2 = 0.500;
#declare t3 = 0.750;
#declare t4 = 1.000;

#declare teta0   = 0;
#declare teta1  = 50;

#declare alfa0   = 70;
#declare alfa1   = -40;

#declare fi0    = 70;
#declare fi1    = 10;

#declare altura0 = 0;
#declare altura1 = -7;
#declare altura2 = 10;

#if ((clock >= t0) & (clock <= t1))
  #declare teta   = interpola (t0, teta0, t1, teta1, clock);
  #declare alfa   = interpola (t0, alfa0, t1, alfa1, clock);
  #declare fi     = interpola (t0, fi0, t1, fi1, clock);
  #declare altura = interpola (t0, altura0, t1, altura1, clock);
#end
#if ((clock >= t1) & (clock <= t2))
  #declare teta   = interpola (t1, teta1, t2, teta0, clock);
  #declare alfa   = interpola (t1, alfa1, t2, alfa0, clock);
  #declare fi     = interpola (t1, fi1, t2, fi0, clock);
  #declare altura = interpola (t1, altura1, t2, altura0, clock);
#end
#if ((clock >= t2) & (clock <= t3))
  #declare teta   = teta0;
  #declare alfa   = alfa0;
  #declare fi     = fi0;
  #declare altura = interpola (t2, altura0, t3, altura2, clock);
#end
#if ((clock >= t3) & (clock <= t4))
  #declare teta   = teta0;
  #declare alfa   = alfa0;
  #declare fi     = fi0;
  #declare altura = interpola (t3, altura2, t4, altura0, clock);
#end

background{ color rgb < 1, 1, 1 > }

object {corpo (teta, alfa, fi) translate <0,0, altura>}

object {chao}

#include "camlight.inc"
#declare centro_cena = < 30.00, 30.00, 4.00 >;
#declare raio_cena = 9.0;
#declare dir_camera = < 3, 3, 0.5 >;
#declare dist_camera = 16.0;
#declare intens_luz = 1.50;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)