C++ API Reference
MGPUDeformerRegistry Class Reference

Registration class for MPxGPUDeformer. More...

#include <MGPUDeformerRegistry.h>

Static Public Member Functions

static MStatus registerGPUDeformerCreator (const MString &nodeClassName, const MString &registrantId, MGPUDeformerRegistrationInfo *registrationInfo)
 This method is called to register an MPxGPUDeformer that overrides a specific type of deformer node. More...
 
static MStatus deregisterGPUDeformerCreator (const MString &nodeClassName, const MString &registrantId)
 This method is called to deregister an MPxGPUDeformer that overrides a specific type of deformer node. More...
 
static MStatus addConditionalAttribute (const MString &nodeClassName, const MString &registrantId, const MObject &conditionalAttribute)
 This method is called to add a conditional attribute to an already registered GPU Deformer. More...
 

Detailed Description

Registration class for MPxGPUDeformer.

MGPUDeformerRegistry allows each class derived from MPxGPUDeformer to register the type of deformer it supports. Only one override registered at a time for each type of deformer node. Overrides provided by default are registered with registrantId "Maya".

Member Function Documentation

MStatus registerGPUDeformerCreator ( const MString nodeClassName,
const MString registrantId,
MGPUDeformerRegistrationInfo registrationInfo 
)
static

This method is called to register an MPxGPUDeformer that overrides a specific type of deformer node.

This method is passed the name of the override deformer type, an ID that represents the override provider, and a registration information class. Ownership of the registration information class remains with the caller. The registration information class must remain valid until after the override has been deregistered with deregisterGPUDeformerCreator().

Parameters
[in]nodeClassNameThe name of the deformer type to be overridden.
[in]registrantIdThe ID of the override provider.
[in]registrationInfoA MGPUDeformerRegistrationInfo describing the override.
Returns
  • MS::kSuccess if the creator was successfully registered
  • MS::kFailure if the creator could not be registered
Examples:
basicMorphNode/basicMorphNode.cpp, identityNode/identityNode.cpp, and offsetNode/offsetNode.cpp.
MStatus deregisterGPUDeformerCreator ( const MString nodeClassName,
const MString registrantId 
)
static

This method is called to deregister an MPxGPUDeformer that overrides a specific type of deformer node.

This method is passed the name of the override deformer type, along with an ID that represents the override provider.

Parameters
[in]nodeClassNameThe name of the deformer type to be overridden.
[in]registrantIdThe ID of the override provider.
Returns
  • MS::kSuccess if the creator was successfully deregistered.
  • MS::kFailure if the creator could not be deregistered.
Examples:
basicMorphNode/basicMorphNode.cpp, identityNode/identityNode.cpp, and offsetNode/offsetNode.cpp.
MStatus addConditionalAttribute ( const MString nodeClassName,
const MString registrantId,
const MObject conditionalAttribute 
)
static

This method is called to add a conditional attribute to an already registered GPU Deformer.

A conditional attribute is an attribute on a depend node where for some values of the attribute the MPxGPUDeformer is supported and for other values of the attribute the MPxGPUDeformer is not supported.

MPxGPUDeformer will automatically be unsupported if a conditional attribute on the underlying depend node is animated.

MPxGPUDeformer::evaluate() will not be called if the value of a conditional attribute on the underlying depend node changes and the change causes a call to MGPUDeformerRegistrationInfo::validateNodeValues() to return false.

Parameters
[in]nodeClassNameThe name of the deformer type to be overridden.
[in]registrantIdThe ID of the override provider.
[in]conditionalAttributeThe attribute which is conditionally supported by the MPxGPUDeformer
Returns
  • MS::kSuccess if the attribute was successfully added as a conditional attribute.
  • MS::kFailure if the attribute was not added.
Examples:
basicMorphNode/basicMorphNode.cpp, and offsetNode/offsetNode.cpp.

The documentation for this class was generated from the following files: