This module provides a set of widgets, and built on top of those widgets, a set of functions for constructing and managing complete control panels.
Widgets are xlisp objects which use generic Skandha4 graphics facilities to display mouse-sensitive objects via which the user can observe and modify the value of some datastructure. Widgets are perfectly normal Skandha4 polygon objects, which may be drawn, moved, rotated, lit and colored exactly like any other Skandha4 polygon object: they simply happen to have hook functions attached which implement special mouse-sensitive behaviors, and to change their appearance to reflect the state of some datastructure such as a floating point number or a string.
The higher level calls implement a user interface which displays a columnar widget panal down the right-hand side of the window, and graphics viewports in the rest of the window. The widget panel typically provides detailed display and control of some particular object of interest to the user. XG.3D.GUI actually manages a stack of widget panels, only the top panel being visible on the screen at any given time.
This stack allows the user to open a new panel in order to perform some subtask, and then return to the original widget panel when the subtask is done.