コード例 #1
0
ファイル: common.cpp プロジェクト: chadmv/cvwrap
MStatus GetAdjacency(MDagPath& pathMesh, std::vector<std::set<int> >& adjacency) {
  MStatus status;
  // Get mesh adjacency.  The adjacency will be all vertex ids on the connected faces.
  MItMeshVertex itVert(pathMesh, MObject::kNullObj, &status);
  CHECK_MSTATUS_AND_RETURN_IT(status);
  MFnMesh fnMesh(pathMesh, &status);
  CHECK_MSTATUS_AND_RETURN_IT(status);
  adjacency.resize(itVert.count());
  for (; !itVert.isDone(); itVert.next()) {
    MIntArray faces;
    status = itVert.getConnectedFaces(faces);
    CHECK_MSTATUS_AND_RETURN_IT(status);
    adjacency[itVert.index()].clear();
    // Put the vertex ids in a set to avoid duplicates
    for (unsigned int j = 0; j < faces.length(); ++j) {
      MIntArray vertices;
      fnMesh.getPolygonVertices(faces[j], vertices);
      for (unsigned int k = 0; k < vertices.length(); ++k) {
        if (vertices[k] != itVert.index()) {
          adjacency[itVert.index()].insert(vertices[k]);
        }
      }
    }
  }
  return MS::kSuccess;
}
コード例 #2
0
ファイル: pluginMain.cpp プロジェクト: ArnonMarcus/Pipeline
MStatus initializePlugin(MObject obj)
{
	MStatus	  status;
	MFnPlugin plugin(obj, PLUGIN_VENDOR, PLUGIN_VERSION, "Any", &status);
	CHECK_MSTATUS_AND_RETURN_IT(status);

	status = plugin.registerData(ASSET_METADATA__TYPENAME,
		AssetMetadataMPx::id,
		AssetMetadataMPx::creator);

	if (!status)
	{
		status.perror("registerData");
		return status;
	}

	status = plugin.registerCommand(ASSET_METADATA__COMMAND_NAME,
		AssetMetadataCmd::creator,
		AssetMetadataCmd::cmdSyntax);

	if (!status)
	{
		plugin.deregisterData(AssetMetadataMPx::id);
		status.perror("registerCommand");
		return status;
	}

	status = AssetMetadataCmd::addExtensionAttribute(obj);
	CHECK_MSTATUS_AND_RETURN_IT(status);

	return status;
}
コード例 #3
0
ファイル: common.cpp プロジェクト: chadmv/cvwrap
MStatus GetShapeNode(MDagPath& path, bool intermediate) {
  MStatus status;

  if (IsShapeNode(path)) {
    // Start at the transform so we can honor the intermediate flag.
    path.pop();
  }

  if (path.hasFn(MFn::kTransform)) {
    unsigned int shapeCount = path.childCount();

    for (unsigned int i = 0; i < shapeCount; ++i) {
      status = path.push(path.child(i));
      CHECK_MSTATUS_AND_RETURN_IT(status);
      if (!IsShapeNode(path)) {
        path.pop();
        continue;
      }

      MFnDagNode fnNode(path, &status);
      CHECK_MSTATUS_AND_RETURN_IT(status);
      if ((!fnNode.isIntermediateObject() && !intermediate) ||
          (fnNode.isIntermediateObject() && intermediate)) {
        return MS::kSuccess;
      }
      // Go to the next shape
      path.pop();
    }
  }

  // No valid shape node found.
  return MS::kFailure;
}
コード例 #4
0
MStatus sgCurveEditBrush_context::getShapeNode( MDagPath& path )
{
    MStatus status;

    if ( path.apiType() == MFn::kNurbsCurve )
    {
        return MS::kSuccess;
    }

    unsigned int numShapes;
    status = path.numberOfShapesDirectlyBelow( numShapes );
    CHECK_MSTATUS_AND_RETURN_IT( status );

    for ( unsigned int i = 0; i < numShapes; ++i )
    {
        status = path.extendToShapeDirectlyBelow( i );
        CHECK_MSTATUS_AND_RETURN_IT( status );

        if ( !path.hasFn( MFn::kNurbsCurve ) )
        {
            path.pop();
            continue;
        }

        MFnDagNode fnNode( path, &status );
        CHECK_MSTATUS_AND_RETURN_IT( status );
        if ( !fnNode.isIntermediateObject() )
        {
            return MS::kSuccess;
        }
        path.pop();
    }

    return MS::kFailure;
}
コード例 #5
0
ファイル: blendCurve.cpp プロジェクト: jonntd/mayadev-1
MStatus blendCurve::initialize()
{
	MStatus status;

	MFnNumericAttribute  nAttr;
	MFnTypedAttribute    tAttr;
	MFnCompoundAttribute cAttr;

	aInputs = cAttr.create( "inputs", "inputs" );

	aInputCurve = tAttr.create( "inputCurve", "inputCurve", MFnData::kNurbsCurve );
	tAttr.setStorable( false );
	aWeight = nAttr.create( "weight", "weight", MFnNumericData::kFloat, 1.0 );
	nAttr.setMin( 0.0 );
	nAttr.setMax( 1.0 );
	nAttr.setKeyable( true );
	aBlendPosition = nAttr.create( "blendPosition", "blendPosition", MFnNumericData::kFloat, 1.0 );
	nAttr.setMin( 0.0 );
	nAttr.setMax( 1.0 );
	nAttr.setKeyable( true );
	aBlendArea     = nAttr.create( "blendArea", "blendArea", MFnNumericData::kFloat, 0.5 );
	nAttr.setMin( 0.0 );
	nAttr.setMax( 1.0 );
	nAttr.setKeyable( true );
	cAttr.addChild( aInputCurve );
	cAttr.addChild( aWeight );
	cAttr.addChild( aBlendPosition );
	cAttr.addChild( aBlendArea );
	cAttr.setArray( true );

	CHECK_MSTATUS_AND_RETURN_IT( addAttribute( aInputs ) );
	CHECK_MSTATUS_AND_RETURN_IT( attributeAffects( aInputs, outputGeom ) );

	return MS::kSuccess;
}
コード例 #6
0
// The initialize method is called only once when the node is first
// registered with Maya. In general,
//
MStatus motionPathNode::initialize()
{
    MFnNumericAttribute		nAttr;

    //====================================================================
    //          I N P U T     A T T R I B U T E S
    //====================================================================
    //
    offset = nAttr.create( "offset", "o",
                           MFnNumericData::kDouble, 4.0 );
    addAttribute( offset );

    wobbleRate = nAttr.create( "wobbleRate", "w",
                               MFnNumericData::kDouble, 10.0 );
    addAttribute( wobbleRate );

    //====================================================================
    //          A F F E C T S    R E L A T I O N S H I P S
    //====================================================================
    //
    CHECK_MSTATUS_AND_RETURN_IT( affectsOutput( offset ) );
    CHECK_MSTATUS_AND_RETURN_IT( affectsOutput( wobbleRate ) );

    return( MS::kSuccess );
}
コード例 #7
0
ファイル: transferUV.cpp プロジェクト: minoue/miMayaUtils
MStatus TransferUV::doIt(const MArgList& args)
{
    MStatus status;

    // if (args.length() != 1)
    // {
    //     MGlobal::displayError("Need 1 arg!");
    //     return MStatus::kFailure;
    // }

    MArgDatabase argData(syntax(), args);

    // arg
    // MString argument = args.asString(0, &status);
    // if (status != MS::kSuccess) {
    //     return MStatus::kFailure;
    // }
    // CHECK_MSTATUS_AND_RETURN_IT(status);

    if (argData.isFlagSet(sourceUvSetFlag)) {
        status = argData.getFlagArgument(sourceUvSetFlag, 0, sourceUvSet);
        CHECK_MSTATUS_AND_RETURN_IT(status);
    }

    if (argData.isFlagSet(targetUvSetFlag)) {
        status = argData.getFlagArgument(targetUvSetFlag, 0, targetUvSet);
        CHECK_MSTATUS_AND_RETURN_IT(status);
    }

    if (argData.isFlagSet(sourceMeshFlag)) {
        status = argData.getFlagArgument(sourceMeshFlag, 0, sourceMesh);
    } else {
        MGlobal::displayError(
            "Source mesh is not specified. -sm flag is required.");
        return MS::kFailure;
    }

    if (argData.isFlagSet(targetMeshFlag)) {
        status = argData.getFlagArgument(targetMeshFlag, 0, targetMesh);
    } else {
        MGlobal::displayError(
            "Target mesh is not specified. -tm flag is required.");
        return MS::kFailure;
    }

    MString info = "Copying uv from " + sourceUvSet + " to " + targetUvSet;
    MGlobal::displayInfo(info);

    MSelectionList mList;
    mList.add(sourceMesh);
    mList.add(targetMesh);

    mList.getDagPath(0, sourceDagPath);
    mList.getDagPath(1, targetDagPath);

    return redoIt();
}
コード例 #8
0
ファイル: common.cpp プロジェクト: chadmv/cvwrap
MStatus GetDagPath(MString& name, MDagPath& path) {
  MStatus status;
  MSelectionList list;
  status = MGlobal::getSelectionListByName(name, list);
  CHECK_MSTATUS_AND_RETURN_IT(status);
  status = list.getDagPath(0, path);
  CHECK_MSTATUS_AND_RETURN_IT(status);
  return MS::kSuccess;
}
コード例 #9
0
MStatus sgLockAngleMatrix::initialize()	
{
	MStatus status;

	MFnMatrixAttribute mAttr;
	MFnNumericAttribute nAttr;
	MFnEnumAttribute   eAttr;

	aBaseMatrix = mAttr.create( "baseMatrix", "baseMatrix" );
	CHECK_MSTATUS_AND_RETURN_IT( addAttribute( aBaseMatrix ) );

	aInputMatrix = mAttr.create( "inputMatrix", "inputMatrix" );
	CHECK_MSTATUS_AND_RETURN_IT( addAttribute( aInputMatrix ) );

	aAngleAxis = eAttr.create( "angleAxis", "angleAxis" );
	eAttr.addField( " X", 0 );eAttr.addField( " Y", 1 );eAttr.addField( " Z", 2 );
	eAttr.addField( "-X", 3 );eAttr.addField( "-Y", 4 );eAttr.addField( "-Z", 5 );
	eAttr.setStorable( true );
	CHECK_MSTATUS_AND_RETURN_IT( addAttribute( aAngleAxis ) );

	aInputAngle = nAttr.create( "inputAngle", "inputAngle", MFnNumericData::kDouble, 45 );
	nAttr.setStorable( true );
	CHECK_MSTATUS_AND_RETURN_IT( addAttribute( aInputAngle ) );

	aOutputMatrix = mAttr.create( "outputMatrix", "outputMatrix" );
	mAttr.setStorable( false );
	CHECK_MSTATUS_AND_RETURN_IT( addAttribute( aOutputMatrix ) );

	CHECK_MSTATUS_AND_RETURN_IT( attributeAffects( aBaseMatrix, aOutputMatrix ) );
	CHECK_MSTATUS_AND_RETURN_IT( attributeAffects( aInputMatrix, aOutputMatrix ) );
	CHECK_MSTATUS_AND_RETURN_IT( attributeAffects( aAngleAxis, aOutputMatrix ) );
	CHECK_MSTATUS_AND_RETURN_IT( attributeAffects( aInputAngle, aOutputMatrix ) );

	return MS::kSuccess;
}
コード例 #10
0
ファイル: Main.cpp プロジェクト: derek-williams/skinJiggle
MStatus uninitializePlugin(MObject obj) {
  MStatus   status;
  MFnPlugin fnPlugin(obj);
  status = fnPlugin.deregisterCommand("cvJiggle");        
  CHECK_MSTATUS_AND_RETURN_IT(status);

  status = fnPlugin.deregisterNode(cvJiggle::id);
  CHECK_MSTATUS_AND_RETURN_IT(status);

  return status;
}
コード例 #11
0
ファイル: rippleDeformer.cpp プロジェクト: jonntd/mayaPlugins
MStatus RippleDeformer::deform(MDataBlock& dataBlock,
								MItGeometry& itGeo,
								const MMatrix& localToWorldMatrix,
								unsigned int geomIndex)
{
	MStatus status;
	
	//get attriubtes as a datahandle
	float env = dataBlock.inputValue(envelope).asFloat();
	float amplitude = dataBlock.inputValue(aAmplitude).asFloat();
	float displace = dataBlock.inputValue(aDisplace).asFloat();
	//get the mesh 
	
	//retrieve the handle to the input attribute
	MArrayDataHandle hInput = dataBlock.outputArrayValue(input, &status);
	CHECK_MSTATUS_AND_RETURN_IT(status);
	//get the input array index handle
	status = hInput.jumpToElement(geomIndex);
	//get the handle of geomIndex attribute
	MDataHandle hInputElement = hInput.outputValue(&status);
	//Get the MObject of the input geometry of geomindex
	MObject oInputGeom = hInputElement.child(inputGeom).asMesh();

	MFnMesh fnMesh(oInputGeom, &status);
	CHECK_MSTATUS_AND_RETURN_IT(status);
	if (oInputGeom.isNull())
	{
		return MS::kSuccess;
	}

	MFloatVectorArray normals;
	fnMesh.getVertexNormals(false, normals);

	MPoint pointPos;
	float weight;
	
	for (; !itGeo.isDone(); itGeo.next())
	{
		//get current point position
		pointPos = itGeo.position();
		weight = weightValue(dataBlock, geomIndex, itGeo.index());
		pointPos.x = pointPos.x + sin(itGeo.index() + displace) * amplitude * normals[itGeo.index()].x * weight * env;
		pointPos.y = pointPos.y + sin(itGeo.index() + displace) * amplitude * normals[itGeo.index()].y * weight * env;
		pointPos.z = pointPos.z + sin(itGeo.index() + displace) * amplitude * normals[itGeo.index()].z * weight * env;
		//setPosition
		itGeo.setPosition(pointPos);
	}	
	
	return MS::kSuccess;
}
コード例 #12
0
ファイル: volumePushCollider.cpp プロジェクト: jonntd/Public
MStatus VolumePushCollider::compute(const MPlug& plug, MDataBlock& dataBlock)
{
	MStatus status;

	if (plug == aOutput)
	{
		// inCollider
		MArrayDataHandle hInCollider = dataBlock.inputArrayValue(aInCollider);
		// inVolume
		MArrayDataHandle hInVolume = dataBlock.inputArrayValue(aInVolume);
		// output
		MArrayDataHandle hOutput = dataBlock.inputArrayValue(aOutput);
		MDoubleArray daValues(hInVolume.elementCount());

		for (unsigned int c=0; c<hInCollider.elementCount(); c++)
		{
			// Calculate the total of every collider value for each volume
			status = hInCollider.jumpToArrayElement(c);
			CHECK_MSTATUS_AND_RETURN_IT(status);
			MMatrix mInCollider = hInCollider.inputValue().asMatrix();
			MTransformationMatrix tmInCollider(mInCollider);
			MPoint pInCollider = tmInCollider.getTranslation(MSpace::kWorld, &status);
			CHECK_MSTATUS_AND_RETURN_IT(status);

			for (unsigned int v=0; v<hInVolume.elementCount(); v++)
			{
				// pointMatrixMult
				status = hInVolume.jumpToArrayElement(v);
				CHECK_MSTATUS_AND_RETURN_IT(status);
				MMatrix mInVolume = hInVolume.inputValue().asMatrix();
				MVector vVolCollider = pInCollider * mInVolume;
				// condition
				if (vVolCollider.length() <= 1.0)
				{
					// reverse
					daValues[v] += abs(1.0 - vVolCollider.length());
				}
			}
		}
		for (unsigned int i=0; i<hInVolume.elementCount(); i++)
		{
			// set outputs
			status = hOutput.jumpToArrayElement(i);
			CHECK_MSTATUS_AND_RETURN_IT(status);
			hOutput.outputValue().set(daValues[i]);
		}
		dataBlock.setClean(plug);
	}
	return MS::kSuccess;
}
コード例 #13
0
ファイル: Main.cpp プロジェクト: derek-williams/skinJiggle
MStatus initializePlugin(MObject obj) { 
  MStatus status;  
  MFnPlugin fnPlugin(obj, "Derek Williams", "1.1", "Any");

  status = fnPlugin.registerNode("cvJiggle", cvJiggle::id, cvJiggle::creator,
                                 cvJiggle::initialize, MPxNode::kDeformerNode);
  CHECK_MSTATUS_AND_RETURN_IT(status);

  status = fnPlugin.registerCommand("cvJiggle",          
                                    cvJiggleCmd::creator,
                                    cvJiggleCmd::newSyntax);      
  CHECK_MSTATUS_AND_RETURN_IT(status);

  return status;
}
コード例 #14
0
MStatus initializePlugin(MObject obj)
{ 
	MFnPlugin plugin(obj, "IS", "1.0", "Any");
	MStatus status = plugin.registerCommand(COMMAND, RayTracer::creator, RayTracer::newSyntax);
	CHECK_MSTATUS_AND_RETURN_IT(status);
	return status;
}
コード例 #15
0
MStatus uninitializePlugin(MObject obj)
{
	MFnPlugin plugin(obj);
	MStatus status = plugin.deregisterCommand(COMMAND);
	CHECK_MSTATUS_AND_RETURN_IT(status);
	return status;
}
コード例 #16
0
ファイル: pluginMain.cpp プロジェクト: jonntd/mayadev-1
MStatus uninitializePlugin( MObject obj)
{
	MStatus   status;
	MFnPlugin plugin( obj );

	status = plugin.deregisterNode( blendAndFixedShape::id );
	CHECK_MSTATUS_AND_RETURN_IT( status );

	status = plugin.deregisterNode( inverseSkinCluster::id );
	CHECK_MSTATUS_AND_RETURN_IT( status );

	status = plugin.deregisterCommand( "deleteBlendMeshInfo" );
	CHECK_MSTATUS_AND_RETURN_IT( status );

	status = plugin.deregisterCommand( "assignBlendMeshInfo" );
	CHECK_MSTATUS_AND_RETURN_IT( status );
	
	status = plugin.deregisterCommand( "addMirrorBlendMeshInfos" );
	CHECK_MSTATUS_AND_RETURN_IT( status );
	
	status = plugin.deregisterCommand( "buildSkinMesh" );
	CHECK_MSTATUS_AND_RETURN_IT( status );

	status = plugin.deregisterNode( vectorWeight::id );
	CHECK_MSTATUS_AND_RETURN_IT( status );
	/*
	status = plugin.deregisterNode( angleDriver::id );
	CHECK_MSTATUS_AND_RETURN_IT( status );
	*/
	return status;
}
コード例 #17
0
ファイル: pluginMain.cpp プロジェクト: dtlindsey/mayaCMake
MStatus initializePlugin(MObject obj) {
  MStatus status;
  MFnPlugin fnPlugin(obj, "Chad Vernon", "1.0", "Any");

  status = fnPlugin.registerCommand(SampleCmd::kName,
                                    SampleCmd::creator);
  CHECK_MSTATUS_AND_RETURN_IT(status);
  return MS::kSuccess;
}
コード例 #18
0
MStatus initializePlugin(MObject mobject){
	MStatus status;
	MFnPlugin mfnPlugin(mobject, "Ryan Wang", "1.0","Any");
	status = mfnPlugin.registerNode("jiggleDeformer", jiggleDeformer::nodeID, jiggleDeformer::nodeCreator,
											jiggleDeformer::nodeInitialize,MPxNode::kDeformerNode);
	CHECK_MSTATUS_AND_RETURN_IT(status);

	return status;
}
コード例 #19
0
MStatus uninitializePlugin(MObject mobject){
	MStatus status;
	MFnPlugin mfnPlugin(mobject);
	status = mfnPlugin.deregisterNode(jiggleDeformer::nodeID);
	
	CHECK_MSTATUS_AND_RETURN_IT(status);
	
	return status;
}
コード例 #20
0
// The unitializePlugin is called when Maya needs to unload the plugin.
// It does the opposite of initialize.
//
MStatus uninitializePlugin( MObject obj)
{
	MStatus   status;
	MFnPlugin plugin( obj );

	CHECK_MSTATUS_AND_RETURN_IT(plugin.deregisterNode( stringFormat::id ));

	return status;
}
コード例 #21
0
ファイル: pluginMain.cpp プロジェクト: dtlindsey/mayaCMake
MStatus uninitializePlugin(MObject obj) {
  MStatus status;

  MFnPlugin fnPlugin(obj);

  status = fnPlugin.deregisterCommand(SampleCmd::kName);
  CHECK_MSTATUS_AND_RETURN_IT(status);

  return MS::kSuccess;
}
コード例 #22
0
ファイル: common.cpp プロジェクト: chadmv/cvwrap
MStatus DeleteIntermediateObjects(MDagPath& path) {
  MStatus status;
  MDagPath pathMesh(path);
  while (GetShapeNode(pathMesh, true) == MS::kSuccess) {
    status = MGlobal::executeCommand("delete " + pathMesh.partialPathName());
    CHECK_MSTATUS_AND_RETURN_IT(status);
    pathMesh = MDagPath(path);
  }
  return MS::kSuccess;
}
コード例 #23
0
MStatus DrawPolygonContextCommand::appendSyntax()
{
    MStatus status;
    MSyntax mSyntax = syntax();
   
    status = mSyntax.addFlag( LENGTH_FLAG, LENGTH_FLAG_LONG, MSyntax::kDouble );
    CHECK_MSTATUS_AND_RETURN_IT( status );

    return MS::kSuccess;
}
コード例 #24
0
ファイル: pluginMain.cpp プロジェクト: jonntd/mayadev-1
MStatus uninitializePlugin( MObject obj )
{
	MStatus   status;
	MFnPlugin plugin( obj );

	status = plugin.deregisterNode( MainNode::id );
	CHECK_MSTATUS_AND_RETURN_IT( status );

	status = plugin.deregisterCommand( "psdJointBase_addIndex" );
	CHECK_MSTATUS_AND_RETURN_IT( status );

	status = plugin.deregisterCommand( "psdJointBase_deleteIndex" );
	CHECK_MSTATUS_AND_RETURN_IT( status );

	status = plugin.deregisterCommand( "psdJointBase_addShape" );
	CHECK_MSTATUS_AND_RETURN_IT( status );

	return status;
}
コード例 #25
0
MStatus sphericalBlendShapeVisualizer::initialize()
		
