"Animation Envelopes"Availability: LightWave 6.0 An envelope is an array of time-varying settings, or keyframes. This global returns functions that allow you to create and manage envelopes and envelope groups. Global Call LWEnvelopeFuncs *envfunc; envfunc = global( "Animation Envelopes", GFUSE_TRANSIENT ); The global function returns a pointer to an LWEnvelopeFuncs. typedef struct st_LWEnvelopeFuncs {
LWEnvelopeID (*create)(LWEnvGroupID, const char *, int);
void (*destroy)(LWEnvelopeID);
LWEnvGroupID (*createGroup)(LWEnvGroupID parent, const char *);
void (*destroyGroup)(LWEnvGroupID);
LWError (*copy)(LWEnvelopeID to, LWEnvelopeID from);
LWError (*load)(LWEnvelopeID, LWLoadState *);
LWError (*save)(LWEnvelopeID, LWSaveState *);
double (*evaluate)(LWEnvelopeID, LWTime);
int (*edit)(LWEnvGroupID, LWEnvelopeID,
int flags, void *data);
int (*envAge)(LWEnvelopeID);
LWEnvKeyframeID (*createKey)(LWEnvelopeID, LWTime, double value);
void (*destroyKey)(LWEnvelopeID, LWEnvKeyframeID);
LWEnvKeyframeID (*nextKey)(LWEnvelopeID, LWEnvKeyframeID);
LWEnvKeyframeID (*prevKey)(LWEnvelopeID, LWEnvKeyframeID);
int (*keySet)(LWEnvelopeID, LWEnvKeyframeID,
LWKeyTag, void *value);
int (*keyGet)(LWEnvelopeID, LWEnvKeyframeID,
LWKeyTag, void *value);
} LWEnvelopeFuncs;
Example This code fragment don't do so much yet. #include <lwserver.h> #include <lwenvel.h> LWEnvelopeFuncs *envfunc; envfunc = global( "Animation Envelopes", GFUSE_TRANSIENT ); |