Data Flow vs. Control Flow

Data Flow

The execution model for data exchanged between visualization objects. These data may be huge. Execution is performed asynchronously,  triggered (by default) with 30 frames per second. Vish adheres the pull model of a visualization pipeline, i.e. objects are requested to deliver data if some data sink (e.g., some rendering module) requires them.

In C++ source code the data flow is implemented through the virtual VObject::update()  function.

Control Flow

The execution model for control elements for visualization objects, i.e. parameters that control the data flow. A typical control element is for instance the threshold value of an isosurface. The control flow is executed in synchronously with user input.

Interaction with the control flow is mostly an issue of a graphical user interface, such as qVish. As a rather rare, but possible, case also VObjects itself may add hooks to the control flow, for instance to synchronize input parameters.