diff options
| author | Ben Marsh <[email protected]> | 2019-10-22 09:07:59 -0400 |
|---|---|---|
| committer | Ben Marsh <[email protected]> | 2019-10-22 09:07:59 -0400 |
| commit | bd0027e737c6512397f841c22786274ed74b927f (patch) | |
| tree | f7ffbdb8f3741bb7f24635616cc189cba5cb865c /mayaPlug/pluginImpl.h | |
| download | archived-shave-and-a-haircut-bd0027e737c6512397f841c22786274ed74b927f.tar.xz archived-shave-and-a-haircut-bd0027e737c6512397f841c22786274ed74b927f.zip | |
Adding Shave-and-a-Haircut 9.6
Diffstat (limited to 'mayaPlug/pluginImpl.h')
| -rw-r--r-- | mayaPlug/pluginImpl.h | 181 |
1 files changed, 181 insertions, 0 deletions
diff --git a/mayaPlug/pluginImpl.h b/mayaPlug/pluginImpl.h new file mode 100644 index 0000000..cb5fda1 --- /dev/null +++ b/mayaPlug/pluginImpl.h @@ -0,0 +1,181 @@ +#ifndef pluginImpl_h +#define pluginImpl_h + +// Shave and a Haircut +// (c) 2019 Epic Games +// US Patent 6720962 + +// +// Some macros to make the source code a bit more readable. +// +#define REGISTER_CMD(cmd) \ + st = plugin.registerCommand( \ + cmd::commandName, cmd::createCmd, cmd::createSyntax \ + ); \ + if (!st) \ + { \ + MGlobal::displayError( \ + MString("registering the '") + cmd::commandName \ + + "' command: " + st.errorString() \ + ); \ + shaveUninitializePlugin(obj); \ + RETURN(st); \ + } \ + cmd##_isRegistered = true; + + +#define DEREGISTER_CMD(cmd) \ + if (cmd##_isRegistered) \ + { \ + cmd##_isRegistered = false; \ + st = plugin.deregisterCommand(cmd::commandName); \ + if (!st) \ + { \ + MGlobal::displayError( \ + MString("deregistering the '") + cmd::commandName \ + + "' command: " + st.errorString() \ + ); \ + RETURN(st); \ + } \ + } + + +#define REGISTER_CTX_CMD(cmd) \ + st = plugin.registerContextCommand( \ + cmd::commandName, cmd::createCmd \ + ); \ + if (!st) \ + { \ + MGlobal::displayError( \ + MString("registering the '") + cmd::commandName \ + + "' context command: " + st.errorString() \ + ); \ + shaveUninitializePlugin(obj); \ + RETURN(st); \ + } \ + cmd##_isRegistered = true; + + +#define DEREGISTER_CTX_CMD(cmd) \ + if (cmd##_isRegistered) \ + { \ + cmd##_isRegistered = false; \ + st = plugin.deregisterContextCommand(cmd::commandName); \ + if (!st) \ + { \ + MGlobal::displayError( \ + MString("deregistering the '") + cmd::commandName \ + + "' context command: " + st.errorString() \ + ); \ + RETURN(st); \ + } \ + } + + +#define REGISTER_DATA(data) \ + st = plugin.registerData(data::dataTypeName, data::dataTypeId, data::creator); \ + if (!st) \ + { \ + MGlobal::displayError( \ + MString("registering the '") + data::dataTypeName \ + + "' data type: " + st.errorString() \ + ); \ + RETURN(st); \ + } \ + data##_isRegistered = true; + + +#define DEREGISTER_DATA(data) \ + st = plugin.deregisterData(data::dataTypeId); \ + if (!st) \ + { \ + data##_isRegistered = false; \ + MGlobal::displayError( \ + MString("deregistering the '") + data::dataTypeName \ + + "' data type: " + st.errorString() \ + ); \ + RETURN(st); \ + } \ + +#define REGISTER_NODE(node,type,classification) \ + st = plugin.registerNode( \ + node::nodeTypeName, \ + node::id, \ + node::creator, \ + node::initialize, \ + MPxNode::type, \ + classification \ + ); \ + if (!st) \ + { \ + MGlobal::displayError( \ + MString("registering the '") + node::nodeTypeName \ + + "' node: " + st.errorString() \ + ); \ + shaveUninitializePlugin(obj); \ + RETURN(st); \ + } \ + node##_isRegistered = true; \ + + +#define DEREGISTER_NODE(node) \ + if (node##_isRegistered) \ + { \ + node##_isRegistered = false; \ + st = plugin.deregisterNode(node::id); \ + if (!st) \ + { \ + MGlobal::displayError( \ + MString("deregistering the '") + node::nodeTypeName \ + + "' node: " + st.errorString() \ + ); \ + RETURN(st); \ + } \ + } + + +#define REGISTER_MANIP(node) \ + st = plugin.registerNode( \ + node::nodeTypeName, \ + node::id, \ + node::creator, \ + node::initialize, \ + MPxNode::kManipContainer \ + ); \ + if (!st) \ + { \ + MGlobal::displayError( \ + MString("registering the '") + node::nodeTypeName \ + + "' manip: " + st.errorString() \ + ); \ + shaveUninitializePlugin(obj); \ + RETURN(st); \ + } \ + node##_isRegistered = true; \ + +#define DEREGISTER_MANIP(node) DEREGISTER_NODE(node) + + +#define REGISTER_SHAPE(node,ui) \ + st = plugin.registerShape( \ + node::nodeTypeName, \ + node::id, \ + node::creator, \ + node::initialize, \ + ui::creator \ + ); \ + if (!st) \ + { \ + MGlobal::displayError( \ + MString("registering the '") + node::nodeTypeName \ + + "' shape: " + st.errorString() \ + ); \ + shaveUninitializePlugin(obj); \ + RETURN(st); \ + } \ + node##_isRegistered = true; \ + + +#define DEREGISTER_SHAPE(node) DEREGISTER_NODE(node) + +#endif |