- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Examples

# exampleMRampAttribute.cpp

    //
    //-
    // ==========================================================================
    // Copyright 1995,2006,2008 Autodesk, Inc. All rights reserved.
    //
    // Use of this software is subject to the terms of the Autodesk
    // license agreement provided at the time of installation or download,
    // or which otherwise accompanies this software in either electronic
    // or hard copy form.
    // ==========================================================================
    //+
    //

    #include <maya/MIOStream.h>

    #include <maya/MPxNode.h>
    #include <maya/MFnPlugin.h>
    #include <maya/MString.h>
    #include <maya/MTypeId.h>
    #include <maya/MPlug.h>
    #include <maya/MRampAttribute.h>

    class exampleRampAttrNode : public MPxNode
    {
    public:
        exampleRampAttrNode() {};
        virtual        ~exampleRampAttrNode() {};
        static  void   *creator();
        static  MStatus initialize();
        virtual MStatus compute(const MPlug &plug, MDataBlock  &dataBlock);

        static MObject input1;
        static MObject input2;
        static MTypeId  id;

    };

    MTypeId exampleRampAttrNode::id( 0x81027 );

    MObject exampleRampAttrNode::input1;
    MObject exampleRampAttrNode::input2;

    void *exampleRampAttrNode::creator()
    {
       return((void *) new exampleRampAttrNode);
    }

    MStatus exampleRampAttrNode::initialize()
    {
        MStatus stat;

        MString curveRamp("curveRamp");
        MString cvr("cvr");
        MString colorRamp("colorRamp");
        MString clr("clr");

        input1 = MRampAttribute::createCurveRamp(curveRamp, cvr);
        input2 = MRampAttribute::createColorRamp(colorRamp, clr);

        stat = addAttribute(input1);
        if(!stat)
        {
            cout << "ERROR in adding curveRamp Attribute!\n";
        }
        stat = addAttribute(input2);
        if(!stat)
        {
            cout << "ERROR in adding colorRamp Attribute!\n";
        }

        return stat;
    }

    MStatus exampleRampAttrNode::compute( const MPlug &plug, MDataBlock  &dataBlock )
    {
        return(MStatus::kSuccess);
    }

    MStatus initializePlugin(MObject obj)
    {
        MStatus   status;
        MFnPlugin plugin(obj, PLUGIN_COMPANY, "7.0", "Any");

        status = plugin.registerNode("exampleRampAttrNode", exampleRampAttrNode::id,
                exampleRampAttrNode::creator, exampleRampAttrNode::initialize);
        if (!status)
        {
            status.perror("registerNode");
            return status;
        }

        return status;
    }

    MStatus uninitializePlugin(MObject obj)
    {
        MStatus   status;
        MFnPlugin plugin(obj);

        status = plugin.deregisterNode(exampleRampAttrNode::id);
        if (!status)
        {
            status.perror("deregisterNode");
            return status;
        }

        return status;
    }