An
InteractiveSceneGraph is a
SceneGraph that describes, in addition to content to be displayed, details on how this content can be interacted with by a user. The critical component here is that the details on how one can interact with the
SceneGraph are represented directly to the interpreter of the
SceneGraph, which might not be the entity that built the
SceneGraph. This requires that the details on interaction be: (a) have
potential interactions represented as scripts or data, (b) have an implicit or explicit mechanism for communicating intent to realize an interaction, (c) and describe (as part of the
SceneGraph) how to attach the former to the latter.
Most modern GUIs do not qualify. However,
DynamicHtml is a start, supporting scripting hooks for 'onclick' and 'ondblclick'.
JavaScript +
XmlHttpRequest + use of these 'onclick' and 'onhover' and such have all three properties of an
InteractiveSceneGraph.
Truly flexible
InteractiveSceneGraphs would allow one to plug-in how
interaction is hooked to
actuation in much the way CSS allows one to hook content-divisions to formatting. I.e. rather than 'onclick' and 'ondblclick' and so on, one has 'onevent:eventName' and 'onevent:anotherEventName', then has a system that hooks and attaches mechanical events (e.g. mouse-click) to logical events (eventName). (Even better would be a full 'event' component that can support some complex data and attributes on its own.) This is useful for accessibility purposes, as it provides for far more flexible user hardware... one can start attaching hotkeys or gestures to links or actions identified by certain classes, for example.
Also see
GraphicsPatterns.