A programming library for the construction of 3-D wdigets
3-D graphical user interfaces (3-D GUTs) may be beneficial to application programs that need to manipulate 3-D objects or multi-dimensional data. However, most existing 3-D graphics programming systems do not provide primitives for building 3-D GUTs; instead, programmers have to deal directly with input device events and 3-D graphics. Systems that do either are research systems that are not available to application programmers or are difficult to extend. For these reasons, explorations in the
... e of 3-D GUTs have been difficult. An extensible and object-oriented 3-D Widget Programming Library is implemented. It is an extension to Inventor (a widely available 3-D programming library) and lets programmers contruct new widgets (3-D scene objects with interactive behaviors) using four types of highlevel components that are responsible for user interface, visual feedback, application interface and general computation. A widget built with this library is able to control and display one or more application states, interact with users in a click-drag-release fashion, and convey the application states through the relative positions and orientations among the widget's parts. A widget interfaces with an application program through either direct attachments to scene objects or callback functions.