// Last edited on 2019-07-17 10:17:41 by stolfilocal
// Processed by remove-cam-lights

background{ color rgb < 0.5, 0.5, 0.85 > }

#declare tx_plastico =
  texture{
    pigment{ color rgb < 0.10, 0.80, 1.00 > }
    finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
  }

#declare tx_fosca =
  texture{
    pigment{ color rgb < 1.00, 0.80, 0.10 > }
    finish{ diffuse 0.9 ambient 0.1 }
  }

#declare tx_espelho =
  texture{
    pigment{ color rgb < 1.00, 0.85, 0.30 > }
    finish{ diffuse 0.2 reflection 0.7*< 1.00, 0.85, 0.30 > ambient 0.1 }
  }

#declare tx_vidro =
  texture{
    pigment{ color rgb < 0.85, 0.95, 1.00 > filter 0.70 }
    finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 }
  }

#declare tx_xadrez =
  texture{
    pigment{ checker color rgb < 0,0,0 >, color rgb < 1,1,1 > }
    finish{ diffuse 0.9 ambient 0.1 }
    scale 2.0
  }

#declare plength = array[5];
#declare plength[0] = 1;
#declare plength[1] = 3;
#declare plength[2] = 3;
#declare plength[3] = 3;
#declare plength[4] = 3;

#declare corpo = union {
  cylinder { <0, -4, 0>, <0, 4, 0>, 2 }
}

#declare cabeca = union {
  sphere { <0, 0, 0>, 1 }
  cone { <0, 0, 0>, 0.2, <0, 6, 0>, 0 }
}

#macro perna1seg(a1)
  union{
    cylinder {
      <0, 0, 0>, <plength[0], 0, 0>, 0.1
      texture { pigment { color rgb <1,0,0> } }
    }
    rotate <0, a1, 0>
  }
#end

#macro perna2seg(a1, a2)
  union {
    object {perna1seg(a1) translate <plength[1], 0, 0> }
    cylinder{
      <0, 0, 0>, <plength[1], 0, 0>, 0.1
      texture { pigment { color rgb <0,1,0> } }
    }
    rotate <0, a2, 0>
  }
#end

#macro perna3seg(a1, a2, a3)
  union {
    object {perna2seg(a1, a2) translate <plength[2], 0, 0> }
    cylinder{
      <0, 0, 0>, <plength[2], 0, 0>, 0.1
      texture { pigment { color rgb <0,0,1> } }
    }
    rotate <0, a3, 0>
  }
#end

#macro perna4seg(a1, a2, a3, a4)
  union {
    object {perna3seg(a1, a2, a3) translate <plength[3], 0, 0> }
    cylinder{
      <0, 0, 0>, <plength[3], 0, 0> 0.1
      texture { pigment { color rgb <1,0,0> } }
    }
    rotate <0, a4, 0>
  }
#end

#macro perna5seg(a1, a2, a3, a4, a5)
  union {
    object {perna4seg(a1, a2, a3, a4) translate <plength[4], 0, 0> }
    cylinder{
      <0, 0, 0>, <plength[4], 0, 0> 0.1
      texture { pigment { color rgb <0,1,0> } }
    }
    rotate <0, a5, 0>
  }
#end

#macro perna(a1, a2, a3, a4, a5)
  object {
    perna5seg(a5, a4, a3, a2, a1)
    translate <2, 0, 0>
  }
#end

#include "eixos.inc"

union {
  object {corpo}
  object {cabeca translate <0, 5, 1>}

  object {perna(-60, 90, 90, -90, -45) translate <0, 0, 0>}
  object {perna(-60, 90, 90, -90, -45) translate <0, 2, 0>}
  object {perna(-60, 90, 90, -90, -45) translate <0, -2, 0>}

  object {perna(-60, 90, 90, -90, -45) translate <0, 0, 0> scale <-1, 0, 0>}
  object {perna(-60, 90, 90, -90, -45) translate <0, 2, 0> scale <-1, 0, 0>}
  object {perna(-60, 90, 90, -90, -45) translate <0, -2, 0> scale <-1, 0, 0>}
  texture { tx_fosca }

  scale <0.6, 0.6, 0.6>
  translate <4, -2, 0>
}

union {
  object {corpo}
  object {cabeca translate <0, 5, 1>}

  object {perna(60, 20, 20, -40, -15) translate <0, 0, 0>}
  object {perna(60, 20, 20, -40, -15) translate <0, 2, 0>}
  object {perna(60, 20, 20, -40, -15) translate <0, -2, 0>}

  object {perna(60, 20, 20, -40, -15) translate <0, 0, 0> scale <-1, 0, 0>}
  object {perna(60, 20, 20, -40, -15) translate <0, 2, 0> scale <-1, 0, 0>}
  object {perna(60, 20, 20, -40, -15) translate <0, -2, 0> scale <-1, 0, 0>}
  texture { tx_fosca }

  scale <0.6, 0.6, 0.6>
  translate <-4, 2, 0>
}

#include "camlight.inc"
#declare centro_cena = < 0.00, 0.00, 0.00 >;
#declare raio_cena = 12.0;
#declare dir_camera = < 7.00, 7.00, 7.00 >;
#declare dist_camera = 5*raio_cena;
#declare intens_luz = 1.20;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)