aboutsummaryrefslogtreecommitdiff
path: root/mayaPlug/pluginImpl.h
diff options
context:
space:
mode:
authorBen Marsh <[email protected]>2019-10-22 09:07:59 -0400
committerBen Marsh <[email protected]>2019-10-22 09:07:59 -0400
commitbd0027e737c6512397f841c22786274ed74b927f (patch)
treef7ffbdb8f3741bb7f24635616cc189cba5cb865c /mayaPlug/pluginImpl.h
downloadarchived-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.h181
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