// Last edited on 2013-11-04 00:39:24 by stolfilocal
// Processed by remove-cam-lights

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

#declare tx_box =
  texture{
    pigment{ color rgb < 0.90, 0.20, 0.20 > }
    finish{ diffuse 0.8 ambient 0.4 specular 0.5 roughness 0.005 }
  }

#declare tx_steel =
  texture{
    pigment { rgb <0.55, 0.5, 0.45> }
    finish { metallic ambient 0.1 diffuse 0.65 specular 0.85 roughness 0.01 reflection 0.45 brilliance 1.5}
  }

#declare tx_black =
  texture{
    pigment{ color rgb < 0.60, 0.30, 0.60 > }
    finish{ diffuse 0.5 ambient 0.2 }
  }

#declare zero = 0.0000001;
#declare boxSide = 4;
#declare coconutRadius = 1.3;
#declare ringRadius = 0.1;
#declare armRadius = 0.15;
#declare armRange = boxSide*1.1;
#declare holdRadius = coconutRadius+0.1;
#declare pieceRadius = ringRadius/1.5;
#declare ringHeight = 2*ringRadius+boxSide/2;

#declare box1 =
  box{ < 0,0,0 >, < boxSide,boxSide,boxSide/1.2 >}

#declare coconut =
  sphere{ < 0,0,0 >, coconutRadius }

#declare ring =
  torus{ coconutRadius+ringRadius,ringRadius }

#declare arm =
  cylinder {<0,0,0>, <0,0,armRange>, armRadius}

#declare oco =
  difference {
      sphere {<0,0,0>, holdRadius}
      sphere {<0,0,0>, coconutRadius}
    }

#declare hold =
  intersection{
    box {<0,-holdRadius-1,-holdRadius-1>, <holdRadius+1,holdRadius+1,holdRadius+1> translate <holdRadius/1.5,0,0>}
    object {oco translate <0,0,0>}
  }

#declare piece=
  cylinder {<0,0,0>, <0,0,ringHeight>, pieceRadius}

#include "eixos.inc"

union{
  // object{ eixos(5.00) }
  difference {
    object{ box1  translate < -boxSide/2,-boxSide/2,-boxSide/2 > texture{ tx_box } }
    object{ coconut  translate < 0,0,boxSide/3> texture{ tx_steel } }
  }
  union {
    object {ring rotate <90,0,0>  texture {tx_steel}}
    object {piece translate <0,-coconutRadius,-ringHeight> texture {tx_steel}}
    object {piece translate <0,coconutRadius,-ringHeight> texture {tx_steel}}
    object {piece translate <-coconutRadius,0,-ringHeight> texture {tx_steel}}
    object {piece translate <coconutRadius,0,-ringHeight> texture {tx_steel}}
    translate <0,0,ringHeight>
  }
  union{
    object{ arm  translate < 0,0,0 > texture{ tx_steel } }
    union {
            object{ arm texture{ tx_steel }}
            object {hold translate <-holdRadius,0,armRange-holdRadius/2> texture{ tx_black }}
            rotate <0,-100,0>
            translate < 0,0,armRange >

        }
    translate <boxSide/2,0,0>
    rotate <0,30,0>
  }

}

#include "camlight.inc"
#declare centro_cena = < 0.00, 0.00, 0.50 >;
#declare raio_cena = 7.5;
#declare dir_camera = < 2, 10, 6 >;
#declare dist_camera = 26.0;
#declare intens_luz = 1.00;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)