2 |
Design of LibVob |
Design of LibVob |
3 |
=========================== |
=========================== |
4 |
|
|
5 |
The fundamental design goal of the LibVob toolkit is to allow |
The goal of the LibVob toolkit is to allow |
6 |
smooth interpolation between independent views as well as |
interpolation between independently programmed views as well as |
7 |
drawing connections between objects cross-cutting the view hierarchy. |
drawing 'cross-cutting' connections between objects |
8 |
|
in different places of the view hierarchy. |
9 |
|
(For example, a connection between objects in two |
10 |
|
different windows would be 'cross-cutting' as it |
11 |
|
connects two different places in the hierarchy.) |
12 |
|
|
13 |
This distinguishes the Vob system from normal scene graphs: |
This distinguishes the Vob system from normal scene graphs: |
14 |
instead of one global scene graph, there are *keyframe* scene |
instead of one global scene graph, there are *keyframe* scene |
15 |
graphs. |
graphs. |
16 |
After each discrete user action, a new scene graph is generated |
After each discrete user action (like a key press or mouse click), |
17 |
|
a new scene graph is generated |
18 |
by the user-specified *view*. |
by the user-specified *view*. |
19 |
Then, the previous keyframe is smoothly animated into the |
Then, the previous keyframe is animated into the |
20 |
new keyframe to allow the user to keep track of all changes. |
new keyframe to allow the user to keep track of all changes. |
21 |
The animation is governed by *keys* associated with the |
The animation is governed by *keys* associated with the |
22 |
visible objects; the keys are taken from the underlying |
visible objects; an object in the first scene graph |
23 |
model and enable two independently developed views to still |
is animated to an object in the second scene graph |
24 |
smoothly interpolate into each other. |
if both have the same key. The keys are taken from the same |
25 |
|
underlying model (for example, they could be cells in a |
26 |
|
spreadsheet) and enable two independently developed views |
27 |
|
to be interpolated to each other (for example, two different |
28 |
|
ways to render spreadsheet data in a graph). |
29 |
|
|
30 |
Continuous user actions (e.g. zooming/panning with the mouse) |
Continuous user actions (e.g. zooming/panning with the mouse) |
31 |
are treated more conventionally by editing the parameters of |
are treated more conventionally by editing the parameters of |