 Related help topics:
 Related help topics: #include <MPxSkinCluster.h>
Base class for user-defined skin deformers.
MPxSkinCluster allows the creation of user-defined skin deformers. It derives from MPxGeometryFilter and so offers all the functionality of that class. Additionally, it has the per-vertex skin weights and other skin-related attributes of the Maya built-in skinCluster node.
Custom nodes derived from MPxSkinCluster are treated by Maya just like the built-in skinCluster, so all the weight painting/editing etc. tools that artists are used to also work on the custom nodes.
 Examples:
 Examples:  Inheritance diagram for MPxSkinCluster:
 Inheritance diagram for MPxSkinCluster:| Public Member Functions | |
| MPxSkinCluster () | |
| Class constructor. | |
| virtual | ~MPxSkinCluster () | 
| Class destructor. | |
| virtual MPxNode::Type | type () const | 
| This method returns the type of the node.  More... | |
| float | weightValue (MDataBlock &mblock, unsigned int multiIndex, unsigned int wtIndex) | 
| This method returns the weightValue stored in the datablock for the given geometry's lattice point/CV/vertex.  More... | |
|  Public Member Functions inherited from MPxGeometryFilter | |
| MPxGeometryFilter () | |
| Class constructor. | |
| virtual | ~MPxGeometryFilter () | 
| Class destructor. | |
| virtual MStatus | deform (MDataBlock &block, MItGeometry &iter, const MMatrix &mat, unsigned int multiIndex) | 
| This method performs the deformation algorithm.  More... | |
| virtual MObject & | accessoryAttribute () const | 
| This method returns an MObject for the attribute to which an accessory shape is connected.  More... | |
| virtual MStatus | accessoryNodeSetup (MDagModifier &cmd) | 
| This method is called by the "deformer -type" command when your node is specified.  More... | |
| void | setUseExistingConnectionWhenSetEditing (bool state) | 
| This method allows the plugin node to request special treatment during set editing.  More... | |
| MStatus | setDeformationDetails (unsigned int flags) | 
| This method allows the plug-in node to inform the system that it intends to deform components other than just positions.  More... | |
| unsigned int | getDeformationDetails (MStatus *ReturnStatus=NULL) | 
| Retrieves the value set by setDeformationDetails().  More... | |
| virtual void | setModifiedCallback (MSelectionList &list, bool listAdded) | 
| This callback method can be overriden and is called whenever the set this deformer is operating on is modified.  More... | |
|  Public Member Functions inherited from MPxNode | |
| MPxNode () | |
| Constructor.  More... | |
| virtual | ~MPxNode () | 
| Destructor. | |
| virtual void | postConstructor () | 
| Post constructor.  More... | |
| virtual MStatus | compute (const MPlug &plug, MDataBlock &dataBlock) | 
| This method should be overridden in user defined nodes.  More... | |
| virtual bool | getInternalValueInContext (const MPlug &plug, MDataHandle &dataHandle, MDGContext &ctx) | 
| This method is overriden by nodes that store attribute data in some internal format.  More... | |
| virtual bool | setInternalValueInContext (const MPlug &plug, const MDataHandle &dataHandle, MDGContext &ctx) | 
| This method is overriden by nodes that store attribute data in some internal format.  More... | |
| virtual bool | getInternalValue (const MPlug &plug, MDataHandle &dataHandle) | 
| This method is obsolete.  More... | |
| virtual bool | setInternalValue (const MPlug &plug, const MDataHandle &dataHandle) | 
| This method is obsolete.  More... | |
| virtual int | internalArrayCount (const MPlug &plug, const MDGContext &ctx) const | 
| This method is overriden by nodes that have internal array attributes which are not stored in Maya's datablock.  More... | |
| virtual void | copyInternalData (MPxNode *) | 
| This method is overriden by nodes that store attribute data in some internal format.  More... | |
| virtual MStatus | legalConnection (const MPlug &plug, const MPlug &otherPlug, bool asSrc, bool &isLegal) const | 
| This method allows you to check for legal connections being made to attributes of this node.  More... | |
| virtual MStatus | legalDisconnection (const MPlug &plug, const MPlug &otherPlug, bool asSrc, bool &isLegal) const | 
| This method allows you to check for legal disconnections being made to attributes of this node.  More... | |
| virtual MStatus | setDependentsDirty (const MPlug &plug, MPlugArray &plugArray) | 
| This method can be overridden in user defined nodes to specify which plugs should be set dirty based upon an input plug {plugBeingDirtied} which Maya is marking dirty.  More... | |
| virtual MStatus | preEvaluation (const MDGContext &context, const MEvaluationNode &evaluationNode) | 
| Prepare a node's internal state for threaded evaluation.  More... | |
| virtual MStatus | postEvaluation (const MDGContext &context, const MEvaluationNode &evaluationNode, PostEvaluationType evalType) | 
| Clean up node's internal state after threaded evaluation.  More... | |
| virtual SchedulingType | schedulingType () const | 
| When overriden this method controls the degree of parallelism supported by the node during threaded evaluation.  More... | |
| virtual MStatus | connectionMade (const MPlug &plug, const MPlug &otherPlug, bool asSrc) | 
| This method gets called when connections are made to attributes of this node.  More... | |
| virtual MStatus | connectionBroken (const MPlug &plug, const MPlug &otherPlug, bool asSrc) | 
| This method gets called when connections are broken with attributes of this node.  More... | |
| virtual MStatus | dependsOn (const MPlug &plug, const MPlug &otherPlug, bool &depends) const | 
| This method may be overridden by the user defined node.  More... | |
| virtual bool | isPassiveOutput (const MPlug &plug) const | 
| This method may be overridden by the user defined node if it wants to provide output attributes which do not prevent value modifications to the destination attribute.  More... | |
| virtual MStatus | shouldSave (const MPlug &plug, bool &isSaving) | 
| This method may be overridden by the user defined node.  More... | |
| virtual MPlug | passThroughToOne (const MPlug &plug) const | 
| This method may be overriden by nodes that have a one-to-one relationship between an input attribute and a corresponding output attribute.  More... | |
| virtual bool | passThroughToMany (const MPlug &plug, MPlugArray &plugArray) const | 
| This method is overriden by nodes that want to control the traversal behavior of some Maya search algorithms which traverse the history/future of shape nodes looking for directly related nodes.  More... | |
| virtual bool | isAbstractClass () const | 
| Override this class to return true if this node is an abstract node.  More... | |
| virtual MStringArray | getFilesToArchive (bool shortName=false, bool unresolvedName=false, bool markCouldBeImageSequence=false) const | 
| Use this method to return all external files used by this node.  More... | |
| virtual void | getExternalContent (MExternalContentInfoTable &table) const | 
| Returns the external content (files) that this node depends on.  More... | |
| bool | addExternalContentForFileAttr (MExternalContentInfoTable &table, const MObject &attr) const | 
| Adds content info to the specified table from a file path attribute.  More... | |
| bool | setExternalContentForFileAttr (const MObject &attr, const MExternalContentLocationTable &table) | 
| Sets content info in the specified attribute from the table.  More... | |
| virtual void | setExternalContent (const MExternalContentLocationTable &table) | 
| Changes the location of external content in batch.  More... | |
| virtual MTypeId | typeId () const | 
| Returns the TYPEID of this node.  More... | |
| virtual MString | typeName () const | 
| Returns the type name of this node.  More... | |
| virtual MString | name () const | 
| Returns the name of this particular instance of this class.  More... | |
| virtual MObject | thisMObject () const | 
| Returns the MObject associated with this user defined node.  More... | |
| virtual MStatus | setExistWithoutInConnections (bool flag) | 
| This method specifies whether or not the node can exist without input connections.  More... | |
| virtual bool | existWithoutInConnections (MStatus *ReturnStatus=NULL) const | 
| Determines whether or not this node can exist without input connections.  More... | |
| virtual MStatus | setExistWithoutOutConnections (bool flag) | 
| This method specifies whether or not the node can exist without output connections.  More... | |
| virtual bool | existWithoutOutConnections (MStatus *ReturnStatus=NULL) const | 
| Determines whether or not this node can exist without output connections.  More... | |
| Static Public Member Functions | |
| static const char * | className () | 
| Returns the name of this class.  More... | |
|  Static Public Member Functions inherited from MPxGeometryFilter | |
| static const char * | className () | 
| Returns the name of this class.  More... | |
|  Static Public Member Functions inherited from MPxNode | |
| static MStatus | addAttribute (const MObject &attr) | 
| This method adds a new attribute to a user defined node type during the type's initialization.  More... | |
| static MStatus | inheritAttributesFrom (const MString &parentClassName) | 
| This method allows a class of plugin node to inherit all of the attributes of a second class of plugin node.  More... | |
| static MStatus | attributeAffects (const MObject &whenChanges, const MObject &isAffected) | 
| This method specifies that a particular input attribute affects a specific output attribute.  More... | |
| static const char * | className () | 
| Returns the name of this class.  More... | |
| Static Public Attributes | |
| static MObject | weightList | 
| weight list attribute, multi | |
| static MObject | weights | 
| weight attribute, multi | |
| static MObject | matrix | 
| matrix attribute, multi | |
| static MObject | bindPreMatrix | 
| bindPreMatrix attribute, multi | |
|  Static Public Attributes inherited from MPxGeometryFilter | |
| static MObject | input | 
| input attribute, multi | |
| static MObject | inputGeom | 
| input geometry attribute | |
| static MObject | groupId | 
| input group id attribute | |
| static MObject | outputGeom | 
| geometry output attribute | |
| static MObject | envelope | 
| envelope attribute | |
|  Static Public Attributes inherited from MPxNode | |
| static MObject | message | 
| message attribute | |
| static MObject | isHistoricallyInteresting | 
| is historically interesting attribute | |
| static MObject | caching | 
| caching attribute | |
| static MObject | state | 
| state attribute | |
| static MObject | frozen | 
| frozen attribute | |
| 
 | virtual | 
This method returns the type of the node.
This method should not be overridden by the user. It will return MPxNode::kSkinCluster.
Reimplemented from MPxGeometryFilter.
| float weightValue | ( | MDataBlock & | block, | 
| unsigned int | multiIndex, | ||
| unsigned int | wtIndex | ||
| ) | 
This method returns the weightValue stored in the datablock for the given geometry's lattice point/CV/vertex.
| [in] | block | the datablock for the node | 
| [in] | multiIndex | the index corresponding to the geometry | 
| [in] | wtIndex | the index corresponding to the component | 
| 
 | static | 
Returns the name of this class.