#include "meshOpNode.h"
#include <maya/MFnTypedAttribute.h>
#include <maya/MFnMeshData.h>
#include <maya/MFnComponentListData.h>
#include <maya/MFnSingleIndexedComponent.h>
#include <maya/MFnEnumAttribute.h>
#include <maya/MGlobal.h>
#include <maya/MPlug.h>
#include <maya/MDataBlock.h>
#include <maya/MDataHandle.h>
#include <maya/MIOStream.h>
#define MCheckStatus(status,message) \
if( MStatus::kSuccess != status ) { \
cerr << message << "\n"; \
return status; \
}
MTypeId meshOpNode::id( 0x0008006B );
meshOpNode::meshOpNode()
{}
meshOpNode::~meshOpNode()
{}
{
MCheckStatus( status, "ERROR getting state" );
{
MCheckStatus(status,"ERROR getting inMesh");
MCheckStatus(status,"ERROR getting outMesh");
}
else
{
if (plug == outMesh)
{
MCheckStatus(status,"ERROR getting inMesh");
MCheckStatus(status,"ERROR getting outMesh");
MCheckStatus(status,"ERROR getting componentList");
MCheckStatus(status,"ERROR getting opType");
MeshOperation operationType = (MeshOperation) opTypeData.
asShort();
meshOpFty::getExpectedComponentType(operationType);
unsigned i;
int j;
for( i = 0; i < compListFn.length(); i++ )
{
if( comp.
apiType() == componentType )
{
for( j = 0; j < siComp.elementCount(); j++ )
cpIds.
append( siComp.element(j) );
}
}
fmeshOpFactory.setMesh( mesh );
fmeshOpFactory.setComponentList( compList );
fmeshOpFactory.setComponentIDs( cpIds );
fmeshOpFactory.setMeshOperation( operationType );
status = fmeshOpFactory.doIt();
}
else
{
status = MS::kUnknownParameter;
}
}
return status;
}
void* meshOpNode::creator()
{
return new meshOpNode();
}
{
cpList = attrFn.
create(
"inputComponents",
"ics",
opType = enumFn.
create(
"operationType",
"oprt", 0, &status);
status = addAttribute( cpList );
if (!status)
{
status.
perror(
"addAttribute");
return status;
}
status = addAttribute( opType );
if (!status)
{
status.
perror(
"addAttribute");
return status;
}
status = addAttribute( inMesh );
if (!status)
{
status.
perror(
"addAttribute");
return status;
}
status = addAttribute( outMesh);
if (!status)
{
status.
perror(
"addAttribute");
return status;
}
status = attributeAffects( inMesh, outMesh );
if (!status)
{
status.
perror(
"attributeAffects");
return status;
}
status = attributeAffects( cpList, outMesh );
if (!status)
{
status.
perror(
"attributeAffects");
return status;
}
status = attributeAffects( opType, outMesh );
if (!status)
{
status.
perror(
"attributeAffects");
return status;
}
return MS::kSuccess;
}