apiSimpleShape.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.
// ==========================================================================
//+

//
// apiSimpleShape.cpp
//

#include <math.h>           
#include <maya/MIOStream.h>

#include <maya/MFnPlugin.h>

#include <apiSimpleShape.h>           
#include <apiSimpleShapeUI.h>           
#include <apiSimpleShapeIterator.h>


//
// Shape implementation
//

MTypeId apiSimpleShape::id( 0x8009a );

apiSimpleShape::apiSimpleShape() {}

apiSimpleShape::~apiSimpleShape() {}

void* apiSimpleShape::creator()
//
// Description
//
//    Called internally to create a new instance of the users MPx node.
//
{
        return new apiSimpleShape();
}

MStatus apiSimpleShape::initialize()
//
// Description
//
//    Attribute (static) initialization.
//    See api_macros.h.
//
{ 
        return MS::kSuccess;
}


MPxGeometryIterator* apiSimpleShape::geometryIteratorSetup(MObjectArray& componentList,
                                                                                                        MObject& components,
                                                                                                        bool forReadOnly )
//
// Description
//
//    Creates a geometry iterator compatible with his shape.
//
// Arguments
//
//    componentList - list of components to be iterated
//    components    - component to be iterator
//    forReadOnly   -
//
// Returns
//
//    An iterator for the components
//
{
        apiSimpleShapeIterator * result = NULL;
        if ( components.isNull() ) 
        {
                result = new apiSimpleShapeIterator( getControlPoints(), componentList );
        }
        else 
        {
                result = new apiSimpleShapeIterator( getControlPoints(), components );
        }
        return result;
}

bool apiSimpleShape::acceptsGeometryIterator( bool writeable )
//
// Description
//
//    Specifies that this shape can provide an iterator for getting/setting
//    control point values.
//
// Arguments
//
//    writable - maya asks for an iterator that can set points if this is true
//
{
        return true;
}

bool apiSimpleShape::acceptsGeometryIterator( MObject&, bool writeable, bool forReadOnly )
//
// Description
//
//    Specifies that this shape can provide an iterator for getting/setting
//    control point values.
//
// Arguments
//
//    writable   - maya asks for an iterator that can set points if this is true
//    forReadOnly - maya asking for an iterator for querying only
//
{
        return true;
}

//
// Node registry
//
// Registers/Deregisters apiSimpleShape user defined shape.
//

MStatus initializePlugin( MObject obj )
{ 
        MFnPlugin plugin( obj, PLUGIN_COMPANY, "5.0", "Any");
        MStatus stat = plugin.registerShape( "apiSimpleShape", apiSimpleShape::id,
                                                                   &apiSimpleShape::creator,
                                                                   &apiSimpleShape::initialize,
                                                                   &apiSimpleShapeUI::creator  );
        if ( ! stat ) {
                cerr << "Failed to register shape\n";
        }

        return stat;
}

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

        stat = plugin.deregisterNode( apiSimpleShape::id );
        if ( ! stat ) {
                cerr << "Failed to deregister shape : apiSimpleShape \n";
        }

        return stat;
}

Autodesk® Maya® 2009 © 1997-2008 Autodesk, Inc. All rights reserved. Generated with doxygen 1.5.6