// Last edited on 2005-01-05 23:31:11 by stolfi
// Processed by remove-cam-lights

#declare larMembro = 0.15;

#declare angMoeda = (clock*6)*360;
#if(clock < 0.5)
  #declare posMoeda = 12 - (clock*2)*6;
  #declare alphad = ((0.5 - clock)*2)*-30;
  #declare alphap = ((0.5 - clock)*2)*30;
  #declare alpham = ((0.5 - clock)*2)*45;
  #declare alphaa = ((0.5 - clock)*2)*-90;
  #declare alphab = ((0.5 - clock)*2)*45;
  #declare angulb = -45;
#else
  #declare posMoeda = 18 - 6*(2*(clock - 0.5));
  #declare alphad = ((-0.5 + clock)*2)*-30;
  #declare alphap = ((-0.5 + clock)*2)*30;
  #declare alpham = ((-0.5 + clock)*2)*45;
  #declare alphaa = ((-0.5 + clock)*2)*-90;
  #declare alphab = ((-0.5 + clock)*2)*45;
  #declare angulb = -45;
#end

#declare ouro =
  texture {
    pigment { rgb < 1.00, 1.00, 0.60> }
    finish { ambient 0.05
      diffuse 0.05
      reflection < 1.00, 1.00, 0.60>
      specular 0.2
      roughness 0.05
    }
  }

#declare pele =
  texture {
    pigment { rgb < 0.90, 0.90, 0.90> }
    finish { diffuse 0.05 }
  }

#declare moeda = object {
  union {
    cylinder {
      <0, 0, -0.05>, <0, 0, 0.05>, 0.15
    }
  }
  texture { ouro }
}

#declare lei = object {
  union {
    cylinder {
      <0, 0, 0.5>, <0, 0, -2>, 1.0
    }
    cylinder {
      <0, 0, 0.5>, <0, 0, 1.0>, larMembro
    }
    sphere {
      <0, 0, 2.0>, 1.0
    }
    torus {
      0.9, 0.2
      rotate 90*x
      translate z*2.3
      texture { pigment {rgb 0} }
    }
  }
  texture { pele }
}

#declare dedo = object {
  union {
    cylinder {
      <0, 0, 0>, <1.5, 0, 0>, 0.1
    }
    sphere {
      <1.5, 0, 0>, 0.1
    }
  }
  texture { pele }
}

#declare dedos = object {
  union {
    object {dedo rotate 15*z}
    object {dedo rotate -15*z}
    object {dedo rotate 30*z}
    object {dedo rotate -30*z}
  }
  rotate alphad*y
}

#declare polegar = object {
  union {
    object {dedo}
  }
  rotate alphap*y
}

#declare mao = object {
  union {
    sphere {
      <0, 0, 0>, 0.25
      texture { pele }
    }
    object {dedos}
    object {polegar}
  }
  rotate alpham*y
}

#declare antebraco = object {
  union {
    sphere {
      <0, 0, 0>, 0.25
      texture { pele }
    }
    cylinder {
      <0, 0, 0>, <2.0, 0, 0>, larMembro
      texture { pele }
    }
    object {mao translate 2.0*x}
  }
  rotate alphaa*y
}

#declare braco = object {
  union {
    sphere {
      <0, 0, 0>, 0.25
      texture { pele }
    }
    cylinder {
      <0, 0, 0>, <2, 0, 0>, larMembro
      texture { pele }
    }
    object {antebraco translate 2*x}
  }
  rotate angulb*x
  rotate alphab*y
}

background{
  color rgb <0.75, 0.80, 1.0>
}

union {
  object { lei }
  object { braco translate 1*x }

  object { braco translate 1*x scale -1*x}

  object { moeda rotate angMoeda*x translate posMoeda*x }
}

#include "camlight.inc"
camlight(<4,0,0>,<-1,-15,3>,1.00,z,1.0)