[cgkit-commits] SF.net SVN: cgkit: [133] maya/trunk/maya_wrapper/src_aux
Brought to you by:
mbaas
From: <mb...@us...> - 2006-10-18 13:45:24
|
Revision: 133 http://svn.sourceforge.net/cgkit/?rev=133&view=rev Author: mbaas Date: 2006-10-18 06:45:16 -0700 (Wed, 18 Oct 2006) Log Message: ----------- Added the pluginObject() function that retrieves the plugin object from the sourcepy plugin. Modified Paths: -------------- maya/trunk/maya_wrapper/src_aux/_main.cpp maya/trunk/maya_wrapper/src_aux/_main.h Modified: maya/trunk/maya_wrapper/src_aux/_main.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/_main.cpp 2006-10-18 13:43:19 UTC (rev 132) +++ maya/trunk/maya_wrapper/src_aux/_main.cpp 2006-10-18 13:45:16 UTC (rev 133) @@ -22,25 +22,32 @@ #include <maya/MObject.h> #include <Python.h> +#include "exceptions.h" +#include "data_exchange.h" /** - Cast a long value to an MObject. + Return the MObject that was passed to the C++ initializePlugin() function. - This function takes a long value and casts it to an MObject. - The only purpose of this function is to "recreate" the Python object - of the MObject that was passed to the Python plugin in its - initializePlugin() function. This way Python programs can use the - MFnPlugin function set and register plugin classes. + The pointer is obtained by retrieving the data exchange table where + the sourcepy plugin has stored the pointer. + A RuntimeError exception is thrown when the exchange table could not + be retrieved. - \param addr The address of an MObject object. - \return The object that \a addr was referencing. - \warning Only for internal use! (the function doesn't check if \a addr - really references a MObject) + \return The plugin object that was passed to initializePlugin() in the sourcepy plugin. */ -MObject toMObject(long addr) +MObject pluginObject() { - MObject* obj = (MObject*)addr; - return *obj; + static MObject* pluginobj = 0; + + if (pluginobj==0) + { + ExchangeTable* table = getExchangeTable(); + if (table==0) + throw ERuntimeError("Could not retrieve data exchange table to obtain the plugin object."); + + pluginobj = table->pluginobj; + } + return *pluginobj; } /** Modified: maya/trunk/maya_wrapper/src_aux/_main.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/_main.h 2006-10-18 13:43:19 UTC (rev 132) +++ maya/trunk/maya_wrapper/src_aux/_main.h 2006-10-18 13:45:16 UTC (rev 133) @@ -27,7 +27,7 @@ #include <maya/MObject.h> -MObject toMObject(long addr); +MObject pluginObject(); bool threadingEnabled(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |