The basic interface to the MultiWCHolder provides methods for adding and removing individual WorldCanvasHolder objects, for globally registering and unregistering DisplayData objects for display on the WorldCanvasHolder objects, and for applying a set of restrictions to the WorldCanvasHolder objects.
At a more advanced level, functions exist to distribute varying restrictions across all the WorldCanvasHolder objects. For example, the programmer can use linearDistributeRestriction to apply a restriction to each WorldCanvasHolder, where the value of the restriction is incremented by a fixed amount between each WorldCanvasHolder. This would be useful, for example, to easily display a set of planes from a multi-frequency image on a number of WorldCanvases whose WorldCanvasHolders have been added to a MultiWCHolder.
Constructor which makes a MultiWCHolder containing the single specified WorldCanvasHolder.
Destructor.
Add or remove a WorldCanvasHolder, or remove all WorldCanvasHolders on this MultiWCHolder. holder is added at the end of the list. When a new WorldCanvasHolder is added, it will automatically have all registered DisplayDatas added to it.
Add or remove a DisplayData, or remove all DisplayDatas on this MultiWCHolder.
Install or remove a single restriction, or a buffer of restrictions, on all of the WorldCanvasHolders managed by this MultiWCHolder.
Incrementally distribute restrictions to all of the WorldCanvasHolders. The value of the restrictions are incremented by the given amount for each holder beyond the first one. The given restrictions may have tolerances, and the base types of each restriction and increment must be identical. That is, restriction.getType() == increment.getType(). Other methods to distribute restrictions in other ways are easily imagined, eg. a vector of Attributes is given. After being called, restrictions are equal to the values set on the final WorldCanvasHolder in the list.
Hold and release response to refreshes requested with the refresh() member function. Multiple calls to hold() can be made, and refreshes will not resume until the same number of calls have been made to release(). Note that these functions do not affect whether internally (implicitly) generated refreshes continue to occur. That is, refresh events due to PixelCanvas resize events, or Colormap changes, for example, will continue to be acted upon.
Distribute a refresh event to all the held WorldCanvasHolders.
These orrespond to 'zIndex, zLength' for animator's 'blink mode'.
Determines which DDs will be restricted, which are always active.
Copy assignment using copy semantics. MultiWCHolder &operator==(const MultiWCHolder &other);
(permanently) sets itsBIndexName (below). Called only in constructor.
Adjust name of "bIndex" Attribute (if any) to indlude ID of this MWCH.
Do we already have this WorldCanvasHolder/DisplayData registered?
Add/remove all the DisplayDatas to/from a WorldCanvasHolder.
Add/remove a DisplayData to/from all WorldCanvasHolders.
Distribute restrictions to all WorldCanvasHolders.
Set restrictions on a particular WorldCanvasHolder.