// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 #pragma once #include <boost/shared_ptr.hpp> #include <maya/MArgList.h> #include <maya/MFnDependencyNode.h> #include <maya/MIOStream.h> #include <maya/MPxCommand.h> #include <maya/MStatus.h> #include <maya/MString.h> #include "frantic/magma/maya/maya_magma_description.hpp" namespace frantic { namespace magma { namespace maya { namespace mel { /// /// Template Method Pattern /// class maya_magma_mel_interface : public MPxCommand { public: virtual ~maya_magma_mel_interface() = 0; MStatus doIt( const MArgList& args ); private: // TODO check do we support python command ? TODO change MFnDependencyNode to `const MFnDependencyNode &` virtual MStatus parseArgs( const MArgList& args, frantic::magma::maya::desc::maya_magma_desc_ptr desc, MFnDependencyNode& depNode ) = 0; }; } // namespace mel } // namespace maya } // namespace magma } // namespace frantic