SCI Home Software Documentation Installation User's Guide Developer's Guide

CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry

From SCIRun Documentation Wiki
Jump to: navigation, search

Contents

SynchronizeGeometry

Information

Package: SCIRun
Catagory: Render
Author(s): Kai Li
Status: Supported in latest version
Version: 3.0

Description

Summary

Create a barrier to synchronize a set of geometry streams.

Detailed Description

Unlike the other modules in SCIRun, the Viewer module is asynchronous. That is, ViewWindows redraw as soon as any Geometry is added (or deleted) through any Viewer port. This is typically the desired behavior, as it keeps the visualizations optimally interactive. However, this is not desirable when creating animations, since a new animation frame is generated each time there is a redraw. On the contrary, when creating animations, users typically want only a single redraw per time-step, and that redraw should occur only when all of the scene geometry has been updated. The SynchronizeGeoemtry module provides precisely this mechanism. All of the Geometry that the user wishes to change synchronously with each frame of the animation (e.g. updated isosurfaces, streamlines, psuedo-colored surface potential maps, etc) are passed through the SynchronizeGeometry module before being passed into the Viewer. As updated Geometries are sent to SynchronizeGeometry, it stores them in a buffer until all of the inputs have been received; it then sends them to the Viewer as a single atomic group, which results in a single redraw event (and thus a single new frame for the animation).

A geometry stream is composed of multiple geometry samples. Each geometry sample is created by calling GeometryOPort:: delObj() and/or GeometryOPort::addObj() one or more times. All geometry samples with the same virtual sequence number in differenct streams must reach the barrier before they can all proceed. The boundary of geometry samples is the GeometryFlush or GeometryFlushViews message, which is sent out explicitly by calling functions like GeometryOPort:: flushViews(), or implicitly by SCIRun after you did some geometry operations (delete or add) in Module::execute() but did not call any flush messages. With a checkbox in the control panel, users can dynamically choose whether or not to enforce the barrier.



Frequently Asked Questions


Known Bugs


Recent Changes


Go back to Documentation:SCIRun:Reference:SCIRun

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox