MFnBase Class Reference
 
 
 

This reference page is linked to from the following overview topics: Creating and Manipulating Objects, Appendix C: Frequently asked questions, MSelectionList, setObject() method.


#include <MFnBase.h>


Class Description

Function Set Base Class.

Defines the interface for the API RTTI and Maya Object attachment methods common to all Function Set Classes.

Implements the Function Set compatibility test methods for all Function Sets.

The API provides access to Maya Objects as generic MObjects. Under the C++ class scheme MObjects simply have type MObject with no base or derived hierarchy. However, MObjects may be many different types of model or scene objects, from Attributes to Transforms, within Maya. This allows many different types of objects to be moved across or accessed through the API without undue concern on the part of plug-in developers for the type of object being manipulated.

Since it is impractical to provide every applicable method on MObjects, the methods applicable to Maya Objects are encapsulated in Function Sets. Function Sets can be attached to compatible MObjects to provide an external interface to methods appropriate to that MObject. All Function Sets provide a method setObject() which attaches them to the specified Maya Object. Additionally, most Function Sets provide a version of their constructor which attaches the new Function Set to a specified MObject.

The link between an MObject and the role it performs as a Maya scene or model object, as well as the compatibility between MObjects and Function Sets is managed by the API Run-Time Type Identification (RTTI) system. The two key concepts of this system are the Maya Object type and the Function Set type (both are MFn::Type). All MObjects have one and only one Maya Object type. All Function Sets have one and only one Function Set type. MObjects may, however, be compatible with many types of Function Sets. This compatibility follows the class hierarchy of the Function Sets. Thus an MObject with Maya Object type MFn::kNurbsSurface would be compatible with MFnNurbsSurface, MFnDagNode, MFnDependencyNode, MFnNamedObject and MFnBase.

Any MObject can be queried with the MObject::hasFn() method to determine if it is comaptible with a given Function Set.

The purpose of the Base Function Set (MFnBase) is to provide methods for determining whether or not a Function Set is compatible with a given Maya Object (MObject) type (MFn::Type) or a specific MObject. See: MFnBase::hasObj(MFn::Type) and MFnBase::hasObj(const MObject &)

As well, this Function Set provides virtual methods for determining the type of a Function Set under the API RTTI system.

Inheritance diagram for MFnBase:
MFnAttribute MFnComponent MFnData MFnDependencyNode MFnKeyframeDelta MFnPlugin MFnCompoundAttribute MFnEnumAttribute MFnGenericAttribute MFnLightDataAttribute MFnMatrixAttribute MFnMessageAttribute MFnNumericAttribute MFnTypedAttribute MFnUnitAttribute MFnDoubleIndexedComponent MFnSingleIndexedComponent MFnTripleIndexedComponent MFnUint64SingleIndexedComponent MFnArrayAttrsData MFnComponentListData MFnDoubleArrayData MFnDynSweptGeometryData MFnFloatArrayData MFnGeometryData MFnIntArrayData MFnMatrixData MFnNIdData MFnNObjectData MFnNumericData MFnPluginData MFnPointArrayData MFnSphereData MFnStringArrayData MFnStringData MFnUInt64ArrayData MFnVectorArrayData MFnAnimCurve MFnAnisotropyShader MFnBlendShapeDeformer MFnCameraSet MFnClip MFnContainerNode MFnDagNode MFnExpression MFnGeometryFilter MFnIkSolver MFnImageSource MFnLambertShader MFnLatticeDeformer MFnLayeredShader MFnMotionPath MFnPartition MFnPhongEShader MFnReference MFnRenderLayer MFnRenderPass MFnSet MFnWireDeformer MFnKeyframeDeltaAddRemove MFnKeyframeDeltaBlockAddRemove MFnKeyframeDeltaBreakdown MFnKeyframeDeltaInfType MFnKeyframeDeltaMove MFnKeyframeDeltaScale MFnKeyframeDeltaTangent MFnKeyframeDeltaWeighted

List of all members.

Public Member Functions

virtual  ~MFnBase ()
  Class Destructor.
virtual MFn::Type  type () const
  Determines the type of the Function Set within the API RTTI system.
bool  hasObj (MFn::Type) const
  Determines whether or not the Function Set is compatible with the specified Maya Object within the API RTTI system.
bool  hasObj (const MObject &) const
  Determines whether or not the Function Set is compatible with the specified Maya Object within the API RTTI system.
MObject  object (MStatus *ReturnStatus=NULL) const
  Returns the MObject that is attached to the Function Set.
virtual MStatus  setObject (MObject &object)
  Attaches the Function Set to the specified Maya Object.
virtual MStatus  setObject (const MObject &object)
  NO SCRIPT SUPPORT.

Static Public Member Functions

static const char *  className ()
  Returns the name of this class.

Constructor & Destructor Documentation

~MFnBase ( ) [virtual]

Class Destructor.

No additional action.


Member Function Documentation

MFn::Type type ( ) const [virtual]

Determines the type of the Function Set within the API RTTI system.

Returns:
Function Set type

