ChannelHandlerAvailability LightWave 6.0 A channel is a value that can vary continuously with time. Channels are everywhere in LightWave. Any animation parameter that can be enveloped is associated with an underlying channel. Channel handlers dip into the stream of a parameter and alter its value. Handler Activation Function XCALL_( int ) MyChannel( long version, GlobalFunc *global, LWChannelHandler *local, void *serverData ); The local argument to a channel handler's activation function is an LWChannelHandler. typedef struct st_LWChannelHandler { LWInstanceFuncs *inst; LWItemFuncs *item; void (*evaluate) (LWInstance, const LWChannelAccess *); unsigned int (*flags) (LWInstance); } LWChannelHandler; The first two members of this structure are standard instance handler functions. The context argument to the create function is the LWChannelID of the associated channel. When the plug-in is activated by Modeler, the item member of the LWChannelHandler will be NULL. Check for this before assigning the item callbacks. A channel handler also provides an evaluation function and a flags function.
Interface Activation Function XCALL_( int ) MyInterface( long version, GlobalFunc *global, LWInterface *local, void *serverData ); This is the standard interface activation for handlers. Channel handlers are selected on the graph editor panel, and their non-modal interfaces will be drawn there. Channel Access This is the structure passed to the handler's evaluation function. typedef struct st_LWChannelAccess { LWChannelID chan; LWFrame frame; LWTime time; double value; void (*getChannel) (LWChannelID chan, LWTime t, double *value); void (*setChannel) (LWChannelID chan, const double value); const char * (*channelName) (LWChannelID chan); } LWChannelAccess;
Example Several of the SDK samples are channel handlers. NoisyChan uses the texture system's noise function to modify a channel. A channel handler is one of four classes demonstrated in txchan, which also uses textures as channel modifiers. xpanchan is a channel handler that demonstrates four ways of displaying the same XPanels interface. |