A Survey on 3D Virtual Object Manipulation: From the Desktop to Immersive Virtual Environments