{
	MStatus status;

	MFnMatrixAttribute mAttr;
	MFnEnumAttribute   eAttr;

	aSpaceMatrix = mAttr.create("spaceMatrix", "spaceMatrix", MFnMatrixAttribute::kDouble, &status);
	CHECK_MSTATUS_AND_RETURN_IT(status);

	aPoleAxis = eAttr.create("poleAxis", "poleAxis", 1, &status);
	CHECK_MSTATUS_AND_RETURN_IT(status);
	eAttr.addField("+X", 0);
	eAttr.addField("+Y", 1);
	eAttr.addField("+Z", 2);
	eAttr.addField("-X", 3);
	eAttr.addField("-Y", 4);
	eAttr.addField("-Z", 5);
	eAttr.setDefault(1);
	eAttr.setKeyable(true);
	eAttr.setStorable(true);
	eAttr.setWritable(true);

	aSeamAxis = eAttr.create("seamAxis", "seamAxis", 0, &status);
	CHECK_MSTATUS_AND_RETURN_IT(status);
	eAttr.addField("+X", 0);
	eAttr.addField("+Y", 1);
	eAttr.addField("+Z", 2);
	eAttr.addField("-X", 3);
	eAttr.addField("-Y", 4);
	eAttr.addField("-Z", 5);
	eAttr.setDefault(0);
	eAttr.setKeyable(true);
	eAttr.setStorable(true);
	eAttr.setWritable(true);

	addAttribute(aSpaceMatrix);
	addAttribute(aPoleAxis);
	addAttribute(aSeamAxis);

	return MS::kSuccess;
}
コード例 #26
0
MStatus	motionPathNode::affectsOutput( MObject& attr )
{
    CHECK_MSTATUS_AND_RETURN_IT( attributeAffects( attr, rotate ) );
    CHECK_MSTATUS_AND_RETURN_IT( attributeAffects( attr, rotateX ) );
    CHECK_MSTATUS_AND_RETURN_IT( attributeAffects( attr, rotateY ) );
    CHECK_MSTATUS_AND_RETURN_IT( attributeAffects( attr, rotateZ ) );
    CHECK_MSTATUS_AND_RETURN_IT( attributeAffects( attr, allCoordinates ) );
    CHECK_MSTATUS_AND_RETURN_IT( attributeAffects( attr, xCoordinate ) );
    CHECK_MSTATUS_AND_RETURN_IT( attributeAffects( attr, yCoordinate ) );
    CHECK_MSTATUS_AND_RETURN_IT( attributeAffects( attr, zCoordinate ) );

    return( MS::kSuccess );
}
コード例 #27
0
ファイル: pluginMain.cpp プロジェクト: ahmidou/cvwrap
MStatus uninitializePlugin( MObject obj) {
  MStatus status;
  MFnPlugin plugin(obj);

#if MAYA_API_VERSION >= 201600
  status = MGPUDeformerRegistry::deregisterGPUDeformerCreator(CVWrap::kName, "cvWrapOverride");
  CHECK_MSTATUS_AND_RETURN_IT(status);
#endif
  status = plugin.deregisterCommand(CVWrapCmd::kName);
  CHECK_MSTATUS_AND_RETURN_IT(status);
  status = plugin.deregisterNode(CVWrap::id);
  CHECK_MSTATUS_AND_RETURN_IT(status);

  if (MGlobal::mayaState() == MGlobal::kInteractive) {
    MGlobal::executePythonCommandOnIdle("import cvwrap.menu");
		MGlobal::executePythonCommandOnIdle("cvwrap.menu.destroy_menuitems()");
  }
  
  return status;
}
コード例 #28
0
ファイル: doHelix.cpp プロジェクト: inn5013orecl/Maya
MStatus
uninitializePlugin(MObject plugin)
{
    //MStatus status;
    MFnPlugin pluginFn(plugin);
    
    // Deregister elements here
    MStatus status = pluginFn.deregisterCommand("helix");
    CHECK_MSTATUS_AND_RETURN_IT(status);
    return status;
}
コード例 #29
0
ファイル: pluginMain.cpp プロジェクト: jonntd/mayadev-1
MStatus initializePlugin( MObject obj )
{ 
	MStatus   status;
	MFnPlugin plugin( obj, "Locus", "2014", "Any");

	status = plugin.registerNode( "psdJointBase", MainNode::id,
		MainNode::creator, MainNode::initialize, MainNode::kDeformerNode );
	CHECK_MSTATUS_AND_RETURN_IT( status );

	status = plugin.registerCommand( "psdJointBase_addIndex", AddIndex::creator, AddIndex::newSyntax );
	CHECK_MSTATUS_AND_RETURN_IT( status );

	status = plugin.registerCommand( "psdJointBase_deleteIndex", DeleteIndex::creator, DeleteIndex::newSyntax );
	CHECK_MSTATUS_AND_RETURN_IT( status );

	status = plugin.registerCommand( "psdJointBase_addShape", AddShape::creator, AddShape::newSyntax );
	CHECK_MSTATUS_AND_RETURN_IT( status );

	return status;
}
コード例 #30
0
ファイル: doHelix.cpp プロジェクト: inn5013orecl/Maya
MStatus
initializePlugin(MObject plugin)
{
    //MStatus status;
    MFnPlugin pluginFn(plugin, "Gary Tse", "1.0.0", "Any");     // object, author, plugin version, Maya version required
    
    // Register elements here
    MStatus status = pluginFn.registerCommand("helix", DoHelix::creator);
    CHECK_MSTATUS_AND_RETURN_IT(status);
    return status;
}