The overall process of sub-object selection relies upon the implementation of several methods in the modifier. These methods are from class BaseObject. These involve selecting, identifying, moving, rotating and scaling sub-object components. These methods are:
BaseObject::ClearSelection() - This method is called to clear the selection for the given sub-object level. All sub-object elements of this type should be deselected.BaseObject::SelectSubComponent() - This method is called to change the selection state of the component identified by hitRec.BaseObject::SubObjectIndex() - Returns the index of the sub-object element identified by the HitRecord``hitRec. The sub-object index identifies a sub-object component. The relationship between the index and the component is established by the modifier. For example, an edit modifier may allow the user to select a group of faces and these groups of faces may be identified as group 0, group 1, group 2, etc. Given a hit record that identifies a face, the edit modifier's implementation of this method would return the group index that the face belonged to.BaseObject::CloneSelSubComponents() - This method is called to make a copy of the selected sub-object components.BaseObject::Move() - When this method is called the plug-in should respond by moving its selected sub-object components.BaseObject::Rotate() - When this method is called the plug-in should respond by rotating its selected sub-object components.BaseObject::Scale() - When this method is called the plug-in should respond by scaling its selected sub-object components.