Deformers

Deformers in Maya operate on control point based shapes with components defined for the control points attribute.

To support Maya’s deformations, you must provide the following:

MPxGeometryData

You must provide a geometry data class that encapsulates your geometry in order for deformers to work.

localShapeInAttr

This function must be overridden to return the attribute corresponding to the input history for your shape. This attribute must be the same type as your geometry data.

localShapeOutAttr

This function must be overridden to return the attribute representing the output geometry for your shape. This attribute must be the same type as your geometry data.

worldShapeOutAttr

This function must be overridden to return the output array attribute representing instances of the output geometry for your shape. This attribute must be the same type as your geometry data. Each element in the array will represent a particular instance of your shape.

MPxGeometryIterator

Points are manipulated by deformers through an iterator which you define and implement.

match

This function must be overridden to check for matches between a selection type / component list, and the type of this shape / or its components. This is used by sets and deformers to make sure that the selected components fall into the "vertex only" category.

createFullVertexGroup

This method is used by Maya when it needs to create a component containing every vertex (or control point) in the shape. This will get called if you apply some deformer to the whole shape, i.e. select the shape in object mode and add a deformer to it.

geometryData

This function should return the input data object for the surface. This gets called internally by Maya to get at the shapes grouping (set) information.