// Shave and a Haircut // (c) 2019 Epic Games // US Patent 6720962 #include #include #include #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; }