To support sets and deformations, user-defined shapes must be able to pass their own data type through attribute connections. To define some data for your shape, you must derive a new class from MPxGeometryData. This class is similar to MPxData but includes methods to support sets (or groups) and component iteration.
The purpose of MPxGeometryData is to provide a wrapper or container for your geometry so that it can be passed through DG connections just like any other Maya data.
If your geometry has an iterator associated with it, then you can associate this iterator with your data to support Maya’s deformers.
The following methods must be overridden to accomplish this:
virtual MPxGeometryIterator* iterator( MObjectArray&
MObject&, bool );
virtual MPxGeometryIterator* iterator( MObjectArray&,
MObject&,
bool, bool );