ItemMotionHandler LayoutTool Classes Table of Contents


Availability  LightWave® 6.0
Component  Layout
Header  lwgeneric.h

Layout generic plug-ins can issue commands to alter the scene. They can also manipulate scene settings at a lower level by saving, altering, and reloading scene files. Generics also supply general-purpose, non-rendering functionality for doing things like configuring external devices, performing scratch calculations, or displaying scene information.

Activation Function

   XCALL_( int ) MyGeneric( int version, GlobalFunc *global,
      LWLayoutGeneric *local, void *serverData );

The local argument to a generic's activation function is an LWLayoutGeneric.

   typedef struct st_LWLayoutGeneric {
      int           (*saveScene)(const char *file);
      int           (*loadScene)(const char *file, const char *name);
      void          *data;
      LWCommandCode (*lookup)   (void *, const char *cmdName);
      int           (*execute)  (void *, LWCommandCode cmd, int argc,
                                   const DynaValue *argv,
                                   DynaValue *result);
      int           (*evaluate) (void *, const char *command);
   } LWLayoutGeneric;
ok = saveScene( filename )
Save the scene in its current state as a LightWave® scene file.

ok = loadScene( filename, newname )
Load a scene file. The scene is loaded from the file named in the first argument. The second argument is the default filename for subsequent saving of the scene and the name that will be displayed to the user.

An opaque pointer to data used internally by Layout. Pass this as the first argument to the lookup, execute and evaluate functions.

cmdcode = lookup( data, cmdname )
Returns an integer code corresponding to the command name. The command is issued by passing the command code to the execute function. Command codes are constant for a given Layout session, so this only needs to be called once per command, after which the codes can be cached and used multiple times.

result = execute( data, cmdcode, argc, argv, cmdresult )
Issue the command given by the command code argument. argv is an array of DynaValue arguments. argc is the number of arguments in the argv array. The result of the command is written in cmdresult. The function returns 1 if it succeeds or 0 if it does not.

result = evaluate( data, cmdstring )
Issue the command with the name and arguments in the command string. This is an alternative to using lookup and execute. The command and its arguments are written to a single string and delimited by spaces. The function returns 1 if it succeeds or 0 if it does not.

See the Commands pages for a complete list of the commands that can be issued in Layout, as well as a detailed explanation of the formatting of command arguments for both the execute and evaluate methods.


The hello sample is the LightWave® version of everybody's favorite "Hello, World!" program. It opens a panel with an edit field, displays messages, and issues a command.