From: <spa...@us...> - 2011-06-22 16:58:44
|
Revision: 2980 http://ogreaddons.svn.sourceforge.net/ogreaddons/?rev=2980&view=rev Author: spacegaier Date: 2011-06-22 16:58:34 +0000 (Wed, 22 Jun 2011) Log Message: ----------- - updated to work with Lightwave 9.6 and 10 -> updated to LW SDK 10 and boost 1.46.1 + boost.process from GSocC 2010 - minor fixes: * reduced max UV set number to 8, since Ogre cannot handle more anyway * exporter will now be properly added to MasterPlugins after loading a LWS scene Modified Paths: -------------- trunk/LightwaveExport/README.txt trunk/LightwaveExport/docs/changelog.txt trunk/LightwaveExport/docs/notes.txt trunk/LightwaveExport/include/Lw2Ogre_Config.h trunk/LightwaveExport/include/Lw2Ogre_LwMesh.h trunk/LightwaveExport/include/Lw2Ogre_Prerequisites.h trunk/LightwaveExport/include/OgreVector3.h trunk/LightwaveExport/include/wxAboutPanel.h trunk/LightwaveExport/scripts/Lightwave2Ogre.vcproj trunk/LightwaveExport/src/Lw2Ogre_LwMesh.cpp trunk/LightwaveExport/src/Lw2Ogre_Main.cpp trunk/LightwaveExport/src/Lw2Ogre_MeshExportOptions.cpp trunk/LightwaveExport/src/Lw2Ogre_MeshExporter.cpp trunk/LightwaveExport/src/Lw2Ogre_OgreMesh.cpp trunk/LightwaveExport/src/Lw2Ogre_OgreXmlSkeletonSerializer.cpp trunk/LightwaveExport/src/Lw2Ogre_Service.cpp trunk/LightwaveExport/src/servmain.c trunk/LightwaveExport/src/shutdown.c trunk/LightwaveExport/src/startup.c trunk/LightwaveExport/src/wxAboutPanel.cpp trunk/LightwaveExport/src/wxMeshExporterMeshPanel.cpp trunk/LightwaveExport/src/wxMeshExporterOgreXmlConverterPanel.cpp Added Paths: ----------- trunk/LightwaveExport/bin/ trunk/LightwaveExport/bin/debug/ trunk/LightwaveExport/bin/debug/LW2Ogre3D_d.exp trunk/LightwaveExport/bin/debug/LW2Ogre3D_d.lib trunk/LightwaveExport/bin/debug/LW2Ogre3D_d.p trunk/LightwaveExport/bin/release/ trunk/LightwaveExport/bin/release/LW2Ogre3D.exp trunk/LightwaveExport/bin/release/LW2Ogre3D.lib trunk/LightwaveExport/bin/release/LW2Ogre3D.p trunk/LightwaveExport/deps/ trunk/LightwaveExport/deps/lwdsdk10.0/ trunk/LightwaveExport/deps/lwdsdk10.0/README.txt trunk/LightwaveExport/deps/lwdsdk10.0/include/ trunk/LightwaveExport/deps/lwdsdk10.0/include/carbonrel.h trunk/LightwaveExport/deps/lwdsdk10.0/include/generators/ trunk/LightwaveExport/deps/lwdsdk10.0/include/generators/lwedgegenerator.h trunk/LightwaveExport/deps/lwdsdk10.0/include/generators/lwpointgenerator.h trunk/LightwaveExport/deps/lwdsdk10.0/include/generators/lwpolygenerator.h trunk/LightwaveExport/deps/lwdsdk10.0/include/legacy/ trunk/LightwaveExport/deps/lwdsdk10.0/include/legacy/lwspreadsheet.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwanimlod.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwanimsav.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwanimuv.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcamera.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwchange.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwchannel.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcmdseq.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcolorspace.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcomring.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcustobj.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdialog.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdisplay.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdisplce.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdopetrack.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdyna.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwenvel.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwenviron.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwextrend.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwfilter.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwframbuf.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwgeneric.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwgizmo.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwglobsrv.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwhandler.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwhost.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwimage.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwimageio.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwio.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwlaytool.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwlcore.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwlight.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwmaster.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwmath.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwmeshedt.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwmeshes.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwmodeler.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwmodtool.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwmodule.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwmonitor.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwmotion.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwmtutil.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwnodeeditor.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwnodes.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwobjimp.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwobjrep.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwpanel.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwplugin.exp trunk/LightwaveExport/deps/lwdsdk10.0/include/lwpolygon.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwpreview.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwprtcl.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwrender.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwscenecv.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwsceneeditor.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwserver.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwshader.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwshelf.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwsurf.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwsurfed.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwtexture.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwtimer.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwtool.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwtxtr.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwtxtred.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwtypes.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwvolume.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwvparm.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwvpobject.h trunk/LightwaveExport/deps/lwdsdk10.0/include/lwxpanel.h trunk/LightwaveExport/deps/lwdsdk10.0/lib/ trunk/LightwaveExport/deps/lwdsdk10.0/lib/server.lib trunk/LightwaveExport/deps/lwdsdk10.0/lib/server_d.lib trunk/LightwaveExport/deps/lwdsdk10.0/source/ trunk/LightwaveExport/deps/lwdsdk10.0/source/serv.def trunk/LightwaveExport/deps/lwdsdk10.0/source/servdesc.c trunk/LightwaveExport/deps/lwdsdk10.0/source/servmain.c trunk/LightwaveExport/deps/lwdsdk10.0/source/shutdown.c trunk/LightwaveExport/deps/lwdsdk10.0/source/startup.c trunk/LightwaveExport/deps/lwdsdk10.0/source/username.c trunk/LightwaveExport/deps/tinyXml/ trunk/LightwaveExport/deps/tinyXml/readme.txt trunk/LightwaveExport/deps/tinyXml/tinystr.cpp trunk/LightwaveExport/deps/tinyXml/tinystr.h trunk/LightwaveExport/deps/tinyXml/tinyxml.cpp trunk/LightwaveExport/deps/tinyXml/tinyxml.h trunk/LightwaveExport/deps/tinyXml/tinyxmlerror.cpp trunk/LightwaveExport/deps/tinyXml/tinyxmlparser.cpp Removed Paths: ------------- trunk/LightwaveExport/tinyXml/ Modified: trunk/LightwaveExport/README.txt =================================================================== --- trunk/LightwaveExport/README.txt 2011-02-16 18:45:31 UTC (rev 2979) +++ trunk/LightwaveExport/README.txt 2011-06-22 16:58:34 UTC (rev 2980) @@ -1,43 +1,40 @@ -Dependencies ------------- - -TinyXml 2.4.2 -Boost 1.33.1 -wxWidgets 2.8.0 -Lightwave 7.5 SDK - - - -TinyXml is provided, you will not need to download it. - - -The plugin is using the following boost libraries : - -lexical_cast -variant -function -bind -date_time -process - - -It's better to build the plugin with the Lightwave 7.5 SDK to make it compatible with Lightwave 7.5 and above, but you should be able to build it using the lastest Lightwave SDK. - - -Windows -------- - -A solution for building the plugin with MSVC 2005 is provided. - - -Mac users ---------- - -If anybody is interested into building the plugin for Mac, please contact me. - - -Documentation -------------- - -The sources used to build the documentation is available into the /Docs/Sources directory. - +Dependencies +------------ + +TinyXml 2.4.2 +Boost 1.33.0 or higher +wxWidgets 2.8.X +Lightwave 9.6 SDK or higher + + +TinyXml is provided, you will not need to download it. + +The provided binaries were compiled with LW SDK 10, but work in LW 9.6 and LW 10. + +The plugin is using the following boost libraries : + +lexical_cast +variant +function +bind +date_time +process (http://www.highscore.de/boost/gsoc2010/process.zip) + + +Windows +------- + +A solution for building the plugin with Visual Studio is provided. + + +Mac users +--------- + +If anybody is interested into building the plugin for Mac, please contact me. + + +Documentation +------------- + +The sources used to build the documentation is available into the /docs/sources directory. + Added: trunk/LightwaveExport/bin/debug/LW2Ogre3D_d.exp =================================================================== (Binary files differ) Property changes on: trunk/LightwaveExport/bin/debug/LW2Ogre3D_d.exp ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/LightwaveExport/bin/debug/LW2Ogre3D_d.lib =================================================================== (Binary files differ) Property changes on: trunk/LightwaveExport/bin/debug/LW2Ogre3D_d.lib ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/LightwaveExport/bin/debug/LW2Ogre3D_d.p =================================================================== (Binary files differ) Property changes on: trunk/LightwaveExport/bin/debug/LW2Ogre3D_d.p ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/LightwaveExport/bin/release/LW2Ogre3D.exp =================================================================== (Binary files differ) Property changes on: trunk/LightwaveExport/bin/release/LW2Ogre3D.exp ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/LightwaveExport/bin/release/LW2Ogre3D.lib =================================================================== (Binary files differ) Property changes on: trunk/LightwaveExport/bin/release/LW2Ogre3D.lib ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/LightwaveExport/bin/release/LW2Ogre3D.p =================================================================== (Binary files differ) Property changes on: trunk/LightwaveExport/bin/release/LW2Ogre3D.p ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/LightwaveExport/deps/lwdsdk10.0/README.txt =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/README.txt (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/README.txt 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,10 @@ +Note +---- + +This is not the complete LW SDK 10, but rather only the parts needed to compile the exporter: + +/include -> needed headers +/source -> source files to create server.lib which the exportesr needs to link + (libs are already created, so in fact source is not needed) +/lib -> the two server lib files needed to comiple the exporter (debug and release version) + Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/carbonrel.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/carbonrel.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/carbonrel.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,7 @@ +#define _MACOS +#define RELEASE +#define MAC_OS_X +#define ACCESSOR_CALLS_ARE_FUNCTIONS 1 +#define OPAQUE_TOOLBOX_STRUCTS 1 +#define TARGET_API_MAC_CARBON 1 + Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/generators/lwedgegenerator.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/generators/lwedgegenerator.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/generators/lwedgegenerator.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,14 @@ +#ifndef LWSDK_EDGE_GENERATOR_H +#define LWSDK_EDGE_GENERATOR_H + +#include <lwmeshes.h> + +struct LWEdgeGenerator +{ + struct LWEdgeGeneratorDetail* detail; + void (*destroy)(struct LWEdgeGenerator* gen); + struct LWEdgeGenerator* (*clone)(struct LWEdgeGenerator* gen); + LWEdgeID (*generate)(struct LWEdgeGenerator* gen); +}; + +#endif Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/generators/lwpointgenerator.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/generators/lwpointgenerator.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/generators/lwpointgenerator.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,14 @@ +#ifndef LWSDK_POINT_GENERATOR_H +#define LWSDK_POINT_GENERATOR_H + +#include <lwmeshes.h> + +struct LWPointGenerator +{ + struct LWPointGeneratorDetail* detail; + void (*destroy)(struct LWPointGenerator* gen); + struct LWPointGenerator* (*clone)(struct LWPointGenerator* gen); + LWPntID (*generate)(struct LWPointGenerator* gen); +}; + +#endif Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/generators/lwpolygenerator.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/generators/lwpolygenerator.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/generators/lwpolygenerator.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,14 @@ +#ifndef LWSDK_POLYGON_GENERATOR_H +#define LWSDK_POLYGON_GENERATOR_H + +#include <lwmeshes.h> + +struct LWPolyGenerator +{ + struct LWPolyGeneratorDetail* detail; + void (*destroy)(struct LWPolyGenerator* gen); + struct LWPolyGenerator* (*clone)(struct LWPolyGenerator* gen); + LWPolID (*generate)(struct LWPolyGenerator* gen); +}; + +#endif Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/legacy/lwspreadsheet.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/legacy/lwspreadsheet.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/legacy/lwspreadsheet.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,139 @@ +/* + * LWSDK Header File + * Copyright 1999, NewTek, Inc. + * + * LWSPREADSHEET.H -- LightWave SpreadSheet bank registration + * $Log: lwspreadsheet.h,v $ + * Revision 7.1 2004/01/30 13:52:03 haven + * *** empty log message *** + * + * Revision 1.1 2003/08/26 19:02:02 haven + * Initial check-in + * + * + */ + +#ifndef LWSDK_SPREADSHEET_H +#define LWSDK_SPREADSHEET_H + +#include <lwtypes.h> +#include <lwpanel.h> +#include <lwrender.h> + +#define LWIMP_GLOBAL "SpreadsheetSceneManagerGlobal" + +/* + * The following are predefined column types. IDs starting with undescores + * are reserved for future use. If you want to make a custom type, be sure + * to provide a custom interface and custom draw callbank. + */ + /* Datatype - Description */ +#define IMPCOLTYPE_TOGGLE LWID_( '_', 'T', 'G', 'L' ) /* int - Checkbox or similar toggle (Unseen By Camera, Cast Shadows) */ +#define IMPCOLTYPE_INTEGER LWID_( '_', 'I', 'N', 'T' ) /* int - Integer based control (Subpatch Level, Area Light Quality */ +#define IMPCOLTYPE_PERCENT LWID_( '_', 'P', 'C', 'T' ) /* double - Floating point number displayed as a percentage. 1.0 is 100% (Light Intensity, Blur Lrngth) */ +#define IMPCOLTYPE_DISTANCE LWID_( '_', 'D', 'S', 'T' ) /* double - Floating point number displayed as a distance in meters (Focal Distance, Light Range) */ +#define IMPCOLTYPE_ANGLE LWID_( '_', 'A', 'N', 'G' ) /* double - Floating point number displayed as an angle in degrees (Heading Limits, Light Cone Angle) */ +#define IMPCOLTYPE_TIME LWID_( '_', 'S', 'E', 'C' ) /* double - Floating point number displayed as a time in seconds */ +#define IMPCOLTYPE_FLOAT LWID_( '_', 'F', 'L', 'T' ) /* double - Floating point number (Anti-Aliasing Threshold, Metaball Resolution) */ +#define IMPCOLTYPE_LIST LWID_( '_', 'L', 'S', 'T' ) /* int - Pre-determined list of items. Must provide list callbacks (Item Visibility, Subdivision Order) */ +#define IMPCOLTYPE_FILE LWID_( '_', 'F', 'I', 'L' ) /* char * - Text string representing a file (PFX File) */ +#define IMPCOLTYPE_STRING LWID_( '_', 'S', 'T', 'R' ) /* char * - Text string (Item Name, Comment) */ +#define IMPCOLTYPE_COLOR LWID_( '_', 'C', 'L', 'R' ) /* float[3] - RGB Color Triple (Light Color, Edge Color) */ +#define IMPCOLTYPE_ITEM LWID_( '_', 'I', 'T', 'M' ) /* LWItemID - ID of an item (IK Goal, Parent). */ +#define IMPCOLTYPE_IMAGE LWID_( '_', 'I', 'M', 'G' ) /* LWImageID - ID of an image (Projection Image) */ +#define IMPCOLTYPE_VMAP LWID_( '_', 'V', 'M', 'P' ) /* IMPVMap * - Name of a VMAP (Bone Weight Map). testItem() should return a zero-terminated arrow of allowed VMap types (ie: { LWVMAP_WGHT, 0 }) if the test value is LWI_NULL */ + +typedef struct st_IMPVMap { /* Used by IMPCOLTYPE_VMAPs, since both a type and a name are needed to identify a VMap */ + LWID type; /* VMap Type. See lwmeshes.h for common types. */ + const char * name; /* VMap Name. */ +} IMPVMap; + +typedef enum en_IMPGhostModes { /* Your ghosted() function should return one of these values: */ + IMPGHOST_ENABLED, /* Draws the cell normally */ + IMPGHOST_DISABLED, /* Draws a disabled (ghosted) cell */ + IMPGHOST_LABEL, /* Draws the cell normally, but it cannot be selected. You could consider this a "read only" cell */ + IMPGHOST_BLANK, /* Draws a blank (and unselectable) cell. Useful if the column is only relevant to objects and this ID points to a light */ +} IMPGhostModes; + +#define IMPENV_NOT_ENVELOPABLE ((void **)0xFFFFFFFF) /* This cell cannot be enveloped (Linear/Area Light Quality) */ +#define IMPENV_NOT_ENVELOPED ((void **)NULL) /* This cell can be enveloped, but currently is not */ + +typedef enum en_IMPEnvRequests { /* Your envelope() function will get one of these requests: */ + IMPENVREQ_STATE, /* Request the enveloped state. This should be one of IMPENV_NOT_ENVELOPABLE, IMPENV_NOT_ENVELOPED or IMPENV_ENVELOPED */ + IMPENVREQ_APPLY, /* This cell can be enveloped, but currently is not. Return IMPENV_NOT_ENVELOPED or IMPENV_ENVELOPED */ + IMPENVREQ_REMOVE, /* This cell is currently enveloped. Return IMPENV_NOT_ENVELOPED or IMPENV_ENVELOPED */ +} IMPEnvRequests; + +/* + * IMPColumn: + * Provides details about a specific column within a bank + */ +typedef struct st_IMPColumn { + char * title; /* Column Title. If NULL, the custom draw function will be called with row index of -1. */ + int default_width; /* Default width of the column in pixels */ + + LWID type; /* Column Type. Use MakeBankID() to generate one, or use one of the predefined column types above */ + char * comment; /* Column Comment. This will be displayed on the status line when a cell is selected */ + + LWChannelID * (*envelope) ( int column, int row, void * id, IMPEnvRequests request ); /* Envelope Function. IMP handles enveloped cells differently from normal cells. Can be NULL if not envelopable */ + + IMPGhostModes (*ghosted) ( int column, int row, void * id ); /* Ghosted Function. IMP calls this to decide how to draw the control. This should return one of the IMPGhostModes. Can be NULL if always enabled */ + void * (*query) ( int column, int row, void * id, LWTime time ); /* Query Function. IMP calls this to get the current state of this cell */ + void * (*evaluate) ( int column, int row, void * id, LWTime time, void * value, int apply ); /* Evaluate Function. IMP calls this to change the value of a cell. Can be NULL if never returns IMPGHOST_ENABLE */ + int (*compare) ( int column, void *value1, void *value2 ); /* Comparision Function. IMP calls this when sorting by column. Return value is simialr to QSort: 0 means identical, -1 means value1 < value2, and 1 means value1 > value2. Can be NULL */ + + int (*listCount) ( int column, int row, void * id ); /* For IMPCOLTYPE_LIST's, returns the number of items in the list; for other types this can be NULL. If item is LWI_NULL, return all possible items */ + const char * (*listName) ( int column, int row, void * id, int index ); /* For IMPCOLTYPE_LIST's, returns the name of the index item in the list; for other types this can be NULL. If item is LWI_NULL or row is -1, return a complete list of all possible options */ + + int (*testItem) ( int column, int row, void * applied_id, void * queried_id ); /* For IMPCOLTYPE_ITEM, IMPCOLTYPE_IMAGE and IMPCOLTYPE_VMAP's, used to ask if this item id is OK for a particular item. Use this to limit the item list to only lights, for example */ + + int (*customDraw) ( int column, void *value, LWRasterID raster, int x, int y, int w, int h, IMPGhostModes ghosting ); /* Provides a raster that you can draw a custom icon in. Return 0 to have IMP draw the control itself; otherwise, return the optimal width for the column (for autosizing purposes). You can safely draw left of x and right w (it will be clipped by the column edge), but not above y or below h (it will corrupt other rows). */ + + void (*jumpTo) ( int column, int row, void * id ); /* Jump To function. This should present the standard interface for editing this option. For example, a Controller and Limits option could open the Motion Options panel */ + + LWXPanelID customPanel; /* XPanel interface used by IMPCOLTYPE_CUSTOM columns; others can leave this blank */ + + LWChannelID * (*texture) ( int column, int row, void * id, IMPEnvRequests request ); /* Texture Function. IMP handles textured cells differently from normal cells. Can be NULL if no texture allowed */ + void * (*texture_evaluate) ( int column, int row, void * id, LWTime time, double u, double v, void * value, int apply ); /* Evaluate Function. IMP calls this to change the value of a cell. Can be NULL if never returns IMPGHOST_ENABLE */ +} IMPColumn; + +typedef enum en_IMPBaseModes { /* The column's base should be one of these */ + IMPBASE_ITEM, /* Item-specific */ + IMPBASE_CHANNEL /* Channel-specific */ +} IMPBaseModes; + +/* + * IMPBank: + * Provides details about a bank + */ +typedef struct st_IMPBank { + LWID id; /* Bank ID. Use the MakeBankID() macro to convert a string into an ID. */ + char *title; /* Bank Title, as displayed in the Bank Popup */ + + IMPBaseModes base; /* Bank base. Determines what the bank acts on (ie: items or columns) */ + IMPColumn **columns; /* NULL-terminated array of columns in the bank */ + + int (*numRows ) ( LWID bank_id, void * id ); /* Num Rows Function. IMP calls this to ask how many rows this bank needs for this item ID */ + + void (*beginProcess ) ( LWID bank_id ); /* Called before IMP calls any query/evaluate functions. Use this to get bank-specific globals, init arrays, etc. */ + void (*endProcess ) ( LWID bank_id ); /* Called after IMP has called all the query/evalute functions. Use this to free whatever you got during beginProcess() */ +} IMPBank; + +/* + * IMPGlobal: + * This is returned by the IMP Global for use by your plug-in + */ +typedef struct st_IMPGlobal { + int (*registerBank) ( IMPBank *bank ); /* Register a new bank with IMP. You cannot register the same ID twice */ + int (*unregisterBank) ( LWID bank_id ); /* Unregister an existing bank from IMP. */ + + int (*registerBankMaster) ( const char *master_name ); /* Register a new bank master with IMP. This plug-in will be launched automatically when IMP is activated. Returns 1 on succes, -1 if already added and 0 on error */ + int (*unregisterBankMaster) ( const char *master_name ); /* Unregister a bank master. Returns 1 on succes, -1 if already added and 0 on error */ + + int (*refresh) (); /* Ask IMP to refresh it's interface */ + int (*command) ( const char *command_string ); /* Issue a command to IMP. Returns 0 on error */ + +} IMPGlobal; + +#endif + Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwanimlod.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwanimlod.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwanimlod.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,32 @@ +/* + * LWSDK Header File + * Copyright 1999, NewTek, Inc. + * + * LWANIMLOD.H -- LightWave Animation Loaders + */ +#ifndef LWSDK_ANIMLOD_H +#define LWSDK_ANIMLOD_H + +#include <lwimageio.h> +#include <lwhandler.h> + +#define LWANIMLOADER_HCLASS "AnimLoaderHandler" +#define LWANIMLOADER_ICLASS "AnimLoaderInterface" +#define LWANIMLOADER_VERSION 4 + +typedef struct st_LWAnimFrameAccess +{ + void *priv_data; + LWImageProtocolID (*begin) (void *, int type); + void (*done) (void *, LWImageProtocolID); +} LWAnimFrameAccess; + +typedef struct st_LWAnimLoaderHandler { + LWInstanceFuncs *inst; + int (*frameCount) (LWInstance); + double (*frameRate) (LWInstance); + double (*aspect) (LWInstance, int *w, int *h, double *pixAspect); + void (*evaluate) (LWInstance, double, LWAnimFrameAccess *); +} LWAnimLoaderHandler; + +#endif Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwanimsav.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwanimsav.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwanimsav.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,38 @@ +/* + * LWSDK Header File + * Copyright 1999, NewTek, Inc. + * + * LWANIMSAV.H -- LightWave Animation Saver + */ +#ifndef LWSDK_ANIMSAV_H +#define LWSDK_ANIMSAV_H + +#include <lwhandler.h> +#include <lwrender.h> + +#define LWANIMSAVER_HCLASS "AnimSaverHandler" +#define LWANIMSAVER_ICLASS "AnimSaverInterface" +#define LWANIMSAVER_VERSION 4 + +typedef struct st_LWAnimSaverHandler +{ + LWInstanceFuncs *inst; + LWItemFuncs *item; + int type; + LWError (*open) (LWInstance, int w, int h, const char *filename); + void (*close) (LWInstance); + LWError (*begin) (LWInstance); + LWError (*write) (LWInstance, const void *R, const void *G, const void *B, const void *alpha); + +} LWAnimSaverHandler; + +/* + * The saver selects what kind of data it wants with the 'type' field. + * The value of that field selects the type of the data that will be + * passed to the 'write' function. + */ +#define LWAST_UBYTE 0 +#define LWAST_FLOAT 1 + +#endif + Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwanimuv.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwanimuv.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwanimuv.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,31 @@ +/* + * LWSDK Header File + * Copyright 2003, NewTek, Inc. + * + * LWANIMUV.H -- LightWave Animation UV + * + * Jamie L. Finch + * Senile Programmer + */ +#ifndef LWSDK_ANIMUV_H +#define LWSDK_ANIMUV_H + +#include <lwrender.h> + +#define LWANIMUV_HCLASS "AnimUVHandler" +#define LWANIMUV_ICLASS "AnimUVInterface" +#define LWANIMUV_GCLASS "AnimUVGizmo" +#define LWANIMUV_VERSION 4 + +typedef struct st_LWAnimUVHandler { + LWInstanceFuncs *inst; + LWItemFuncs *item; + int (*GetOptions)( LWInstance, char * ); + int (*SetOptions)( LWInstance, char * ); + int (*Begin )( LWInstance, char *, double, int, int, int ); + int (*Evaluate )( LWInstance, int, double * ); + int (*End )( LWInstance ); +} LWAnimUVHandler; + +#endif + Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcamera.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcamera.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcamera.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,57 @@ +/* + * LWSDK Header File + * Copyright 2005, NewTek, Inc. + * + * LWCAMERA.H -- LightWave Camera + */ +#ifndef LWSDK_CAMERA_H +#define LWSDK_CAMERA_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <lwhandler.h> +#include <lwrender.h> + + +#define LWCAMERA_HCLASS "CameraHandler" +#define LWCAMERA_ICLASS "CameraInterface" +#define LWCAMERA_GCLASS "CameraGizmo" +#define LWCAMERA_VERSION 2 + +typedef struct st_LWCameraAccess +{ + LWItemID cameraID; + LWDVector worldPos; + LWDVector toWorld[3]; + LWDVector toCamera[3]; + double filmSize[2]; +} LWCameraAccess; + +typedef struct st_LWCameraHandler +{ + LWInstanceFuncs* inst; + LWItemFuncs* item; + LWRenderFuncs* rend; + int (*preview) (LWInstance, double lpx, double lpy, LWDMatrix4 projection, const LWCameraAccess* camaccess); + LWError (*newFrame) (LWInstance, const LWFrameInfo* frameinfo, const LWCameraAccess* camaccess); + int (*evaluate) (LWInstance, double fpx, double fpy, double lpx, double lpy, double fractime, LWCameraRay* ray, const LWCameraAccess* camaccess); + unsigned int (*flags) (LWInstance); +} LWCameraHandler; + +// Camera handler evaluation return values +#define LWCAMTYPEEVAL_NO_RAY 0 +#define LWCAMTYPEEVAL_RAY 1 +#define LWCAMTYPEEVAL_DO_DEF_INTERP 3 + +// Camera handler flags +#define LWCAMTYPEF_SUPPORTSDOF (1 << 0) +#define LWCAMTYPEF_SUPPORTSSTEREO (1 << 1) + + +#ifdef __cplusplus +} +#endif + +#endif Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwchange.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwchange.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwchange.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,29 @@ +/* + * LWSDK Header File + * Copyright 2007, NewTek, Inc. + * + * LWCHANGE.H -- LightWave change. + */ + +#ifndef LWSDK_CHANGE_H +#define LWSDK_CHANGE_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <lwrender.h> + +#define LWCHANGEFUNCS_GLOBAL "Change Functions" + +typedef struct st_lwchangefuncs { + int (*getObjectChangedState)( LWItemID ); /* Gets object save state. */ + int (*getSceneChangedState )( void ); /* Gets scene save state. */ + int (*anyChangesAtAll )( void ); /* Checks for any changes at all in scene. */ +} LWCHANGEFUNCS; + +#ifdef __cplusplus +} +#endif + +#endif Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwchannel.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwchannel.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwchannel.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,36 @@ +/* + * LWSDK Header File + * Copyright 1999, NewTek, Inc. + * + * LWCHANNEL.H -- LightWave Channel Filters + */ +#ifndef LWSDK_CHANNEL_H +#define LWSDK_CHANNEL_H + +#include <lwrender.h> +#include <lwtypes.h> + +#define LWCHANNEL_HCLASS "ChannelHandler" +#define LWCHANNEL_ICLASS "ChannelInterface" +#define LWCHANNEL_GCLASS "ChannelGizmo" +#define LWCHANNEL_VERSION 4 + + +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; + +typedef struct st_LWChannelHandler { + LWInstanceFuncs *inst; + LWItemFuncs *item; + void (*evaluate) (LWInstance, const LWChannelAccess *); + unsigned int (*flags) (LWInstance); +} LWChannelHandler; + +#endif Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcmdseq.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcmdseq.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcmdseq.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,48 @@ +#ifndef LWSDK_CMDSEQ_H +#define LWSDK_CMDSEQ_H + +/* + * LWSDK Header File + * Copyright 1999, NewTek, Inc. + * + * LWCMDSEQ.H -- LightWave CommandSequence Server + * + * This header contains the types and declarations for the Modeler + * CommandSequence class. + */ + +#include <lwdyna.h> +#include <lwtypes.h> +#include <lwmeshedt.h> + +#define LWMODCOMMAND_CLASS "CommandSequence" +#define LWMODCOMMAND_VERSION 3 + + +typedef struct st_LWModCommand +{ + void *data; + const char *argument; + LWCommandCode (*lookup) (void *, const char *cmdName); + int (*execute) (void *, LWCommandCode cmd, int argc, const DynaValue *argv, EltOpSelect, DynaValue *result); + MeshEditBegin* editBegin; + int (*evaluate) (void *, const char *command); + + void (*undoGroupBegin) (void); + void (*undoGroupEnd) (void); + + MeshEditBegin2 *editBegin2; + +} LWModCommand; + +#define CSERR_NONE 0 +#define CSERR_MEMORY 1 +#define CSERR_IO 2 +#define CSERR_USERABORT 4 +#define CSERR_ARGCOUNT 2901 +#define CSERR_ARGTYPE 2902 +#define CSERR_ARGVALUE 2903 +#define CSERR_OPFAILURE 2904 +#define CSERR_BADSEL 2905 + +#endif Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcolorspace.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcolorspace.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcolorspace.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,104 @@ +/* + * LWSDK Header File + * Copyright 2003, NewTek, Inc. + * + * LWCOLORSPACE.H -- LightWave Color Space + * + * Jamie L. Finch + * Senile Programmer + */ + +#ifndef LWSDK_COLORSPACE_H +#define LWSDK_COLORSPACE_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define LWCOLORSPACEFUNCS_GLOBAL "LWColorSpace" + +typedef enum en_lwcolorspace { + lwcs_linear = 0, /*!< LightWave linear color space. */ + lwcs_sRGB, /*!< Standard RGB color space. */ + lwcs_rec709, /*!< Recommendation BT.709, HDTV. */ + lwcs_cineon, /*!< Eastman Kodak Co. */ + lwcs_ciexyz, /*!< CIE XYZ. */ + lwcs_sizeof +} LWCOLORSPACE; + +typedef enum en_lwcolorspacetypes { + lwcst_viewer = 0, /*!< Viewer color space. */ + lwcst_surface_color, /*!< Surface color space. */ + lwcst_palette_files, /*!< Palette files color space. */ + lwcst_8bit_files, /*!< 8 bit files color space. */ + lwcst_float_files, /*!< Float files color space. */ + lwcst_alpha_files, /*!< Alpha files color space. */ + lwcst_output, /*!< Output files color space. */ + lwcst_output_alpha, /*!< Alpha files color space. */ + lwcst_sizeof +} LWCOLORSPACETYPES; + +typedef enum en_lwcolorspaceconversion { + lwcsc_colorspaceToLinear = 0, /*!< Convert from non-linear to linear. */ + lwcsc_linearToColorspace, /*!< Convert from linear to non-linear. */ + lwcsc_sizeof +} LWCOLORSPACECONVERSION; + +typedef enum en_lwcolorspacelayer { + lwcsl_RGB = 0, /*!< RGB Channel. */ + lwcsl_Alpha, /*!< Alpha Channel. */ + lwcsl_sizeof +} LWCOLORSPACELAYER; + +/** + * struct st_lwimagelookup * + * + * Is a forward reference to the internal lw instance structure ( defined internally ). + * This is used instead of a void * pointer. + */ + +typedef void LWPIXELCONVERSIONRGB( struct st_lwimagelookup *, float *, float * ); /*!< Conversion function prototype. */ +typedef void LWPIXELCONVERSIONALPHA( struct st_lwimagelookup *, float *, float * ); /*!< Conversion function prototype. */ + +/** + * Color space functions. + * + * Color spaces file references are save in the scene file if they are used, + * in the viewer, color space file defaults or in a LWO from the image viewer. + */ + +typedef struct st_lwcolorspacefuncs { + + /* These function are used to get the color space of a loaded converter or load one from the disk. */ + + LWCOLORSPACE (*nameToColorSpace )( char * ); /*!< Color space name. */ + LWCOLORSPACE (*loadPixelLookupTable )( char * ); /*!< File name. */ + + /* These functions are used to get the pixel conversion functions. */ + + LWPIXELCONVERSIONRGB *(*getPixelConversionRGB )( LWCOLORSPACE, LWCOLORSPACECONVERSION, struct st_lwimagelookup ** ); + LWPIXELCONVERSIONALPHA *(*getPixelConversionAlpha)( LWCOLORSPACE, LWCOLORSPACECONVERSION, struct st_lwimagelookup ** ); + + /* These functions are used to get color space names and file names, based on type. */ + + const char *(*colorSpaceName )( LWCOLORSPACETYPES ); /*!< Gets the name of the current color space of the type selected. */ + const char *(*colorSpaceFile )( LWCOLORSPACETYPES ); /*!< Gets the file of the current color space of the type selected. */ + + /* These functions are used in pop-ups. */ + + int (*numberOfColorSpaces )( LWCOLORSPACELAYER ); /*!< Gets the number of loaded color spaces in the layer. */ + const char *(*nameOfColorSpaces )( LWCOLORSPACELAYER, int);/*!< Gets the name of the color space in the layer. */ + LWCOLORSPACE (*indexToColorSpace )( LWCOLORSPACELAYER, int);/*!< Used to convert from indexes of pop-ups to color spaces. */ + int (*colorSpaceToIndex )( LWCOLORSPACELAYER, LWCOLORSPACE ); + + /* This functions is to change the currently selected color space. */ + + int (*setColorSpace )( LWCOLORSPACETYPES, LWCOLORSPACE ); + +} LWColorSpaceFuncs; + +#ifdef __cplusplus +} +#endif + +#endif Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcomring.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcomring.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcomring.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,30 @@ +#ifndef LWSDK_COMRING_H +#define LWSDK_COMRING_H + +/* + * LWSDK Header File + * Copyright 2003, NewTek, Inc. + * + * LWCOMRING.H -- LightWave Communications Ring + * + * This header contains declarations necessary to engage in a + * communications ring among plug-ins + */ + +#define LWCOMRING_GLOBAL "LW Communication Ring" + +typedef void (*RingEvent) (void *clientData,void *portData,int eventCode,void *eventData); + +typedef struct st_LWComRing +{ + int (*ringAttach) (char *topic,LWInstance pidata,RingEvent eventCallback); + void (*ringDetach) (char *topic,LWInstance pidata); + void (*ringMessage) (char *topic,int eventCode,void *eventData); +} LWComRing; + +#define LW_PLUGIN_LIMBO_STATES "LW Plugin Limbo States" + +#define LW_LIMBO_START 0x00000001 +#define LW_LIMBO_END 0x00000002 + +#endif Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcustobj.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcustobj.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwcustobj.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,87 @@ +/* + * LWSDK Header File + * Copyright 1999, NewTek, Inc. + * + * LWCUSTOBJ.H -- LightWave Custom Objects + */ +#ifndef LWSDK_CUSTOBJ_H +#define LWSDK_CUSTOBJ_H + +#include <lwrender.h> + +#define LWCUSTOMOBJ_HCLASS "CustomObjHandler" +#define LWCUSTOMOBJ_ICLASS "CustomObjInterface" +#define LWCUSTOMOBJ_GCLASS "CustomObjGizmo" +#define LWCUSTOMOBJ_VERSION 5 + +typedef struct st_LWCustomObjAccess +{ + int view; + int flags; + void *dispData; + void (*setColor) (void *, float rgba[4]); + void (*setPattern) (void *, int lpat); + void (*setTexture) (void *, int, unsigned char *); + void (*setUVs) (void *, double[2], double[2], double[2], double[2]); + void (*point) (void *, double[3], int csys); + void (*line) (void *, double[3], double[3], int csys); + void (*triangle) (void *, double[3], double[3], double[3], int csys); + void (*quad) (void *, double[3], double[3], double[3], double[3], int csys); + void (*circle) (void *, double[3], double, int csys); + void (*text) (void *, double[3], const char *, int just, int csys); + LWDVector viewPos, viewDir; + void (*setCSysItem)(void *, LWItemID item); + void (*polygon) (void *, unsigned int numv, double[][3], int csys); + void (*polyIndexed)(void *, unsigned int numv, unsigned int verts[], double[][3], int csys); + void (*setDrawMode)(void *, unsigned int mode); + void (*disk) (void *, double[3], double, int csys); + void (*setPart) (void *, unsigned int part); + +} LWCustomObjAccess; + +#define LWVIEW_ZY 0 +#define LWVIEW_XZ 1 +#define LWVIEW_XY 2 +#define LWVIEW_PERSP 3 +#define LWVIEW_LIGHT 4 +#define LWVIEW_CAMERA 5 +#define LWVIEW_SCHEMA 6 + +#define LWCOFL_SELECTED (1<<0) +#define LWCOFL_PICKING (1<<1) +#define LWLPAT_SOLID 0 +#define LWLPAT_DOT 1 +#define LWLPAT_DASH 2 +#define LWLPAT_LONGDOT 3 + +#define LWCSYS_WORLD 0 +#define LWCSYS_OBJECT 1 +#define LWCSYS_ICON 2 +#define LWCSYS_VIEWPORT 3 + +#define LWJUST_LEFT 0 +#define LWJUST_CENTER 1 +#define LWJUST_RIGHT 2 + +#define LWDRAWMODE_CULLFACE (1<<0) +#define LWDRAWMODE_OUTLINE (1<<1) +#define LWDRAWMODE_DEPTHTEST (1<<2) +#define LWDRAWMODE_DEPTHWRITE (1<<3) + + +typedef struct st_LWCustomObjHandler +{ + LWInstanceFuncs *inst; + LWItemFuncs *item; + LWRenderFuncs *rend; + void (*evaluate) (LWInstance, const LWCustomObjAccess *); + unsigned int (*flags) (LWInstance); + +} LWCustomObjHandler; + +#define LWCOF_SCHEMA_OK (1<<0) +#define LWCOF_VIEWPORT_INDEX (1<<1) +#define LWCOF_NO_DEPTH_BUFFER (1<<2) +#define LWCOF_OVERLAY (1<<3) + +#endif Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdialog.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdialog.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdialog.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,57 @@ +/* + * LWSDK Header File + * Copyright 1999, NewTek, Inc. + * + * LWDIALOG.H -- LightWave Standard Dialogs + * + * LightWave makes some of its more common requests from the user using + * standard dialogs. These dialogs (or "requesters") are used for getting + * files and paths for saving and loading, and for getting color choices. + * By default, the standard system dialogs are used, but these can be + * overridden by plug-ins of the right class. + */ +#ifndef LWSDK_DIALOG_H +#define LWSDK_DIALOG_H + + +/* + * File dialogs can be configured by servers of this class. + */ +#define LWFILEREQ_CLASS "FileRequester" +#define LWFILEREQ_VERSION 3 + +typedef struct st_LWFileReqLocal { + int reqType; + int result; + const char *title; + const char *fileType; + char *path; + char *baseName; + char *fullName; + int bufLen; + int (*pickName)( void ); +} LWFileReqLocal; + +#define FREQ_LOAD 1 +#define FREQ_SAVE 2 +#define FREQ_DIRECTORY 3 +#define FREQ_MULTILOAD 4 + + +/* + * Color dialogs can be configured by servers of this class. + */ +#define LWCOLORPICK_CLASS "ColorPicker" +#define LWCOLORPICK_VERSION 5 /* This version means your need to supply your own color correction. */ + +typedef void LWHotColorFunc( void *data, float r, float g, float b ); + +typedef struct st_LWColorPickLocal { + int result; + const char *title; + float red, green, blue; + void *data; + LWHotColorFunc *hotFunc; +} LWColorPickLocal; + +#endif Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdisplay.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdisplay.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdisplay.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,75 @@ +/* + * LWSDK Header File + * Copyright 1999, NewTek, Inc. + * + * LWDISPLAY.H -- LightWave Host Display Info + * + * The host application provides a variety of services for getting user + * input, but if all else fails the plug-in may need to open windows. + * Since it runs in the host's context, it needs to get the host's display + * information to do this. This info, which can be normally accessed + * with the "Host Display Info" global service, contains information about + * the windows and display context used by the host. If this ID yeilds a + * null pointer, the server is probably running in a batch mode and has no + * display context. + */ +#ifndef LWSDK_DISPLAY_H +#define LWSDK_DISPLAY_H + +#ifdef _MSWIN + #ifndef _WIN32_WINNT + #define _WIN32_WINNT 0x0400 + #endif + #include <windows.h> +#endif + +#ifdef _XGL + #include <X11/Xlib.h> +#endif + +#if defined( _MACOS) + #if defined( __MACH__) + #include <ApplicationServices/ApplicationServices.h> + #else + #include <Quickdraw.h> + #endif +#endif + + +/* + * The fields of the HostDisplayInfo structure vary from system to system, + * but all include the window pointer of the main application window or + * null if there is none. On X systems, the window session handle is + * passed. On Win32 systems, the application instance is provided, even + * though it belongs to the host and is probably useless. + */ +#define LWHOSTDISPLAYINFO_GLOBAL "Host Display Info" + +#if defined(_MACOS) && (defined(__OBJC__) || defined(__OBJCPP__)) + /* when using this header for _MACOS, compile your source as Objective C or Objective CPP */ + @class LWSDKView; +#endif + +typedef struct st_HostDisplayInfo { + #ifdef _MSWIN + HANDLE instance; + HWND window; + #endif + #ifdef _XGL + Display *xsys; + Window window; + #endif + #ifdef _MACOS + #if defined(__OBJC__) || defined(__OBJCPP__) + union { + WindowPtr window; /* for Carbon-based host pre 9.6.1*/ + LWSDKView *view; /* Cocoa-based host 9.6.1+ */ + } host; + #else + WindowPtr window; /* for Carbon-based host pre 9.6.1*/ + #endif + #endif +} HostDisplayInfo; + +#endif + Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdisplce.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdisplce.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdisplce.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,42 @@ +/* + * LWSDK Header File + * Copyright 1999, NewTek, Inc. + * + * LWDISPLCE.H -- LightWave Vertex Displacements + */ +#ifndef LWSDK_DISPLCE_H +#define LWSDK_DISPLCE_H + +#include <lwrender.h> +#include <lwmeshes.h> + +#define LWDISPLACEMENT_HCLASS "DisplacementHandler" +#define LWDISPLACEMENT_ICLASS "DisplacementInterface" +#define LWDISPLACEMENT_GCLASS "DisplacementGizmo" +#define LWDISPLACEMENT_VERSION 5 + + +typedef struct st_LWDisplacementAccess { + LWDVector oPos; + LWDVector source; + LWPntID point; + LWMeshInfo *info; + LWDVector wNorm; +} LWDisplacementAccess; + +typedef struct st_LWDisplacementHandler { + LWInstanceFuncs *inst; + LWItemFuncs *item; + LWRenderFuncs *rend; + void (*evaluate) (LWInstance, LWDisplacementAccess *); + unsigned int (*flags) (LWInstance); +} LWDisplacementHandler; + +#define LWDMF_WORLD (1<<0) +#define LWDMF_BEFOREBONES (1<<1) +#define LWDMF_AFTERMORPH (1<<2) +#define LWDMF_NEED_NORMALS (1<<3) +#define LWDMF_LAST (1<<4) + +#endif + Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdopetrack.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdopetrack.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdopetrack.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,169 @@ +/* + * LWSDK Header File + * Copyright 2004, NewTek, Inc. + * + * LWDOPETRACK.H -- Layout Dopetrack Interface + * + * This header contains declarations that allow a Tool-class plug-in + * to take over most of the functionality of the Layout Dopetrack + */ +#ifndef LWSDK_DOPETRACK_H +#define LWSDK_DOPETRACK_H + +#include <lwtypes.h> +#include <lwenvel.h> + +#define LWDOPETRACK_GLOBAL "Dopetrack Proxy" + +#ifndef RGB_ +#define RGB_(r,g,b) (((r) << 16) | ((b) << 8) | (g)) +#endif + +#define TIME_MARKER ((LWTime)99999.0) + +typedef enum +{ + DTOPMODE_CHANNEL = 0, + DTOPMODE_GLOBAL +} DTOperatingMode; + +typedef enum +{ + DTEVENT_KEYFUNCTION, + DTEVENT_EDITSTATECHANGE, + DTEVENT_BAKEZONECHANGE, + DTEVENT_UNDO, + DTEVENT_REDO +} DTEventType; + +typedef enum +{ + DTACTION_SELECT, + DTACTION_SHIFT, + DTACTION_SHIFT_COPY, + DTACTION_CREATE_KEY, + DTACTION_DELETE_KEY +} DTKeyAction; + +typedef enum +{ + DTMOUSE_DOWN, + DTMOUSE_MOVE, + DTMOUSE_UP +} DTMouseEvent; + +typedef struct _dtevent_mouse_st +{ + DTMouseEvent event; + int context; // 0=left margin, 1=right margin + int x,y; // relative to drawing area + int w,h; // dimensions of drawing area + int button; // 0=left, 1=right, 2=middle + int count; // click count: 1=single, 2=double, etc. +} DTMouseParam, *DTMouseParamID; + +typedef struct _dtevent_keyselect_st +{ + int count; + LWTime *indices; // list of time indices effected + LWTime offset; // shift offset of time indices (if DTACTION_SHIFT/DTACTION_SHIFT_COPY) +} DTKeySelect, *DTKeySelectID; + +typedef struct _dtevent_bakezone_st +{ + int count; + + // parallel arrays + int *start_frame,*end_frame; + LWTime *start_time,*end_time; + int *selected; +} DTBakeZone, *DTBakeZoneID; + +typedef struct _dteventparam_st +{ + DTEventType event; + int value; + LWTime offset; +} DTEventParam, *DTEventParamID; + +// menu management functions + +typedef int (*DTMenuCount)(int); +typedef int (*DTMenuSub)(int,int); +typedef int * (*DTMenuSep)(int); +typedef int (*DTMenuEnable)(int,int); +typedef const char * (*DTMenuItem)(int,int); +typedef void (*DTMenuSelect)(int,int); +typedef int (*DTMenuInitial)(void); + +// events on the dopetrack + +typedef void (*DTUserEvent)(DTEventParamID); +typedef int (*DTAllow)(DTKeyAction); +typedef void (*DTMouse)(DTMouseParamID); + +typedef struct _dtmenucallbacks +{ + DTMenuCount menuCount; + DTMenuSub menuSubMenu; + DTMenuSep menuSep; + DTMenuEnable menuEnable; + DTMenuItem menuItem; + DTMenuSelect menuSelect; + DTMenuInitial menuInitial; +} DTMenuCallbacks, *DTMenuCallbacksID; + +typedef struct _dttoolcallbacks +{ + DTUserEvent userEvent; + DTAllow allow; + DTMouse mouseEvent; + DTMenuCallbacks menu; +} DTToolCallbacks, *DTToolCallbacksID; + +typedef struct _dtdrawcallbacks +{ + int *(*context)(int side); // 0=left margin, 1=right margin + void (*erase)(int x,int y,int w,int h); + void (*pixel)(int x,int y,int color); // use RGB_() to construct color + void (*line)(int x1,int y1,int x2,int y2,int color); + void (*rectOutline)(int x,int y,int w,int h,int color); + void (*rectFilled)(int x,int y,int w,int h,int bcolor,int fcolor); + void (*border)(int x,int y,int w,int h); + void (*divider)(int x,int y,int w); + void (*text)(int x,int y,int color,const char *text); + void (*text_box)(int x,int y,int w,int h,const char *text); + void (*button)(int x,int y,int w,int h,int color); + void (*flush)(void); +} DTDrawFuncs, *DTDrawFuncsID; + +typedef struct st_LWDopetrackProxy +{ + void (*toolRegister)(DTToolCallbacksID); + void (*toolRelease)(void); + + void (*exposeEnvelopes)(LWEnvelopeID *,const char **,int *); + void (*refreshDisplay)(void); + + DTKeySelectID (*querySelectedKeys)(void); + void (*querySelection)(LWTime *,LWTime *); + + const LWTime *(*queryMarkers)(void); + void (*addMarker)(LWTime); + void (*remMarker)(LWTime); + + DTBakeZoneID (*queryBakeZones)(void); + void (*addBakeZone)(LWTime,LWTime); + void (*remBakeZone)(LWTime,LWTime); + + DTOperatingMode (*queryOpMode)(void); + + void (*displayMenu)(DTMenuCallbacksID); + + int (*visible)(void); + + DTDrawFuncs drawfuncs; +} LWDopetrackProxy, *LWDopetrackProxyID; + +#endif + Added: trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdyna.h =================================================================== --- trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdyna.h (rev 0) +++ trunk/LightwaveExport/deps/lwdsdk10.0/include/lwdyna.h 2011-06-22 16:58:34 UTC (rev 2980) @@ -0,0 +1,204 @@ +/* + * LWSDK Header File + * Copyright 1999, NewTek, Inc. + * + * LWDYNA.H -- LightWave DynaTypes + * + * This header defines the types and macros for simple DynaTypes. + */ +#ifndef LWSDK_DYNA_H +#define LWSDK_DYNA_H + +#include <stddef.h> +#include <lwmonitor.h> +#include <lwxpanel.h> + + +/* + * DynaType codes. + */ +typedef int DynaType; + +#define DY_NULL 0 +#define DY_STRING 1 +#define DY_INTEGER 2 +#define DY_FLOAT 3 +#define DY_DISTANCE 4 +#define DY_VINT 5 +#define DY_VFLOAT 6 +#define DY_VDIST 7 +#define DY_BOOLEAN 8 +#define DY_CHOICE 9 +#define DY_SURFACE 10 +#define DY_FONT 11 +#define DY_TEXT 12 +#define DY_LAYERS 13 +#define DY_CUSTOM 14 +#define DY_RANGE 15 +#define DY_LWITEM 16 +#define DY_PERCENT 17 +#define DY_POPUP 18 +#define DY_AREA 19 +#define DY_XPANEL 20 +#define DY_TREE 21 +#define DY_MLIST 22 +#define DY_POINTER 23 +#define DY__LAST DY_POINTER + + +/* + * DynaValue union. + */ +typedef struct st_DyValString { + DynaType type; + char *buf; + int bufLen; +} DyValString; + +typedef struct st_DyValInt { + DynaType type; + int value; + int defVal; +} DyValInt; + +typedef struct st_DyValFloat { + DynaType type; + double value; + double defVal; +} DyValFloat; + +typedef struct st_DyValIVector { + DynaType type; + int val[3]; + int defVal; +} DyValIVector; + +typedef struct st_DyValFVector { + DynaType type; + double val[3]; + double defVal; +} DyValFVector; + +typedef struct st_DyValCustom { + DynaType type; + size_t val[4]; +} DyValCustom; + +typedef struct st_DyValPointer { + DynaType type; + void *ptr; +} DyValPointer; + +typedef union un_DynaValue { + DynaType type; + DyValStr... [truncated message content] |