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:
You must provide a geometry data class that encapsulates your geometry in order for deformers to work.
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.
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.
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.
Points are manipulated by deformers through an iterator which you define and implement.
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.
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.
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.