aboutsummaryrefslogtreecommitdiff
path: root/mayaPlug/shaveCursorCtxCmd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mayaPlug/shaveCursorCtxCmd.cpp')
-rw-r--r--mayaPlug/shaveCursorCtxCmd.cpp106
1 files changed, 106 insertions, 0 deletions
diff --git a/mayaPlug/shaveCursorCtxCmd.cpp b/mayaPlug/shaveCursorCtxCmd.cpp
new file mode 100644
index 0000000..8a0032b
--- /dev/null
+++ b/mayaPlug/shaveCursorCtxCmd.cpp
@@ -0,0 +1,106 @@
+// Shave and a Haircut
+// (c) 2019 Epic Games
+// US Patent 6720962
+
+#include <maya/MArgParser.h>
+#include <maya/MString.h>
+#include <maya/MSyntax.h>
+
+#include "shaveCursorCtx.h"
+#include "shaveCursorCtxCmd.h"
+
+
+static const char* flBrushSize = "-brushSize";
+static const char* fsBrushSize = "-bs";
+static const char* flBrushStren = "-brushStren";
+static const char* fsBrushStren = "-br";
+static const char* flEnableFalloff = "-enableFalloff";
+static const char* fsEnableFalloff = "-ef";
+static const char* flInteractiveResize = "-interactiveResize";
+static const char* fsInteractiveResize = "-ir";
+
+
+shaveCursorCtxCmd::shaveCursorCtxCmd()
+: mCtx(0)
+{}
+
+
+shaveCursorCtxCmd::~shaveCursorCtxCmd()
+{}
+
+
+MStatus shaveCursorCtxCmd::appendSyntax()
+{
+ MSyntax s = syntax();
+
+ s.addFlag(fsBrushSize, flBrushSize, MSyntax::kDouble);
+ s.addFlag(fsBrushStren, flBrushStren, MSyntax::kDouble);
+ s.addFlag(fsEnableFalloff, flEnableFalloff, MSyntax::kBoolean);
+ s.addFlag(fsInteractiveResize, flInteractiveResize, MSyntax::kBoolean);
+
+ return MS::kSuccess;
+}
+
+
+MStatus shaveCursorCtxCmd::doEditFlags()
+{
+ if (mCtx)
+ {
+ MArgParser args = parser();
+
+ if (args.isFlagSet(fsBrushSize))
+ {
+ double size;
+ args.getFlagArgument(fsBrushSize, 0, size);
+ mCtx->setBrushSize((float)size);
+ }
+ if (args.isFlagSet(fsBrushStren))
+ {
+ double s;
+ args.getFlagArgument(fsBrushStren, 0, s);
+ mCtx->setBrushStren((float)s);
+ }
+ else if (args.isFlagSet(fsEnableFalloff))
+ {
+ bool enable;
+ args.getFlagArgument(fsEnableFalloff, 0, enable);
+ mCtx->enableFalloff(enable);
+ }
+ else if (args.isFlagSet(fsInteractiveResize))
+ {
+ bool enable;
+ args.getFlagArgument(fsInteractiveResize, 0, enable);
+ mCtx->resizeKeyPressed(enable);
+ }
+ }
+
+ return MS::kSuccess;
+}
+
+
+MStatus shaveCursorCtxCmd::doQueryFlags()
+{
+ if (mCtx)
+ {
+ MArgParser args = parser();
+
+ if (args.isFlagSet(fsBrushSize))
+ setResult(mCtx->getBrushSize());
+ if (args.isFlagSet(fsBrushStren))
+ setResult(mCtx->getBrushStren());
+ else if (args.isFlagSet(fsEnableFalloff))
+ setResult(mCtx->isFalloffEnabled());
+ else if (args.isFlagSet(fsInteractiveResize))
+ setResult(mCtx->isResizing());
+ }
+
+ return MS::kSuccess;
+}
+
+
+MPxContext* shaveCursorCtxCmd::makeObj()
+{
+ mCtx = createContext();
+
+ return mCtx;
+}