diff options
Diffstat (limited to 'mayaPlug/shaveCursorCtxCmd.cpp')
| -rw-r--r-- | mayaPlug/shaveCursorCtxCmd.cpp | 106 |
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; +} |