Idea is pretty simple - it's just two cubes:
- Exterior one has flipped normals and controls rotation. Each side allows to rotate around single axis.
- Interior cube controls movement and scale. Movement automatically restricted to axis or plane when you hover over different areas. In GEM I don't have non-uniform scaling (because of compact quaternion/translate/scale representation with 8 floats), so corners simply control uniform scale. But you can adjust this for your needs.
Here is a screenshot:
Feel free to ask on "max.dyachenko [at] gmail.com" if you want to get mesh/texture/manipulator code.