Variation

ILxVariation

class ILxVariation

The ILxVariation interface provides a plugin architecture for implementing new variation servers. The interface is provided with a channel read object, and it is expected to return thumbnails that match a position in the grid of thumbnails. The ILxVariation interface is also expected to apply the settings to the scene.

Public Functions

LxResult TestItem(LXtObjectID self, LXtObjectID item, LXtObjectID chanRead)

This method should return either LXe_TRUE or LXe_FALSE, indicating whether the variation server supports the provided item.

LxResult Initialize(LXtObjectID self, double *x, double *y, LXtObjectID item, LXtObjectID chanRead)

Initialize is called to get the initial X and Y values to determine the start position for the variation viewport. This allow the center thumbnail in the viewport to correctly match the current state of the selected item.

LxResult RangeX(LXtObjectID self, double *min, double *max)

The client should provide the min and max range of the X value and Y value. The variation viewport will be limited to these bounds.

LxResult RangeY(LXtObjectID self, double *min, double *max)
LxResult Thumb(LXtObjectID self, double x, double y, unsigned int size, LXtObjectID chanRead, void **ppvObj)

Given a specific X and Y value, the Thumb method is expected to return an ILxImage that can be displayed in the variation viewport.

LxResult Do(LXtObjectID self, double x, double y)

When the user double clicks on a variation in the variation viewer, this method will be called. A undoable command should be used to apply the changes to the scene.

ILxVariationService

class ILxVariationService

Public Functions

LxResult ScriptQuery(LXtObjectID self, void **ppvObj)
void InvalidateItem(LXtObjectID self, LXtObjectID item)

Items are tested to see if they support specific variations. The test result may vary depending on the state of the item. If an item state changes, the following function can be used to invalidate the cached test results for a specific item, and cause it be retested against all variation servers.