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 HitRecordhitRec. 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.