Reimplemented in MFnAirField, MFnAmbientLight, MFnAnimCurve, MFnAnisotropyShader, MFnAreaLight, MFnArrayAttrsData, MFnAssembly, MFnAttribute, MFnBlendShapeDeformer, MFnBlinnShader, MFnCamera, MFnCameraSet, MFnCharacter, MFnCircleSweepManip, MFnClip, MFnComponent, MFnComponentListData, MFnCompoundAttribute, MFnContainerNode, MFnCurveSegmentManip, MFnDagNode, MFnData, MFnDependencyNode, MFnDirectionalLight, MFnDirectionManip, MFnDiscManip, MFnDistanceManip, MFnDoubleArrayData, MFnDoubleIndexedComponent, MFnDragField, MFnDynSweptGeometryData, MFnEnumAttribute, MFnExpression, MFnField, MFnFloatArrayData, MFnFluid, MFnFreePointTriadManip, MFnGenericAttribute, MFnGeometryData, MFnGeometryFilter, MFnGravityField, MFnHikEffector, MFnIkEffector, MFnIkHandle, MFnIkJoint, MFnIkSolver, MFnImageSource, MFnInstancer, MFnIntArrayData, MFnKeyframeDelta, MFnKeyframeDeltaAddRemove, MFnKeyframeDeltaBlockAddRemove, MFnKeyframeDeltaBreakdown, MFnKeyframeDeltaInfType, MFnKeyframeDeltaMove, MFnKeyframeDeltaScale, MFnKeyframeDeltaTangent, MFnKeyframeDeltaWeighted, MFnLambertShader, MFnLattice, MFnLatticeData, MFnLatticeDeformer, MFnLayeredShader, MFnLight, MFnLightDataAttribute, MFnManip3D, MFnMatrixAttribute, MFnMatrixData, MFnMesh, MFnMeshData, MFnMessageAttribute, MFnMotionPath, MFnNewtonField, MFnNIdData, MFnNObjectData, MFnNonAmbientLight, MFnNonExtendedLight, MFnNumericAttribute, MFnNumericData, MFnNurbsCurve, MFnNurbsCurveData, MFnNurbsSurface, MFnNurbsSurfaceData, MFnParticleSystem, MFnPartition, MFnPfxGeometry, MFnPhongEShader, MFnPhongShader, MFnPlugin, MFnPluginData, MFnPointArrayData, MFnPointLight, MFnPointOnCurveManip, MFnPointOnSurfaceManip, MFnRadialField, MFnReference, MFnReflectShader, MFnRenderLayer, MFnRenderPass, MFnRotateManip, MFnScaleManip, MFnSet, MFnSingleIndexedComponent, MFnSkinCluster, MFnSphereData, MFnSpotLight, MFnStateManip, MFnStringArrayData, MFnStringData, MFnSubd, MFnSubdData, MFnToggleManip, MFnTransform, MFnTripleIndexedComponent, MFnTurbulenceField, MFnTypedAttribute, MFnUInt64ArrayData, MFnUint64SingleIndexedComponent, MFnUniformField, MFnUnitAttribute, MFnVectorArrayData, MFnVolumeAxisField, MFnVolumeLight, MFnVortexField, MFnWeightGeometryFilter, and MFnWireDeformer.

bool hasObj ( MFn::Type  mtype ) const

Determines whether or not the Function Set is compatible with the specified Maya Object within the API RTTI system.

Parameters:
[in] mtype Maya Object type
Returns:
  • true = Compatible
  • false = Not Compatible
Examples:
manipOverride/manipOverride.cpp.
bool hasObj ( const MObject object ) const

Determines whether or not the Function Set is compatible with the specified Maya Object within the API RTTI system.

Parameters:
[in] object Maya Object to be tested for compatibility
Returns:
  • true = Compatible
  • false = Not Compatible
MObject object ( MStatus ReturnStatus = NULL ) const

Returns the MObject that is attached to the Function Set.

Parameters:
[in] ReturnStatus Status Code (see below)
Returns:
An MObject that references the object to which the Function Set is attached. If the function set is not attached to an MObject, MObject::kNullObj will be returned.
Status Codes:
Examples:
AbcImport/NodeIteratorVisitorHelper.cpp, AbcImport/NurbsCurveHelper.cpp, cgfxAttrDef.cpp, gpuCache/CacheWriter.cpp, meshOpCmd/meshOpCmd.cpp, meshOpCmd/polyModifierCmd.cpp, particleAttrNode/particleAttrNode.cpp, splitUVCmd/polyModifierCmd.cpp, splitUVCmd/splitUVCmd.cpp, testNobjectNode/testNobjectNode.cpp, and testNpassiveNode/testNpassiveNode.cpp.
MStatus setObject ( const MObject object ) [virtual]

NO SCRIPT SUPPORT.

Attaches the Function Set to the specified read-only Maya Object.

Parameters:
[in] object Maya Object which is the target for attachment
Returns:
Status Code (see below)
Status Codes:
  • MS::kSuccess Successful attachment
  • MS::kInvalidParameter Invalid parameter passed for object - could not access object, object does not exist or object is incompatible type

Reimplemented in MFnDagNode.

const char * className ( ) [static]

Returns the name of this class.

Returns:
Name of this class.

Reimplemented in MFnPlugin.


The documentation for this class was generated from the following files: