Picking and snapping for 3D input devices

A picking mechanism (pointing and indicating) with the cursor is essential for any direct-manipulation application. The windowing systems, under whose control a direct-manipulation application runs, provide facilities that together with special utility routines allow identification of which object within the region the user is pointing at. Such picking algorithms have been widely used for selecting objects under a 2D mouse cursor. We present a simple yet effective application-independent 3D picking algorithm for 3D input devices. We also discuss a differential geometry based surface constraint that can be applied to the 3D cursor position for improving points matching. In order to demonstrate the techniques, two sample applications using a 3D input device are shown.