C++ API Reference

Base class for user defined transforms. More...

#include <MPxTransform.h>

+ Inheritance diagram for MPxTransform:

Public Member Functions

 MPxTransform ()
 Class constructor.
 
 MPxTransform (const MPxTransform &)
 Default copy constructor MPxTransform is a weak-reference to the internal maya node, copying it has the same semantic as copying a raw-pointer.
 
MPxTransformoperator= (const MPxTransform &)
 Default copy assignment operator MPxTransform is a weak-reference to the internal maya node, copying it has the same semantic as copying a raw-pointer.
 
 ~MPxTransform () override
 Class destructor.
 
void postConstructor () override
 Post constructor. More...
 
MPxNode::Type type () const override
 This method returns the type of the node. More...
 
virtual MPxTransformationMatrixcreateTransformationMatrix ()
 This method returns a new transformation matrix. More...
 
virtual bool isBounded () const
 This method should be overridden to return true if the user supplies a bounding box routine. More...
 
virtual MBoundingBox boundingBox () const
 This method should be overridden to return a bounding box for the transform. More...
 
virtual bool treatAsTransform () const
 Maya's base transform node type is treated differently from node types which are derived from it. More...
 
const MPxTransformationMatrixtransformationMatrix () const
 This method returns a reference to the cached transformation matrix for current context. More...
 
MPxTransformationMatrixtransformationMatrixPtr () const
 This function returns a pointer to the cached transformation matrix for current context. More...
 
virtual void resetTransformation (const MMatrix &)
 This method will reset the transformation matrix to one that is constructed with the passed MMatrix. More...
 
virtual void resetTransformation (MPxTransformationMatrix *)
 This method will reset the transformation matrix to the one specified by the passed transformation matrix pointer. More...
 
MStatus compute (const MPlug &plug, MDataBlock &data) override
 The transform's compute method. More...
 
virtual MStatus computeLocalTransformation (MPxTransformationMatrix *, MDataBlock &) OPENMAYA_NO_OVERRIDE
 This method computes the transformation matrix for a passed data block and places the output into a passed transformation matrix. More...
 
virtual MStatus clearLimits ()
 This method turns off all of the limits and sets them to their default values. More...
 
bool isLimited (MFnTransform::LimitType, MStatus *ReturnStatus=NULL) const
 Determine if the specified limit attribute is enabled or disabled. More...
 
double limitValue (MFnTransform::LimitType, MStatus *ReturnStatus=NULL) const
 Returns the current value of the specified limit in internal units as a double. More...
 
MStatus setLimit (MFnTransform::LimitType, double value)
 Change the limit value for the specified limit type, and automatically enable the limit to be true. More...
 
MStatus enableLimit (MFnTransform::LimitType, bool flag)
 Enable or disable the limit value for the specified limit type. More...
 
virtual MStatus validateAndSetValue (const MPlug &, const MDataHandle &)
 When a plug's value is set, and the plug is on a default transform attribute, or has been flagged by the mustCallValidateAndSet() method, then this method will be called. More...
 
virtual MMatrix getMatrix (MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 This method returns a 4x4 matrix that is produced by applying all of the components of the transform. More...
 
virtual MMatrix getMatrixInverse (MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 This method returns the inverse of the 4x4 matrix that describes this transformation in the current evaluation context. More...
 
virtual MVector getTranslation (MSpace::Space=MSpace::kTransform, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 This method returns the translation component of the transform as a MVector in internal units (centimeters). More...
 
virtual MStatus translateTo (const MVector &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 Set the translation component of the transform in centimeters. More...
 
virtual MStatus translateBy (const MVector &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 Add to the translation component by translating relative to the existing transform. More...
 
virtual MQuaternion getRotation (MSpace::Space=MSpace::kTransform, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 This method returns the rotation of the transform as a quaternion. More...
 
virtual MEulerRotation getEulerRotation (MSpace::Space=MSpace::kTransform, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Returns the rotation component of the transform as a euler rotation. More...
 
virtual MStatus rotateTo (const MQuaternion &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 Sets the rotation component of the transform using a quaternion. More...
 
virtual MStatus rotateBy (const MQuaternion &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 Adds to the rotation component of the transform by rotating relative to the existing transformation using a quaternion. More...
 
virtual MStatus rotateTo (const MEulerRotation &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 Sets the rotation component of the transform using an euler rotation. More...
 
virtual MStatus rotateBy (const MEulerRotation &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 Adds to the rotation component of the transform by rotating relative to the existing transform using a euler rotation. More...
 
virtual MVector getScale (MSpace::Space=MSpace::kTransform, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Returns the scale component of the transform. More...
 
virtual MStatus scaleTo (const MVector &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 This method will set the scale of the transform to the passed value. More...
 
virtual MStatus scaleBy (const MVector &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 This method will apply a relative scale to an existing scale. More...
 
virtual MVector getShear (MSpace::Space=MSpace::kTransform, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Get the shear value for this transform. More...
 
virtual MStatus shearTo (const MVector &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 The method sets the shear component of the transform. More...
 
virtual MStatus shearBy (const MVector &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 This method will apply a relative shear to the existing shear. More...
 
virtual MPoint getScalePivot (MSpace::Space=MSpace::kTransform, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 This method returns the position of the pivot used by the scale component of the transform. More...
 
virtual MPoint getRotatePivot (MSpace::Space=MSpace::kTransform, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 This method returns the position of the pivot used by the rotate component of the transform. More...
 
virtual MVector getScalePivotTranslation (MSpace::Space=MSpace::kTransform, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 This method returns the scale pivot translation in internal units (centimeters). More...
 
virtual MVector getRotatePivotTranslation (MSpace::Space=MSpace::kTransform, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 This method returns the rotate pivot translation in internal units (centimeters). More...
 
virtual MStatus setScalePivot (const MPoint &, MSpace::Space=MSpace::kTransform, bool balance=true) OPENMAYA_NO_OVERRIDE
 This method sets the position of the scale pivot. More...
 
virtual MStatus setScalePivotTranslation (const MVector &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 This method sets the scale pivot translation in internal units (centimeters). More...
 
virtual MStatus setRotatePivot (const MPoint &, MSpace::Space=MSpace::kTransform, bool balance=true) OPENMAYA_NO_OVERRIDE
 This method sets the position of the rotate pivot. More...
 
virtual MStatus setRotatePivotTranslation (const MVector &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 This method sets the rotate pivot translation in internal units (centimeters). More...
 
virtual MTransformationMatrix::RotationOrder getRotationOrder () OPENMAYA_NO_OVERRIDE
 Returns the rotation order used by the rotation component of the transformation matrix. More...
 
virtual MStatus setRotationOrder (MTransformationMatrix::RotationOrder ro, bool reorder=true) OPENMAYA_NO_OVERRIDE
 Sets the rotation order used by the rotation component of the transformation matrix. More...
 
virtual MQuaternion getRotateOrientation (MSpace::Space apiSpace=MSpace::kTransform, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Returns the rotate orientation for the transformation matrix as a quaternion. More...
 
virtual MStatus setRotateOrientation (const MQuaternion &q, MSpace::Space apiSpace=MSpace::kTransform, bool balance=true) OPENMAYA_NO_OVERRIDE
 This method sets the rotate orientation for this transform. More...
 
virtual MQuaternion getPreRotation () const
 This methods returns preRotation, which is an optional rotation that can be applied after the rotation channel and before the translation channel in the transform matrix. More...
 
MStatus updateMatrixAttrs ()
 This method is used only for the MPxTransform and MPxTransform derived classes. More...
 
MStatus updateMatrixAttrs (MObject &attr)
 This method ensures that a passed attribute will have its values current. More...
 
void copyInternalData (MPxNode *) override
 This function copies the internal data of the transform node. More...
 
MStatus _dirtyTranslation (const MVector &v)
 Deprecated in 2023.0 More...
 
MStatus _dirtyRotation (const MEulerRotation &e)
 Deprecated in 2023.0 More...
 
MStatus _dirtyScale (const MVector &v)
 Deprecated in 2023.0 More...
 
MStatus _dirtyShear (const MVector &v)
 Deprecated in 2023.0 More...
 
MStatus _dirtyRotateOrientation (const MEulerRotation &e)
 Deprecated in 2023.0 More...
 
MStatus _dirtyScalePivot (const MPoint &p)
 Deprecated in 2023.0 More...
 
MStatus _dirtyRotatePivot (const MPoint &p)
 Deprecated in 2023.0 More...
 
MStatus _dirtyScalePivotTranslation (const MVector &v)
 Deprecated in 2023.0 More...
 
MStatus _dirtyRotatePivotTranslation (const MVector &v)
 Deprecated in 2023.0 More...
 
MObject thisMObject () const override
 Returns the MObject associated with this user defined node. More...
 
 MPxTransform (MPxTransformationMatrix *)
 Deprecated in 2019.0 More...
 
virtual MStatus validateAndSetValue (const MPlug &, const MDataHandle &, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
MStatus updateMatrixAttrs (const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
MStatus updateMatrixAttrs (MObject &attr, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MMatrix getMatrix (const MDGContext &, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MMatrix getMatrixInverse (const MDGContext &, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MVector getTranslation (MSpace::Space, const MDGContext &, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus translateTo (const MVector &, MSpace::Space, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus translateBy (const MVector &, MSpace::Space, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MQuaternion getRotation (MSpace::Space, const MDGContext &, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MEulerRotation getEulerRotation (MSpace::Space, const MDGContext &, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus rotateTo (const MQuaternion &, MSpace::Space, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus rotateBy (const MQuaternion &, MSpace::Space, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus rotateTo (const MEulerRotation &, MSpace::Space, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus rotateBy (const MEulerRotation &, MSpace::Space, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MVector getScale (MSpace::Space, const MDGContext &, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus scaleTo (const MVector &, MSpace::Space, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus scaleBy (const MVector &, MSpace::Space, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MVector getShear (MSpace::Space, const MDGContext &, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus shearTo (const MVector &, MSpace::Space, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus shearBy (const MVector &, MSpace::Space, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MPoint getScalePivot (MSpace::Space, const MDGContext &, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MPoint getRotatePivot (MSpace::Space, const MDGContext &, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MVector getScalePivotTranslation (MSpace::Space, const MDGContext &, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MVector getRotatePivotTranslation (MSpace::Space, const MDGContext &, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus setScalePivot (const MPoint &, MSpace::Space, bool balance, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus setScalePivotTranslation (const MVector &, MSpace::Space, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus setRotatePivot (const MPoint &, MSpace::Space, bool balance, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus setRotatePivotTranslation (const MVector &, MSpace::Space, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MTransformationMatrix::RotationOrder getRotationOrder (const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus setRotationOrder (MTransformationMatrix::RotationOrder, bool reorder, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MQuaternion getRotateOrientation (MSpace::Space apiSpace, const MDGContext &apiContext, MStatus *ReturnStatus=NULL) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
virtual MStatus setRotateOrientation (const MQuaternion &q, MSpace::Space, bool balance, const MDGContext &) OPENMAYA_NO_OVERRIDE
 Deprecated in 2018.0 More...
 
- Public Member Functions inherited from MPxNode
 MPxNode ()
 Constructor. More...
 
virtual ~MPxNode ()
 Destructor.
 
virtual bool getInternalValue (const MPlug &, MDataHandle &)
 This method is overridden by nodes that store attribute data in some internal format. More...
 
virtual bool setInternalValue (const MPlug &, const MDataHandle &)
 This method is overridden by nodes that store attribute data in some internal format. More...
 
virtual int internalArrayCount (const MPlug &) const
 This method is overridden by nodes that have internal array attributes which are not stored in Maya's datablock. More...
 
virtual MStatus legalConnection (const MPlug &, const MPlug &, bool asSrc, bool &isLegal) const
 This method allows you to check for legal connections being made to attributes of this node. More...
 
virtual MStatus legalDisconnection (const MPlug &, const MPlug &, bool asSrc, bool &isLegal) const
 This method allows you to check for legal disconnections being made to attributes of this node. More...
 
virtual MStatus setDependentsDirty (const MPlug &plug, MPlugArray &plugArray)
 This method can be overridden in user defined nodes to specify which plugs should be set dirty based upon an input plug {plugBeingDirtied} which Maya is marking dirty. More...
 
virtual MStatus preEvaluation (const MDGContext &context, const MEvaluationNode &evaluationNode)
 Prepare a node's internal state for threaded evaluation. More...
 
virtual MStatus postEvaluation (const MDGContext &context, const MEvaluationNode &evaluationNode, PostEvaluationType evalType)
 Clean up node's internal state after threaded evaluation. More...
 
virtual SchedulingType schedulingType () const
 When overridden this method controls the degree of parallelism supported by the node during threaded evaluation. More...
 
virtual void getCacheSetup (const MEvaluationNode &, MNodeCacheDisablingInfo &, MNodeCacheSetupInfo &, MObjectArray &) const
 Introduced in 2020.0 More...
 
virtual void configCache (const MEvaluationNode &, MCacheSchema &) const
 Introduced in 2020.0 More...
 
virtual MTimeRange transformInvalidationRange (const MPlug &source, const MTimeRange &input) const
 Introduced in 2020.0 More...
 
bool hasInvalidationRangeTransformation () const
 Introduced in 2020.0 More...
 
virtual MStatus connectionMade (const MPlug &, const MPlug &, bool asSrc)
 This method gets called when connections are made to attributes of this node. More...
 
virtual MStatus connectionBroken (const MPlug &, const MPlug &, bool asSrc)
 This method gets called when connections are broken with attributes of this node. More...
 
virtual MStatus dependsOn (const MPlug &, const MPlug &, bool &depends) const
 This method may be overridden by the user defined node. More...
 
virtual bool isPassiveOutput (const MPlug &) const
 This method may be overridden by the user defined node if it wants to provide output attributes which do not prevent value modifications to the destination attribute. More...
 
virtual MStatus shouldSave (const MPlug &, bool &isSaving)
 This method may be overridden by the user defined node. More...
 
virtual MPlug passThroughToOne (const MPlug &) const
 This method may be overridden by nodes that have a one-to-one relationship between an input attribute and a corresponding output attribute. More...
 
virtual bool passThroughToMany (const MPlug &, MPlugArray &) const
 This method is overridden by nodes that want to control the traversal behavior of some Maya search algorithms which traverse the history/future of shape nodes looking for directly related nodes. More...
 
virtual bool isAbstractClass () const
 Override this class to return true if this node is an abstract node. More...
 
virtual bool isTrackingTopology () const
 Introduced in 2019.0 More...
 
virtual MStringArray getFilesToArchive (bool shortName=false, bool unresolvedName=false, bool markCouldBeImageSequence=false) const
 Use this method to return all external files used by this node. More...
 
virtual void getExternalContent (MExternalContentInfoTable &table) const
 Returns the external content (files) that this node depends on. More...
 
bool addExternalContentForFileAttr (MExternalContentInfoTable &, const MObject &attr) const
 Adds content info to the specified table from a file path attribute. More...
 
bool setExternalContentForFileAttr (const MObject &attr, const MExternalContentLocationTable &)
 Sets content info in the specified attribute from the table. More...
 
virtual void setExternalContent (const MExternalContentLocationTable &)
 Changes the location of external content in batch. More...
 
virtual MTypeId typeId () const
 Returns the TYPEID of this node. More...
 
virtual MString typeName () const
 Returns the type name of this node. More...
 
virtual MString name () const
 Returns the name of this particular instance of this class. More...
 
virtual MStatus setExistWithoutInConnections (bool flag)
 This method specifies whether or not the node can exist without input connections. More...
 
virtual bool existWithoutInConnections (MStatus *ReturnStatus=NULL) const
 Determines whether or not this node can exist without input connections. More...
 
virtual MStatus setExistWithoutOutConnections (bool flag)
 This method specifies whether or not the node can exist without output connections. More...
 
virtual bool existWithoutOutConnections (MStatus *ReturnStatus=NULL) const
 Determines whether or not this node can exist without output connections. More...
 
void _setMPSafe (bool isMPSafe)
 Deprecated in 2019.0 More...
 
MDataBlock _forceCache (const MDGContext &)
 Deprecated in 2018.0 More...
 
virtual bool getInternalValueInContext (const MPlug &, MDataHandle &, MDGContext &)
 Deprecated in 2018.0 More...
 
virtual bool setInternalValueInContext (const MPlug &, const MDataHandle &, MDGContext &)
 Deprecated in 2018.0 More...
 
virtual int internalArrayCount (const MPlug &, const MDGContext &) const
 Deprecated in 2018.0 More...
 

Static Public Member Functions

static void mustCallValidateAndSet (MObject &)
 This method must be called in the initialize() method for all attributes that affect the matrix of the transform. More...
 
static MStatus setNonAffineMatricesEnabled (bool)
 Normal Maya transforms consist of translate, rotate, scale, and shear. More...
 
static bool isNonAffineMatricesEnabled (MStatus *ReturnStatus)
 This method returns true is non-affine matrix calculations are being used for transforms. More...
 
static const char * className ()
 Returns the name of this class. More...
 
- Static Public Member Functions inherited from MPxNode
static MStatus addAttribute (const MObject &attr)
 This method adds a new attribute to a user defined node type during the type's initialization. More...
 
static MStatus inheritAttributesFrom (const MString &parentClassName)
 This method allows a class of plugin node to inherit all of the attributes of a second class of plugin node. More...
 
static MStatus attributeAffects (const MObject &whenChanges, const MObject &isAffected)
 This method specifies that a particular input attribute affects a specific output attribute. More...
 
static MStatus attributeAffects (const MObject &whenChanges, const MObject &isAffected, bool affectsTopology)
 Introduced in 2019.0 More...
 
static const char * className ()
 Returns the name of this class. More...
 

Public Attributes

MPxTransformationMatrixbaseTransformationMatrix
 Cached MPxTransformationMatrix for normal-context (same as returned by transformationMatrix() method in normal-context). More...
 

Static Public Attributes

static MObject nodeBoundingBox
 bounding box attribute
 
static MObject nodeBoundingBoxMin
 bounding box minimum point
 
static MObject nodeBoundingBoxMinX
 X component of nodeBoundingBoxMin.
 
static MObject nodeBoundingBoxMinY
 Y component of nodeBoundingBoxMin.
 
static MObject nodeBoundingBoxMinZ
 Z component of nodeBoundingBoxMin.
 
static MObject nodeBoundingBoxMax
 bounding box maximum point
 
static MObject nodeBoundingBoxMaxX
 X component of nodeBoundingBoxMax.
 
static MObject nodeBoundingBoxMaxY
 Y component of nodeBoundingBoxMax.
 
static MObject nodeBoundingBoxMaxZ
 Z component of nodeBoundingBoxMax.
 
static MObject nodeBoundingBoxSize
 bounding box size vector
 
static MObject nodeBoundingBoxSizeX
 X component of nodeBoundingBoxSize.
 
static MObject nodeBoundingBoxSizeY
 Y component of nodeBoundingBoxSize.
 
static MObject nodeBoundingBoxSizeZ
 Z component of nodeBoundingBoxSize.
 
static MObject center
 object center attribute
 
static MObject boundingBoxCenterX
 X component of the bounding box center.
 
static MObject boundingBoxCenterY
 Y component of the bounding box center.
 
static MObject boundingBoxCenterZ
 Z component of the bounding box center.
 
static MObject matrix
 matrix attribute
 
static MObject inverseMatrix
 inverse matrix attribute
 
static MObject worldMatrix
 world matrix attribute
 
static MObject worldInverseMatrix
 Inverse world matrix attribute.
 
static MObject parentMatrix
 Parent matrix attribute.
 
static MObject parentInverseMatrix
 Inverse parent matrix attribute.
 
static MObject visibility
 Visibility attribute.
 
static MObject intermediateObject
 Intermediate object attribute.
 
static MObject isTemplated
 Template attribute.
 
static MObject ghosting
 Ghosting attribute.
 
static MObject instObjGroups
 Instances object group info attribute.
 
static MObject objectGroups
 Object groups attributes.
 
static MObject objectGrpCompList
 Component in object groups attribute.
 
static MObject objectGroupId
 Group id attribute.
 
static MObject objectGroupColor
 Group color attribute.
 
static MObject useObjectColor
 Controls choice of wireframe dormant object color.
 
static MObject objectColor
 The per object dormant wireframe color.
 
static MObject drawOverride
 Draw override attribute.
 
static MObject overrideDisplayType
 Draw override display type attribute.
 
static MObject overrideLevelOfDetail
 Draw override LOD attribute.
 
static MObject overrideShading
 Draw override shading attribute.
 
static MObject overrideTexturing
 Draw override texturing attribute.
 
static MObject overridePlayback
 Draw override playback attribute.
 
static MObject overrideEnabled
 Draw override enabled attribute.
 
static MObject overrideVisibility
 Draw override visibility attribute.
 
static MObject overrideColor
 Draw override color attribute.
 
static MObject lodVisibility
 LOD visibility attribute.
 
static MObject renderInfo
 This is obsolete. More...
 
static MObject identification
 This is obsolete. More...
 
static MObject layerRenderable
 This is obsolete. More...
 
static MObject layerOverrideColor
 This is obsolete. More...
 
static MObject renderLayerInfo
 Render layer Info attribute.
 
static MObject renderLayerId
 Render layer ID attribute.
 
static MObject renderLayerRenderable
 Render layer Renderable attribute.
 
static MObject renderLayerColor
 Render layer Color attribute.
 
static MObject translate
 translate attribute
 
static MObject translateX
 translateX attribute
 
static MObject translateY
 translateY attribute
 
static MObject translateZ
 translateZ attribute
 
static MObject rotate
 rotate attribute
 
static MObject rotateX
 rotateX attribute
 
static MObject rotateY
 rotateY attribute
 
static MObject rotateZ
 rotateZ attribute
 
static MObject rotateOrder
 Rotate order attribute.
 
static MObject scale
 scale attribute
 
static MObject scaleX
 scaleX attribute
 
static MObject scaleY
 scaleY attribute
 
static MObject scaleZ
 scaleZ attribute
 
static MObject shear
 shear attribute
 
static MObject shearXY
 shearXY attribute
 
static MObject shearXZ
 shearXZ attribute
 
static MObject shearYZ
 shearYZ attribute
 
static MObject rotatePivot
 rotate pivot attribute
 
static MObject rotatePivotX
 rotate pivot X attribute
 
static MObject rotatePivotY
 rotate pivot Y attribute
 
static MObject rotatePivotZ
 rotate pivot Z attribute
 
static MObject rotatePivotTranslate
 rotate pivot translate attribute
 
static MObject rotatePivotTranslateX
 rotate pivot translate X attribute
 
static MObject rotatePivotTranslateY
 rotate pivot translate Y attribute
 
static MObject rotatePivotTranslateZ
 rotate pivot translate Z attribute
 
static MObject scalePivot
 scale pivot attribute
 
static MObject scalePivotX
 scale pivot X attribute
 
static MObject scalePivotY
 scale pivot Y attribute
 
static MObject scalePivotZ
 scale pivot Z attribute
 
static MObject scalePivotTranslate
 Scale pivot translate attribute.
 
static MObject scalePivotTranslateX
 scale pivot translate X attribute
 
static MObject scalePivotTranslateY
 scale pivot translate Y attribute
 
static MObject scalePivotTranslateZ
 scale pivot translate Z attribute
 
static MObject rotateAxis
 Rotate orientation attribute.
 
static MObject rotateAxisX
 rotate orientation X attribute
 
static MObject rotateAxisY
 rotate orientation Y attribute
 
static MObject rotateAxisZ
 rotate orientation Z attribute
 
static MObject transMinusRotatePivot
 translate minus rotate pivot attribute
 
static MObject transMinusRotatePivotX
 translateX minus rotate pivotX attribute
 
static MObject transMinusRotatePivotY
 translateY minus rotate pivotY attribute
 
static MObject transMinusRotatePivotZ
 translateZ minus rotate pivotZ attribute
 
static MObject minTransLimit
 Minumum translation limits attribute.
 
static MObject minTransXLimit
 minimum translate X limit attribute
 
static MObject minTransYLimit
 minimum translate Y limit attribute
 
static MObject minTransZLimit
 minimum translate Z limit attribute
 
static MObject maxTransLimit
 Maximum translation limits attribute.
 
static MObject maxTransXLimit
 maximum translate X limit attribute
 
static MObject maxTransYLimit
 maximum translate Y limit attribute
 
static MObject maxTransZLimit
 maximum translate Z limit attribute
 
static MObject minTransLimitEnable
 Enable the mimimum translation limits attribute.
 
static MObject minTransXLimitEnable
 enable the minimum translate X limit attribute
 
static MObject minTransYLimitEnable
 enable the minimum translate Y limit attribute
 
static MObject minTransZLimitEnable
 enable the minimum translate Z limit attribute
 
static MObject maxTransLimitEnable
 Enable the maximum translation limits attribute.
 
static MObject maxTransXLimitEnable
 enable the maximum translate X limit attribute
 
static MObject maxTransYLimitEnable
 enable the maximum translate Y limit attribute
 
static MObject maxTransZLimitEnable
 enable the maximum translate Z limit attribute
 
static MObject minRotLimit
 Minimum rotation limits attribute.
 
static MObject minRotXLimit
 minimum rotate X limit attribute
 
static MObject minRotYLimit
 minimum rotate Y limit attribute
 
static MObject minRotZLimit
 minimum rotate Z limit attribute
 
static MObject maxRotLimit
 Maximum rotation limits attribute.
 
static MObject maxRotXLimit
 maximum rotate X limit attribute
 
static MObject maxRotYLimit
 maximum rotate Y limit attribute
 
static MObject maxRotZLimit
 maximum rotate Z limit attribute
 
static MObject minRotLimitEnable
 Enable minimum rotation limits attribute.
 
static MObject minRotXLimitEnable
 enable minimum rotate X limit attribute
 
static MObject minRotYLimitEnable
 enable minimum rotate Y limit attribute
 
static MObject minRotZLimitEnable
 enable minimum rotate Z limit attribute
 
static MObject maxRotLimitEnable
 Enable maximum rotation limits attribute.
 
static MObject maxRotXLimitEnable
 enable maximum rotate X limit attribute
 
static MObject maxRotYLimitEnable
 enable maximum rotate Y limit attribute
 
static MObject maxRotZLimitEnable
 enable maximum rotate Z limit attribute
 
static MObject minScaleLimit
 Minimum scale limit attribute.
 
static MObject minScaleXLimit
 minimum scale X limit attribute
 
static MObject minScaleYLimit
 minimum scale Y limit attribute
 
static MObject minScaleZLimit
 minimum scale Z limit attribute
 
static MObject maxScaleLimit
 Maximum scale limit attribute.
 
static MObject maxScaleXLimit
 maximum scale X limit attribute
 
static MObject maxScaleYLimit
 maximum scale Y limit attribute
 
static MObject maxScaleZLimit
 maximum scale Z limit attribute
 
static MObject minScaleLimitEnable
 Enable minimum scale limit attribute.
 
static MObject minScaleXLimitEnable
 enable minimum scale X limit attribute
 
static MObject minScaleYLimitEnable
 enable minimum scale Y limit attribute
 
static MObject minScaleZLimitEnable
 enable minimum scale Z limit attribute
 
static MObject maxScaleLimitEnable
 Enable maximum scale limit attribute.
 
static MObject maxScaleXLimitEnable
 enable maximum scale X limit attribute
 
static MObject maxScaleYLimitEnable
 enable maximum scale Y limit attribute
 
static MObject maxScaleZLimitEnable
 enable maximum scale Z limit attribute
 
static MObject geometry
 Geometry attribute.
 
static MObject xformMatrix
 Xform matrix attribute.
 
static MObject selectHandle
 Selection handle attribute.
 
static MObject selectHandleX
 Selection handle X attribute.
 
static MObject selectHandleY
 Selection handle Y attribute.
 
static MObject selectHandleZ
 Selection handle Z attribute.
 
static MObject inheritsTransform
 Inherits transform attribute.
 
static MObject displayHandle
 Display handle attribute.
 
static MObject displayScalePivot
 Display scale pivot attribute.
 
static MObject displayRotatePivot
 Display rotate pivot attribute.
 
static MObject displayLocalAxis
 Display local axis attribute.
 
static MObject dynamics
 Dynamics attribute.
 
static MObject showManipDefault
 Show manipulator default attribute.
 
static MObject specifiedManipLocation
 Specified manipulator location attribute.
 
static MObject rotateQuaternion
 Rotate quaternion attribute.
 
static MObject rotateQuaternionX
 Rotate quaternion X attribute.
 
static MObject rotateQuaternionY
 Rotate quaternion Y attribute.
 
static MObject rotateQuaternionZ
 Rotate quaternion Z attribute.
 
static MObject rotateQuaternionW
 Rotate quaternion W attribute.
 
static MObject rotationInterpolation
 Rotation interporlation attribute.
 
static MObject offsetParentMatrix
 Introduced in 2022.0 More...
 
- Static Public Attributes inherited from MPxNode
static MObject message
 message attribute
 
static MObject isHistoricallyInteresting
 is historically interesting attribute
 
static MObject caching
 caching attribute
 
static MObject state
 state attribute
 
static MObject frozen
 frozen attribute
 

Protected Member Functions

virtual MVector applyTranslationLimits (const MVector &unclampedT, MDataBlock &, MStatus *ReturnStatus=NULL)
 This method returns a copy of the passed translation value with its members limited by any enabled translation limits on this node. More...
 
virtual MVector applyTranslationLocks (const MVector &toTest, const MVector &savedT, MStatus *ReturnStatus=NULL)
 This method allows the custom transform to apply its own locking mechanism to translation. More...
 
virtual MEulerRotation applyRotationLimits (const MEulerRotation &unclampedR, MDataBlock &, MStatus *ReturnStatus=NULL)
 This method returns a copy of the passed rotation value with its members limited by any enabled rotation limits on this node. More...
 
virtual MEulerRotation applyRotationLocks (const MEulerRotation &toTest, const MEulerRotation &savedR, MStatus *ReturnStatus=NULL)
 This method allows the custom transform to apply its own locking mechanism to rotation. More...
 
virtual MVector applyScaleLimits (const MVector &unclampedS, MDataBlock &, MStatus *ReturnStatus=NULL)
 This method returns a copy of the passed scale value with its members limited by any enabled scale limits on this node. More...
 
virtual MVector applyScaleLocks (const MVector &toTest, const MVector &savedS, MStatus *ReturnStatus=NULL)
 This method allows the custom transform to apply its own locking mechanism to scale. More...
 
virtual MVector applyShearLocks (const MVector &toTest, const MVector &savedSh, MStatus *ReturnStatus=NULL)
 This method allows the custom transform to apply its own locking mechanism to shear. More...
 
virtual MEulerRotation applyRotateOrientationLocks (const MEulerRotation &toTest, const MEulerRotation &savedRO, MStatus *ReturnStatus=NULL)
 This method allows the custom transform to apply its own locking mechanism to rotation orientation. More...
 
virtual MVector applyScaleLocksPivot (const MPoint &toTest, const MPoint &savedSP, MStatus *ReturnStatus=NULL)
 This method allows the custom transform to apply its own locking mechanism to scale pivot. More...
 
virtual MVector applyRotatePivotLocks (const MPoint &toTest, const MPoint &savedRP, MStatus *ReturnStatus=NULL)
 This method allows the custom transform to apply its own locking mechanism to rotation pivots. More...
 
virtual MVector applyScaleLocksPivotTranslate (const MVector &toTest, const MVector &savedSPT, MStatus *ReturnStatus=NULL)
 This method allows the custom transform to apply its own locking mechanism to the scalePivotTranslate attribute. More...
 
virtual MVector applyRotatePivotLocksTranslate (const MVector &toTest, const MVector &savedRPT, MStatus *ReturnStatus=NULL)
 This method allows the custom transform to apply its own locking mechanism to the rotatePivotTranslate attribute. More...
 
MStatus dirtyMatrix ()
 USE _dirtyMatrix() IN SCRIPT. More...
 
MStatus dirtyTranslation (const MVector &)
 Deprecated in 2023.0 More...
 
MStatus dirtyRotation (const MEulerRotation &)
 Deprecated in 2023.0 More...
 
MStatus dirtyScale (const MVector &)
 Deprecated in 2023.0 More...
 
MStatus dirtyShear (const MVector &)
 Deprecated in 2023.0 More...
 
MStatus dirtyRotateOrientation (const MEulerRotation &)
 Deprecated in 2023.0 More...
 
MStatus dirtyScalePivot (const MPoint &)
 Deprecated in 2023.0 More...
 
MStatus dirtyRotatePivot (const MPoint &)
 Deprecated in 2023.0 More...
 
MStatus dirtyScalePivotTranslation (const MVector &)
 Deprecated in 2023.0 More...
 
MStatus dirtyRotatePivotTranslation (const MVector &)
 Deprecated in 2023.0 More...
 
virtual MStatus checkAndSetTranslation (MDataBlock &, const MPlug &, const MVector &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 This method is used to modify and set the new translate values being passed in from the compute method or from the validateAndSetValue. More...
 
virtual MStatus checkAndSetRotation (MDataBlock &, const MPlug &, const MEulerRotation &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 This method verifies that the passed value can be set on the rotate plugs. More...
 
virtual MStatus checkAndSetScale (MDataBlock &, const MPlug &, const MVector &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 This method verifies that the passed value can be set on the scale plugs. More...
 
virtual MStatus checkAndSetShear (MDataBlock &, const MPlug &, const MVector &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 This method verifies that the passed value can be set on the shear plugs. More...
 
virtual MStatus checkAndSetRotateOrientation (MDataBlock &, const MPlug &, const MEulerRotation &, MSpace::Space=MSpace::kTransform, bool balance=true) OPENMAYA_NO_OVERRIDE
 This method verifies that the passed value can be set on the rotateAxis plugs. More...
 
virtual MStatus checkAndSetRotatePivot (MDataBlock &, const MPlug &, const MPoint &, MSpace::Space=MSpace::kTransform, bool balance=true) OPENMAYA_NO_OVERRIDE
 This method verifies that the passed value can be set on the rotatePivot plugs. More...
 
virtual MStatus checkAndSetRotatePivotTranslation (MDataBlock &, const MPlug &, const MVector &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 This method verifies that the passed value can be set on the rotatePivotTranslate plugs. More...
 
virtual MStatus checkAndSetScalePivot (MDataBlock &, const MPlug &, const MPoint &, MSpace::Space=MSpace::kTransform, bool=true) OPENMAYA_NO_OVERRIDE
 This method verifies that the passed value can be set on the scalePivot plugs. More...
 
virtual MStatus checkAndSetScalePivotTranslation (MDataBlock &, const MPlug &, const MVector &, MSpace::Space=MSpace::kTransform) OPENMAYA_NO_OVERRIDE
 This method verifies that the passed value can be set on the scalePivotTranslate plugs. More...
 
- Protected Member Functions inherited from MPxNode
virtual MDataBlock forceCache ()
 USE _forceCache() IN SCRIPT. More...
 
virtual MStatus setDoNotWrite (bool flag)
 USE _setDoNotWrite() IN SCRIPT. More...
 
virtual bool doNotWrite (MStatus *ReturnStatus=NULL) const
 USE _doNotWrite() IN SCRIPT. More...
 
virtual void setMPSafe (bool isMPSafe)
 Deprecated in 2019.0 More...
 
virtual MDataBlock forceCache (const MDGContext &)
 Deprecated in 2018.0 More...
 

Additional Inherited Members

- Public Types inherited from MPxNode
enum  Type {
  kDependNode, kLocatorNode, kDeformerNode, kManipContainer,
  kSurfaceShape, kFieldNode, kEmitterNode, kSpringNode,
  kIkSolverNode, kHardwareShader, kHwShaderNode, kTransformNode,
  kObjectSet, kFluidEmitterNode, kImagePlaneNode, kParticleAttributeMapperNode,
  kCameraSetNode, kConstraintNode, kManipulatorNode, kMotionPathNode,
  kClientDeviceNode, kThreadedDeviceNode, kAssembly, kSkinCluster,
  kGeometryFilter, kBlendShape, kLast
}
 Defines the type of node. More...
 
enum  SchedulingType {
  kParallel, kSerial, kGloballySerial, kUntrusted ,
  kDefaultScheduling = kSerial, kSerialize = kSerial, kGloballySerialize = kGloballySerial
}
 Defines the degree of parallelism of a node. More...
 

Detailed Description

Base class for user defined transforms.

MPxTransform allows the creation of user defined transform nodes. User defined transform nodes can introduce new transform types or change the transformation order. They are designed to be an extension of the standard Maya transform node and include all of the normal transform attributes. Standard behaviors such as limit enforcement and attribute locking are managed by this class, but may be overriden in derived classes.

In general, a complete implementation of user defined transforms will require the deriving from two classes; MPxTransform defines the node while MPxTransformationMatrix describes the mathematical functions of the user defined transform.

The MPxTransform class is registered using the MFnPlugin::registerTransform() method. Both the MPxTransform and the MPxTransformationMatrix classes are registered in the same method. This allows for a clear association between a MPxTransform and a MPxTransformationMatrix. Both the MPxTransform and the MPxTransformationMatrix classes need unique MTypeIds.

MPxTransform nodes are DAG nodes and therefore a change to one element will affect every node beneath the changed node. Since this can involve quite a bit of calculation, DAG nodes internally handle clean and dirty differently than other nodes. What this means is that the updateMatrixAttrs() method should be used when getting one of the matrix attributes from a method on this node. Additionally, after a value is changed, the appropriate dirty method (i.e. dirtyTranslate(), dirtyRotate(), etc.) should be called. When in doubt, dirtyMatrix() will flag everything as needing to be updated.

It is up to each transform node to determine if it will obey limits or not. Since transform attributes may have limits or may be involved in some sort of constraint, there needs to be a way to accept, reject, or modify a value when a plug is set on the node. The mustCallValidateAndSet() method allows for this kind of control. When an attribute is flagged with the mustCallValidateAndSet() method in the initialize() method, every plug change will call the validateAndSetValue() method for approval. From the validateAndSetValue() method things like limits and value locking can be enforced. It is important to note that for new attributes on the transform node, any locking or limits are left as an implementation detail.

If any of the public methods are affected by the addition of transform components, or by the order of computation, they should be overriden in the derived class. Many of the public methods are used by internal Maya code and exist for more than just convenience.

The createTransformationMatrix() class must be overloaded if a transformation matrix other than the default MPxTransformationMatrix is used.

NOTES: 1) The setDependentsDirty() virtual method is available in this class since MPxTransform derives from MPxNode. During a call to MPxTransform::setDependentsDirty(), a plug-in should not invoke any of the dirty*() or updateMatrixAttrs() calls of this class. For example, the methods dirtyMatrix(), dirtyTranslation() or updateMatrixAttrs() should not be called. 2) Updating world space attributes is an expensive operation. Maya updates world space attributes on demand such as in the case of a getAttr being issued or a connection exists for the attribute.

Examples:
manipOverride/rockingTransform2.h, rockingTransform/rockingTransform.h, and rockingTransformCheck/rockingTransform.h.

Constructor & Destructor Documentation

Deprecated in 2019.0

Class constructor.

Deprecated:
Use default-constructor instead, Maya will manage the creation of MPxTransformationMatrix on demand.
2019.0:
Deprecated in this version.

The passed pointer to a MPxTransformationMatrix derived object will be used for the transformation matrix calculation. This class will assume responsibility to delete this memory.

Parameters
[in]tmA pointer to a MPxTransformationMatrix derived object.

Member Function Documentation

void postConstructor ( )
overridevirtual

Post constructor.

Internally maya creates two objects when a user defined node is created, the internal MObject and the user derived object. The association between the these two objects is not made until after the MPxNode constructor is called. This implies that no MPxNode member function can be called from the MPxNode constructor. The postConstructor will get called immediately after the constructor when it is safe to call any MPxNode member function.

Reimplemented from MPxNode.

Examples:
manipOverride/rockingTransform2.h, rockingTransform/rockingTransform.h, and rockingTransformCheck/rockingTransform.h.
_OPENMAYA_DEPRECATION_POP_WARNING MPxNode::Type type ( ) const
overridevirtual

This method returns the type of the node.

This method should not be overridden by the user. It will return MPxNode::kTransformNode.

Returns
An enum specifying the node type.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.

Reimplemented from MPxNode.

MPxTransformationMatrix * createTransformationMatrix ( )
virtual

This method returns a new transformation matrix.

The function that calls this method is responsible for deleting the transformation matrix.

If a derived MPxTransformationMatrix is used as the transformation matrix for the node, then this method must be overridden.

Returns
A pointer to the new transformation matrix.
Examples:
manipOverride/rockingTransform2.h, rockingTransform/rockingTransform.h, and rockingTransformCheck/rockingTransform.h.
bool isBounded ( ) const
virtual

This method should be overridden to return true if the user supplies a bounding box routine.

Supplying a bounding box routine makes refresh and selection more efficient.

Returns
A boolean value indicating whether a bounding box routine has been supplied.
MBoundingBox boundingBox ( ) const
virtual

This method should be overridden to return a bounding box for the transform.

If this method is overridden, then MPxTransform::isBounded should also be overridden to return true.

Returns
The bounding box of the transform.
bool treatAsTransform ( ) const
virtual

Maya's base transform node type is treated differently from node types which are derived from it.

For example, the 'viewFit' command does not include transform nodes in its calculations but does include pointConstraint nodes which are derived from the transform node.

By default, all custom transform node types are treated the same as Maya's base transform node type. Using the same example, by default a custom transform node will be excluded from the 'viewFit' command's calculations.

This method allows that default behaviour to be changed. By overriding this method to return false, a custom node can turn off the special treatment accorded to transform nodes and instead have itself treated the same as Maya treats derived transform nodes.

Returns
True to be treated like a base transform node, false to be treated as a derived transform node.
const MPxTransformationMatrix & transformationMatrix ( ) const

This method returns a reference to the cached transformation matrix for current context.

See also
transformationMatrixPtr()
Returns
The cached transformation matrix for current context.
MPxTransformationMatrix * transformationMatrixPtr ( ) const

This function returns a pointer to the cached transformation matrix for current context.

Note
The result transformation matrix is not guaranteed to be update-to-date. To get the valid transformation matrix, call updateMatrixAttrs() before this method.
void resetTransformation ( const MMatrix matrix)
virtual

This method will reset the transformation matrix to one that is constructed with the passed MMatrix.

How the new transformation matrix is created will depend on the transformation matrix class and its decomposeMatrix() method.

Parameters
[in]matrixThe matrix used for resetting this transform.
Examples:
manipOverride/rockingTransform2.h, rockingTransform/rockingTransform.h, and rockingTransformCheck/rockingTransform.h.
void resetTransformation ( MPxTransformationMatrix xform)
virtual

This method will reset the transformation matrix to the one specified by the passed transformation matrix pointer.

The contents of the passed transformation matrix are copied into this class's transformation matrix.

Parameters
[in]xformA pointer to the source transformation matrix.
MStatus compute ( const MPlug plug,
MDataBlock block 
)
overridevirtual

The transform's compute method.

The compute method should call any supporting methods to proper handle limits as well as the cases where the plug's value should not change. The MPlug::isFreeToChange() method is used to determine if a plug's value may be changed.

When the compute method on derived classes is invoked for an attribute not handled by the derived class, the derived class should call MPxTransform::compute to allow the base classes to handle the attribute.

Parameters
[in]plugThe plug to compute.
[in]blockThe data block.
Returns
Status code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
  • MS::kUnknownParameter The parent class will be called.

Reimplemented from MPxNode.

Examples:
rockingTransform/rockingTransform.cpp, rockingTransform/rockingTransform.h, rockingTransformCheck/rockingTransform.cpp, and rockingTransformCheck/rockingTransform.h.
MStatus computeLocalTransformation ( MPxTransformationMatrix xform,
MDataBlock block 
)
virtual

This method computes the transformation matrix for a passed data block and places the output into a passed transformation matrix.

The caller needs to allocate space for the passed transformation matrix.

Parameters
[in]xformThe transformation matrix to fill with computed values.
[in]blockThe data block used for the transformation matrix computation.
Returns
Status code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
Examples:
rockingTransform/rockingTransform.h, and rockingTransformCheck/rockingTransform.h.
MStatus clearLimits ( )
virtual

This method turns off all of the limits and sets them to their default values.

Before this method is called, the base class clears all of the limits on the standard transform attributes, so this method only needs to be implemented for custom transform attributes.

Returns
Return status.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
bool isLimited ( MFnTransform::LimitType  type,
MStatus ReturnStatus = NULL 
) const

Determine if the specified limit attribute is enabled or disabled.

Parameters
[in]typeAn enum specifying the type of limit to query.
[out]ReturnStatusStatus.
Returns
Returns true if the limit is enabled, otherwise false is returned.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
double limitValue ( MFnTransform::LimitType  type,
MStatus ReturnStatus = NULL 
) const

Returns the current value of the specified limit in internal units as a double.

Parameters
[in]typeAn enum indicating the type of limit to query.
[out]ReturnStatusStatus.
Returns
Returns the current value of the specified limit in internal units as a double.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus setLimit ( MFnTransform::LimitType  type,
double  value 
)

Change the limit value for the specified limit type, and automatically enable the limit to be true.

Parameters
[in]typeAn enum indicating the limit to set.
[in]valueThe new limit value in internal units (centimeters or radians).
Returns
Status code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus enableLimit ( MFnTransform::LimitType  type,
bool  flag 
)

Enable or disable the limit value for the specified limit type.

Parameters
[in]typeAn enum indicating the limit to enable or disable.
[in]flagThe enable value; true will enable while false will disable the limit.
Returns
Status code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
_OPENMAYA_DEPRECATION_PUSH_AND_DISABLE_WARNING MStatus validateAndSetValue ( const MPlug plug,
const MDataHandle handle 
)
virtual

When a plug's value is set, and the plug is on a default transform attribute, or has been flagged by the mustCallValidateAndSet() method, then this method will be called.

The purpose of validateAndSetValue() is to enforce limits, constraints, or plug value locking.

If the plug passed into this method is not an attribute related to the derived class, the derived class should call the validateAndSetValue method of its parent class in order to allow the base classes to handle their attributes.

If any adjustments or corrections are required, they are placed in the data block and if the context is normal, into the cached transformation matrix. Values on the data block are in transform space.

Formerly the context was passed in; now the context will already be set as the current one for evaluation so it isn't necessary. To retrieve the current evaluation context, call MDGContext::current.

If you have specialty code that calls this method directly you'll have to ensure the current context is set using MDGContextGuard or MDGContext::makeCurrent.

Parameters
[in]plugThe plug that is to be set.
[in]handleThe inputValue handle of the data.
Returns
Status code.
Status Codes:
  • MS::kSuccess validateAndSet succeeded.
  • MS::kFailure validateAndSet failed.
Examples:
manipOverride/rockingTransform2.h, rockingTransform/rockingTransform.h, and rockingTransformCheck/rockingTransform.h.
MMatrix getMatrix ( MStatus ReturnStatus = NULL)
virtual

This method returns a 4x4 matrix that is produced by applying all of the components of the transform.

Parameters
[out]ReturnStatusReturn status.
Returns
The transform as a MMatrix.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MMatrix getMatrixInverse ( MStatus ReturnStatus = NULL)
virtual

This method returns the inverse of the 4x4 matrix that describes this transformation in the current evaluation context.

Parameters
[out]ReturnStatusReturn status.
Returns
The inverse of the transform as a MMatrix.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MVector getTranslation ( MSpace::Space  space = MSpace::kTransform,
MStatus ReturnStatus = NULL 
)
virtual

This method returns the translation component of the transform as a MVector in internal units (centimeters).

Parameters
[in]spaceThe space used for setting the translation.
[out]ReturnStatusReturn status.
Returns
The translation MVector in internal units (centimeters).
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MStatus translateTo ( const MVector newTrans,
MSpace::Space  space = MSpace::kTransform 
)
virtual

Set the translation component of the transform in centimeters.

Parameters
[in]newTransThe new translation component in centimeters.
[in]spaceThe space in which to perform the translation.
Returns
Status code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MStatus translateBy ( const MVector transOffset,
MSpace::Space  space = MSpace::kTransform 
)
virtual

Add to the translation component by translating relative to the existing transform.

The transform value should be in internal units (centimeters).

Parameters
[in]transOffsetThe relative translation value in centimeters.
[in]spaceThe space in which to perform the translation.
Returns
Status code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MQuaternion getRotation ( MSpace::Space  space = MSpace::kTransform,
MStatus ReturnStatus = NULL 
)
virtual

This method returns the rotation of the transform as a quaternion.

The rotation is returned in MSpace::kTransform space. If an invalid space is used, MQuaternion::identity will be returned.

Parameters
[in]spaceThe space used for getting the rotate value.
[out]ReturnStatusReturn status.
Returns
The rotate component of the transform as a quaternion.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MEulerRotation getEulerRotation ( MSpace::Space  space = MSpace::kTransform,
MStatus ReturnStatus = NULL 
)
virtual

Returns the rotation component of the transform as a euler rotation.

The rotation is returned in MSpace::kTransform space. If an invalid space is used, MEulerRotation::identity will be returned.

Parameters
[in]spaceThe space used for getting the rotation.
[out]ReturnStatusReturn status.
Returns
The rotation component of the transform as an euler rotation.
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space
MStatus rotateTo ( const MQuaternion newRot,
MSpace::Space  space = MSpace::kTransform 
)
virtual

Sets the rotation component of the transform using a quaternion.

The rotation is performed in MSpace::kTransform space. The transform's existing order of rotation is preserved.

Parameters
[in]newRotThe new rotation value as a quaternion.
[in]spaceThe space of the passed rotation value.
Returns
Return Status.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MStatus rotateBy ( const MQuaternion rotateOffset,
MSpace::Space  space = MSpace::kTransform 
)
virtual

Adds to the rotation component of the transform by rotating relative to the existing transformation using a quaternion.

The only valid transformation spaces for this method are MSpace::kTransform and MSpace::kPreTransform. All other spaces are treated as being equivalent to MSpace::kTransform. The transform's existing order of rotation is preserved.

Parameters
[in]rotateOffsetThe relative rotation to apply to the transform.
[in]spaceThe space of the passed rotation.
Returns
Status code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MStatus rotateTo ( const MEulerRotation euler,
MSpace::Space  space = MSpace::kTransform 
)
virtual

Sets the rotation component of the transform using an euler rotation.

If the new rotation's order of rotation is different from that of the transform it will be reordered to match the transform.

Parameters
[in]eulerThe new rotation value as an euler rotation.
[in]spaceThe space of the passed rotation value.
Returns
Status code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MStatus rotateBy ( const MEulerRotation euler,
MSpace::Space  space = MSpace::kTransform 
)
virtual

Adds to the rotation component of the transform by rotating relative to the existing transform using a euler rotation.

The only valid transformation spaces for this method are MSpace::kTransform and MSpace::kPreTransform/MSpace::kObject. All other spaces are treated as being equivalent to MSpace::kTransform. If the supplied rotation's order of rotation is different from that of the transform, it will be reordered to match the transform before being added in.

Parameters
[in]eulerThe rotation value of the relative euler rotation.
[in]spaceThe space used for the relative rotation.
Returns
Status code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MVector getScale ( MSpace::Space  space = MSpace::kTransform,
MStatus ReturnStatus = NULL 
)
virtual

Returns the scale component of the transform.

If the space is invalid a <1.0, 1.0, 1.0> vector is returned.

Parameters
[in]spaceThe space used to get the scale.
[out]ReturnStatusThe return status.
Returns
A MVector holding the x, y, and z scale components
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed.
MStatus scaleTo ( const MVector newScale,
MSpace::Space  space = MSpace::kTransform 
)
virtual

This method will set the scale of the transform to the passed value.

Parameters
[in]newScaleA MVector holding the scale components.
[in]spaceThe space of the passed scale value.
Returns
Status code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MStatus scaleBy ( const MVector scaleOffset,
MSpace::Space  space = MSpace::kTransform 
)
virtual

This method will apply a relative scale to an existing scale.

Parameters
[in]scaleOffsetA MVector holding the scale components.
[in]spaceThe space of the passed scale values.
Returns
Status code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MVector getShear ( MSpace::Space  space = MSpace::kTransform,
MStatus ReturnStatus = NULL 
)
virtual

Get the shear value for this transform.

Parameters
[in]spaceThe space used for retrieving the shear value.
[out]ReturnStatusReturn status.
Returns
A MVector holding the xy, xz, yz values of shear.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space specification.
MStatus shearTo ( const MVector newShear,
MSpace::Space  space = MSpace::kTransform 
)
virtual

The method sets the shear component of the transform.

Parameters
[in]newShearA MVector holding the new shear value.
[in]spaceThe space of the passed shear value.
Returns
Status code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MStatus shearBy ( const MVector shearOffset,
MSpace::Space  space = MSpace::kTransform 
)
virtual

This method will apply a relative shear to the existing shear.

Parameters
[in]shearOffsetThe relative shear value as a MVector.
[in]spaceThe space of the passed shear value.
Returns
Status code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MPoint getScalePivot ( MSpace::Space  space = MSpace::kTransform,
MStatus ReturnStatus = NULL 
)
virtual

This method returns the position of the pivot used by the scale component of the transform.

The position is represented in internal units (centimeters).

Parameters
[in]spaceThe space used to get the scale pivot.
[out]ReturnStatusReturn status.
Returns
A MPoint given the position of the scale pivot in centimeters.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MPoint getRotatePivot ( MSpace::Space  space = MSpace::kTransform,
MStatus ReturnStatus = NULL 
)
virtual

This method returns the position of the pivot used by the rotate component of the transform.

The position is represented in internal units (centimeters).

Parameters
[in]spaceThe space used to get the rotate pivot.
[out]ReturnStatusStatus code.
Returns
A MPoint given the position of the rotate pivot in centimeters.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MVector getScalePivotTranslation ( MSpace::Space  space = MSpace::kTransform,
MStatus ReturnStatus = NULL 
)
virtual

This method returns the scale pivot translation in internal units (centimeters).

The scale pivot translation is an offset applied to the transform to allow adjustments to the scale pivot to be made without changing the overall transform.

Parameters
[in]spaceThe spaced used to get the scale pivot translation.
[out]ReturnStatusReturn status.
Returns
An MVector containing the value of the scale pivot translation in centimeters.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MVector getRotatePivotTranslation ( MSpace::Space  space = MSpace::kTransform,
MStatus ReturnStatus = NULL 
)
virtual

This method returns the rotate pivot translation in internal units (centimeters).

The rotate pivot translation is an offset applied to the transform to allow adjustments to the rotate pivot to be made without changing the overall transform.

Parameters
[in]spaceThe spaced used to get the rotate pivot translation.
[out]ReturnStatusReturn status.
Returns
An MVector containing the value of the rotate pivot translation in centimeters.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MStatus setScalePivot ( const MPoint newSP,
MSpace::Space  space = MSpace::kTransform,
bool  balance = true 
)
virtual

This method sets the position of the scale pivot.

The position of the pivot is defined as a MPoint in internal units (centimeters).

If the balance argument is true, then the scale pivot translation will be adjusted such that the overall transform remains unchanged after the new scale pivot is set.

If an invalid space is used, the scale pivot will not change.

Parameters
[in]newSPThe position of the new scale pivot.
[in]spaceThe space used to set the scale pivot.
[in]balanceShould transform be rebalanced afterward?
Returns
Return status.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MStatus setScalePivotTranslation ( const MVector newPT,
MSpace::Space  space = MSpace::kTransform 
)
virtual

This method sets the scale pivot translation in internal units (centimeters).

The scale pivot translation is normally used to automatically compensate for changes in the scale pivot when the setScalePivot() method is used.

Parameters
[in]newPTThe scale pivot translation as a MVector.
[in]spaceThe space used to set the scale pivot translation.
Returns
Return status.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MStatus setRotatePivot ( const MPoint newRP,
MSpace::Space  space = MSpace::kTransform,
bool  balance = true 
)
virtual

This method sets the position of the rotate pivot.

The position of the pivot is defined as a MPoint in internal units (centimeters).

If the balance argument is true, then the rotate pivot translation will be adjusted such that the overall transform remains unchanged after the new rotate pivot is set.

If an invalid space is used, the rotate pivot will not change.

Parameters
[in]newRPThe position of the new rotate pivot.
[in]spaceThe space used to set the rotate pivot.
[in]balanceShould transform be rebalanced afterward?
Returns
Return status.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MStatus setRotatePivotTranslation ( const MVector newPT,
MSpace::Space  space = MSpace::kTransform 
)
virtual

This method sets the rotate pivot translation in internal units (centimeters).

The rotate pivot translation is normally used to automatically compensate for changes in the rotate pivot when the setRotatePivot() method is used.

Parameters
[in]newPTThe rotate pivot translation as a MVector.
[in]spaceThe space used to set the rotate pivot translation.
Returns
Return status.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MTransformationMatrix::RotationOrder getRotationOrder ( )
virtual

Returns the rotation order used by the rotation component of the transformation matrix.

Note that there are two different enumerations used to represent order of rotation: MTransformationMatrix::RotationOrder and MEulerRotation::RotationOrder. The actual value stored in the transform's rotateOrder attribute is an MEulerRotation::RotationOrder. The value returned by this method is the corresponding MTransformationMatrix::RotationOrder value. If you need to convert between these two rotation order representations use the MPxTransformationMatrix::convertTransformationRotationOrder and MPxTransformationMatrix::convertEulerRotationOrder methods.

Returns
The MTransformationMatrix::RotationOrder enum describing the rotation order of the transform.
MStatus setRotationOrder ( MTransformationMatrix::RotationOrder  ro,
bool  reorder = true 
)
virtual

Sets the rotation order used by the rotation component of the transformation matrix.

See the getRotationOrder method for a discussion of the difference between MTransformationMatrix::RotationOrder values and MEulerRotation::RotationOrder values.

Parameters
[in]roThe new rotation order as a MTransformationMatrix::RotationOrder enum.
[in]reorderIf true, rotations will be adjusted so that the net transformation under the new order will be the same as it was under the old order.
Returns
Return status.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MQuaternion getRotateOrientation ( MSpace::Space  space = MSpace::kTransform,
MStatus ReturnStatus = NULL 
)
virtual

Returns the rotate orientation for the transformation matrix as a quaternion.

The rotate orientation is the value associated with the rotateAxis attribute on this node. The rotate orientation value is used to orient the local rotation space of the transform.

Parameters
[in]spaceThe space used for getting the rotate orientation.
[out]ReturnStatusReturn status.
Returns
A MQuaternion representing the rotate orientation.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MStatus setRotateOrientation ( const MQuaternion newRO,
MSpace::Space  space = MSpace::kTransform,
bool  balance = true 
)
virtual

This method sets the rotate orientation for this transform.

The rotate orientation is used to define the local rotation space. The rotate orientation is the value associated with the rotateAxis attribute on this node.

The balance argument allows the rotate orientation to be changed without affecting the overall transformation. The rotate value is adjusted to compensate for the change in rotate orientation.

Parameters
[in]newROThe quaternion used to set the rotate orientation.
[in]spaceThe space used when setting the rotate orientation.
[in]balanceIf true is used, then the rotation will change to compensate for the change in the rotate orientation.
Returns
Return status.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MQuaternion getPreRotation ( ) const
virtual

This methods returns preRotation, which is an optional rotation that can be applied after the rotation channel and before the translation channel in the transform matrix.

It is functionally equivalent to jointOrient and can be used to replicate joint-like behavior in a custom transform.

Returns
preRotation as a quaternion.
_OPENMAYA_DEPRECATION_POP_WARNING MStatus updateMatrixAttrs ( )

This method is used only for the MPxTransform and MPxTransform derived classes.

It will ensure that the values which change the resulting 4x4 matrix are current. It should be called before getting values that affect the matrix calculation.

If only a specific value needs to be updated, then use the updateMatrixAttrs(MObject &attr, const MDGContext &context) method.

Returns
Return status.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus updateMatrixAttrs ( MObject attr)

This method ensures that a passed attribute will have its values current.

Parameters
[in]attrThe attribute.
Returns
Return status.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
void mustCallValidateAndSet ( MObject obj)
static

This method must be called in the initialize() method for all attributes that affect the matrix of the transform.

It will ensure that the matrix is properly calculated when the passed attribute is changed and that the validateAndSetValue method will get called for this attribute.

It is only for MPxTransform derived classes.

If a custom attribute on an MPxTransform derived classes is declared as "mustValidateAndSetValue", then the validateAndSetValue method must be implemented, so that it takes the data out of the data handle, and sets it into the datablock of the node.

Parameters
[in]objthe attribute
MStatus setNonAffineMatricesEnabled ( bool  enabled)
static

Normal Maya transforms consist of translate, rotate, scale, and shear.

All of these transform types produce an affine matrix. With MPxTransform it is possible to introduce non-affine matrices into places that previously did not consider their effects.

If non-affine matrices are enabled, then all calculations which require additional operations when handling non-affine matrices will perform the addition mathematical operations.

This is a static method and will affect all transforms when enabled.

Parameters
[in]enabledIf true, then non-afine calculations will be used.
Returns
Return status
Status Codes:
  • MS::kSuccess Operation successful
  • MS::kSuccess Operation failed
bool isNonAffineMatricesEnabled ( MStatus ReturnStatus)
static

This method returns true is non-affine matrix calculations are being used for transforms.

Parameters
[out]ReturnStatusThe status
Returns
true if non-affine matrix calculations are enabled.
Status Codes:
  • MS::kSuccess Operation successful
  • MS::kSuccess Operation failed
void copyInternalData ( MPxNode node)
overridevirtual

This function copies the internal data of the transform node.

Parameters
[in]nodethe node that is being duplicated

Reimplemented from MPxNode.

MStatus _dirtyTranslation ( const MVector v)
inline

Deprecated in 2023.0

Deprecated:
MPxTransform should not manage built-in attribute Translation
2023.0:
Deprecated in this version.
MStatus _dirtyRotation ( const MEulerRotation e)
inline

Deprecated in 2023.0

Deprecated:
MPxTransform should not manage built-in attribute Rotation
2023.0:
Deprecated in this version.
MStatus _dirtyScale ( const MVector v)
inline

Deprecated in 2023.0

Deprecated:
MPxTransform should not manage built-in attribute Scale
2023.0:
Deprecated in this version.
MStatus _dirtyShear ( const MVector v)
inline

Deprecated in 2023.0

Deprecated:
MPxTransform should not manage built-in attribute Shear
2023.0:
Deprecated in this version.
MStatus _dirtyRotateOrientation ( const MEulerRotation e)
inline

Deprecated in 2023.0

Deprecated:
MPxTransform should not manage built-in attribute RotateOrientation
2023.0:
Deprecated in this version.
MStatus _dirtyScalePivot ( const MPoint p)
inline

Deprecated in 2023.0

Deprecated:
MPxTransform should not manage built-in attribute ScalePivot
2023.0:
Deprecated in this version.
MStatus _dirtyRotatePivot ( const MPoint p)
inline

Deprecated in 2023.0

Deprecated:
MPxTransform should not manage built-in attribute RotatePivot
2023.0:
Deprecated in this version.
MStatus _dirtyScalePivotTranslation ( const MVector v)
inline

Deprecated in 2023.0

Deprecated:
MPxTransform should not manage built-in attribute ScalePivotTranslation
2023.0:
Deprecated in this version.
MStatus _dirtyRotatePivotTranslation ( const MVector v)
inline

Deprecated in 2023.0

Deprecated:
MPxTransform should not manage built-in attribute RotatePivotTranslation
2023.0:
Deprecated in this version.
MVector applyTranslationLimits ( const MVector unlimitedT,
MDataBlock block,
MStatus ReturnStatus = NULL 
)
protectedvirtual

This method returns a copy of the passed translation value with its members limited by any enabled translation limits on this node.

Parameters
[in]unlimitedTThe value before limits are applied.
[in]blockThe datablock to use.
[out]ReturnStatusReturn status.
Returns
The limited translation value.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MVector applyTranslationLocks ( const MVector toTest,
const MVector savedT,
MStatus ReturnStatus = NULL 
)
protectedvirtual

This method allows the custom transform to apply its own locking mechanism to translation.

Standard dependency graph attribute locking happens automatically and cannot be modified by custom nodes.

If the plug should not be changed, then the value from the passed savedT argument should be return to be used in the transformation matrix.

Parameters
[in]toTestThe values to use if the plug is not locked.
[in]savedTThe values to revert to if the plug cannot be changed.
[out]ReturnStatusstatus
Returns
The value after the locking checks are applied.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MEulerRotation applyRotationLimits ( const MEulerRotation unlimitedR,
MDataBlock block,
MStatus ReturnStatus = NULL 
)
protectedvirtual

This method returns a copy of the passed rotation value with its members limited by any enabled rotation limits on this node.

Parameters
[in]unlimitedRThe value before applying the limits.
[in]blockThe datablock.
[out]ReturnStatusReturn status.
Returns
A MEulerRotation with limits applied to it.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MEulerRotation applyRotationLocks ( const MEulerRotation toTest,
const MEulerRotation savedR,
MStatus ReturnStatus = NULL 
)
protectedvirtual

This method allows the custom transform to apply its own locking mechanism to rotation.

Standard dependency graph attribute locking happens automatically and cannot be modified by custom nodes.

If the plug should not be changed, then the value from the passed savedR argument should be returned to be used in the transformation matrix.

Parameters
[in]toTestThe values to use if the plug is not locked.
[in]savedRThe values to revert to if the plug cannot be changed.
[in]ReturnStatusstatus
Returns
The value after the locking checks are applied.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MVector applyScaleLimits ( const MVector unlimitedS,
MDataBlock block,
MStatus ReturnStatus = NULL 
)
protectedvirtual

This method returns a copy of the passed scale value with its members limited by any enabled scale limits on this node.

Parameters
[in]unlimitedSThe scale before applying limits.
[in]blockThe datablock.
[out]ReturnStatusReturn status.
Returns
The scale value with limits applied.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MVector applyScaleLocks ( const MVector toTest,
const MVector savedS,
MStatus ReturnStatus = NULL 
)
protectedvirtual

This method allows the custom transform to apply its own locking mechanism to scale.

Standard dependency graph attribute locking happens automatically and cannot be modified by custom nodes.

If the plug should not be changed, then the value from the passed savedS argument should be return to be used in the transformation matrix.

Parameters
[in]toTestThe values to use if the plug is not locked.
[in]savedSThe values to revert to if the plug cannot be changed.
[out]ReturnStatusstatus
Returns
The scale value after the locking checks are applied.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MVector applyShearLocks ( const MVector toTest,
const MVector savedS,
MStatus ReturnStatus = NULL 
)
protectedvirtual

This method allows the custom transform to apply its own locking mechanism to shear.

Standard dependency graph attribute locking happens automatically and cannot be modified by custom nodes.

If the plug should not be changed, then the value from the passed savedS argument should be return to be used in the transformation matrix.

Parameters
[in]toTestThe values to use if the plug is not locked.
[in]savedSThe values to revert to if the plug cannot be changed.
[out]ReturnStatusstatus
Returns
The shear value after the locking checks are applied.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MEulerRotation applyRotateOrientationLocks ( const MEulerRotation toTest,
const MEulerRotation savedRO,
MStatus ReturnStatus = NULL 
)
protectedvirtual

This method allows the custom transform to apply its own locking mechanism to rotation orientation.

Standard dependency graph attribute locking happens automatically and cannot be modified by custom nodes.

If the plug should not be changed, then the value from the passed savedRO argument should be return to be used in the transformation matrix.

Parameters
[in]toTestThe values to use if the plug is not locked.
[in]savedROThe values to revert to if the plug cannot be changed.
[out]ReturnStatusstatus
Returns
The rotate orientation value after the locking checks are applied.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MVector applyScaleLocksPivot ( const MPoint toTest,
const MPoint savedSP,
MStatus ReturnStatus = NULL 
)
protectedvirtual

This method allows the custom transform to apply its own locking mechanism to scale pivot.

Standard dependency graph attribute locking happens automatically and cannot be modified by custom nodes.

If the plug should not be changed, then the value from the passed savedSP argument should be return to be used in the transformation matrix.

Parameters
[in]toTestThe values to use if the plug is not locked.
[in]savedSPThe values to revert to if the plug cannot be changed.
[out]ReturnStatusstatus
Returns
The scale pivot value after the locking checks are applied.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MVector applyRotatePivotLocks ( const MPoint toTest,
const MPoint savedRP,
MStatus ReturnStatus = NULL 
)
protectedvirtual

This method allows the custom transform to apply its own locking mechanism to rotation pivots.

Standard dependency graph attribute locking happens automatically and cannot be modified by custom nodes.

If the plug should not be changed, then the value from the passed savedRP argument should be return to be used in the transformation matrix.

Parameters
[in]toTestThe values to use if the plug is not locked.
[in]savedRPThe values to revert to if the plug cannot be changed.
[out]ReturnStatusstatus
Returns
The value after the locking checks are applied.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MVector applyScaleLocksPivotTranslate ( const MVector toTest,
const MVector savedSPT,
MStatus ReturnStatus = NULL 
)
protectedvirtual

This method allows the custom transform to apply its own locking mechanism to the scalePivotTranslate attribute.

Standard dependency graph attribute locking happens automatically and cannot be modified by custom nodes.

If the plug should not be changed, then the value from the passed savedR argument should be return to be used in the transformation matrix.

Parameters
[in]toTestThe values to use if the plug is not locked.
[in]savedSPTThe values to revert to if the plug cannot be changed.
[out]ReturnStatusstatus
Returns
The value after the locking checks are applied.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MVector applyRotatePivotLocksTranslate ( const MVector toTest,
const MVector savedRPT,
MStatus ReturnStatus = NULL 
)
protectedvirtual

This method allows the custom transform to apply its own locking mechanism to the rotatePivotTranslate attribute.

Standard dependency graph attribute locking happens automatically and cannot be modified by custom nodes.

If the plug should not be changed, then the value from the passed savedR argument should be return to be used in the transformation matrix.

Parameters
[in]toTestThe values to use if the plug is not locked.
[in]savedRPTThe values to revert to if the plug cannot be changed.
[out]ReturnStatusstatus
Returns
The value after the locking checks are applied.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus dirtyMatrix ( )
protected

USE _dirtyMatrix() IN SCRIPT.

This marks the entire matrix dirty.

When a value is changed and that value should also update the matrix, use this method, or one of the specific dirty methods (i.e. dirtyTranslation())

Returns
Status Code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus dirtyTranslation ( const MVector savedT)
protected

Deprecated in 2023.0

If the current transformation matrix translation values are different than the passed translation value, then the translation portion of the matrix will be marked dirty.

Deprecated:
MPxTransform should not manage built-in attribute Translation
2023.0:
Deprecated in this version.

USE _dirtyTranslation() IN SCRIPT

Parameters
[in]savedTThe previous translation values.
Returns
Status Code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus dirtyRotation ( const MEulerRotation savedR)
protected

Deprecated in 2023.0

If the current transformation matrix rotation values are different than the passed rotation value, then the rotation portion of the matrix will be marked dirty.

Deprecated:
MPxTransform should not manage built-in attribute Rotation
2023.0:
Deprecated in this version.

USE _dirtyRotation() IN SCRIPT

Parameters
[in]savedRThe previous rotation values.
Returns
Status code.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus dirtyScale ( const MVector savedS)
protected

Deprecated in 2023.0

If the current transformation matrix scale values are different than the passed scale value, then the scale portion of the matrix will be marked dirty.

Deprecated:
MPxTransform should not manage built-in attribute Scale
2023.0:
Deprecated in this version.

USE _dirtyScale() IN SCRIPT

Parameters
[in]savedSThe previous scale values.
Returns
Status
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus dirtyShear ( const MVector savedSh)
protected

Deprecated in 2023.0

If the current transformation matrix shear values are different than the passed shear value, then the shear portion of the matrix will be marked dirty.

Deprecated:
MPxTransform should not manage built-in attribute Shear
2023.0:
Deprecated in this version.

USE _dirtyShear() IN SCRIPT

Parameters
[in]savedShThe previous shear values.
Returns
status
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus dirtyRotateOrientation ( const MEulerRotation savedRO)
protected

Deprecated in 2023.0

If the current transformation matrix rotate orientation values are different than the passed rotate orientation value, then the rotate orientation portion of the matrix will be marked dirty.

Deprecated:
MPxTransform should not manage built-in attribute RotateOrientation
2023.0:
Deprecated in this version.

USE _dirtyRotateOrientation() IN SCRIPT

Parameters
[in]savedROThe previous rotate orientation values.
Returns
Status
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus dirtyScalePivot ( const MPoint savedSP)
protected

Deprecated in 2023.0

If the current transformation matrix scale pivot values are different than the passed scale pivot value, then the scale pivot portion of the matrix will be marked dirty.

Deprecated:
MPxTransform should not manage built-in attribute ScalePivot
2023.0:
Deprecated in this version.

USE _dirtyScalePivot() IN SCRIPT

Parameters
[in]savedSPThe previous scale pivot values.
Returns
Status
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus dirtyRotatePivot ( const MPoint savedRP)
protected

Deprecated in 2023.0

If the current transformation matrix rotate pivot values are different than the passed rotate pivot value, then the rotate pivot portion of the matrix will be marked dirty.

Deprecated:
MPxTransform should not manage built-in attribute RotatePivot
2023.0:
Deprecated in this version.

USE _dirtyRotatePivot() IN SCRIPT

Parameters
[in]savedRPThe previous rotate pivot values.
Returns
Status
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus dirtyScalePivotTranslation ( const MVector savedST)
protected

Deprecated in 2023.0

If the current transformation matrix scale pivot translation values are different than the passed scale pivot translation value, then the scale pivot translation portion of the matrix will be marked dirty.

Deprecated:
MPxTransform should not manage built-in attribute ScalePivotTranslation
2023.0:
Deprecated in this version.

USE _dirtyScalePivotTranslation() IN SCRIPT

Parameters
[in]savedSTThe previous scale pivot translation values.
Returns
Status
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus dirtyRotatePivotTranslation ( const MVector savedRT)
protected

Deprecated in 2023.0

If the current transformation matrix rotate pivot translation values are different than the passed rotate pivot translation value, then the rotate pivot translation portion of the matrix will be marked dirty.

Deprecated:
MPxTransform should not manage built-in attribute RotatePivotTranslation
2023.0:
Deprecated in this version.

USE _dirtyRotatePivotTranslation() IN SCRIPT

Parameters
[in]savedRTThe previous rotate pivot translation values.
Returns
Status
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus checkAndSetTranslation ( MDataBlock block,
const MPlug plug,
const MVector newT,
MSpace::Space  space = MSpace::kTransform 
)
protectedvirtual

This method is used to modify and set the new translate values being passed in from the compute method or from the validateAndSetValue.

The data block should be set with the corrected values. Corrections would come from enforcing any active limits as well as verifying that the plug's value may be changed. If the plug is locked or if it is the destination in a connection that disallows value changes, then the plug will be set to its unchanged value.

Parameters
[in]blockThe data block to set.
[in]plugThe translate plug (or one of its child plugs).
[in]newTThe new translate value.
[in]spaceThe space used for the new translation value.
Returns
Status
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kFailure The method failed.
MStatus checkAndSetRotation ( MDataBlock block,
const MPlug plug,
const MEulerRotation newR,
MSpace::Space  space = MSpace::kTransform 
)
protectedvirtual

This method verifies that the passed value can be set on the rotate plugs.

In the base class, limits as well as locking are checked by this method.

The compute, validateAndSetValue, and rotateTo functions all use this method.

Parameters
[in]blockThe data block
[in]plugThe plug. This should be rotate or one of its children.
[in]newRThe new rotate value.
[in]spaceThe space that the newR value is using.
Returns
Status
Status Codes:
  • MS::kSuccess Operation successful
  • MS::kFailure Operation failed
MStatus checkAndSetScale ( MDataBlock block,
const MPlug plug,
const MVector newS,
MSpace::Space  space = MSpace::kTransform 
)
protectedvirtual

This method verifies that the passed value can be set on the scale plugs.

In the base class, limits as well as locking are checked by this method.

The compute, validateAndSetValue, and scaleTo functions all use this method.

Parameters
[in]blockThe data block
[in]plugThe plug. This should be scale or one of its children.
[in]newSThe new scale value.
[in]spaceThe space that the newS value is using.
Returns
Status
Status Codes:
  • MS::kSuccess Operation successful
  • MS::kFailure Operation failed
MStatus checkAndSetShear ( MDataBlock block,
const MPlug plug,
const MVector newS,
MSpace::Space  space = MSpace::kTransform 
)
protectedvirtual

This method verifies that the passed value can be set on the shear plugs.

In the base class, only the locking conditions are enforced.

The compute, validateAndSetValue, and shearTo functions all use this method. If limits are desired on shear, then the limit enforcement should be implemented in this method in a derived class.

Parameters
[in]blockThe data block
[in]plugThe plug. This should be shear or one of its children.
[in]newSThe new shear value.
[in]spaceThe space that the newS value is using.
Returns
Status
Status Codes:
  • MS::kSuccess Operation successful
  • MS::kFailure Operation failed
MStatus checkAndSetRotateOrientation ( MDataBlock block,
const MPlug plug,
const MEulerRotation newRO,
MSpace::Space  space = MSpace::kTransform,
bool  balance = true 
)
protectedvirtual

This method verifies that the passed value can be set on the rotateAxis plugs.

In the base class, only the locking conditions are enforced. This method will also update the rotation value if balance is true.

The compute, validateAndSetValue, and setRotateOrientation functions all use this method. If limits are desired on rotateAxis, then the limit enforcement should be implemented in this method in a derived class.

Parameters
[in]blockThe data block
[in]plugThe plug. This should be rotateAxis or one of its children.
[in]newROThe new rotate orientation value.
[in]spaceThe space that the newRO value is using.
[in]balanceIf balance is true, then the rotation is modified to compensate for the change in rotateAxis such that the transform remains unchanged.
Returns
Status
Status Codes:
  • MS::kSuccess Operation successful
  • MS::kFailure Operation failed
MStatus checkAndSetRotatePivot ( MDataBlock block,
const MPlug plug,
const MPoint newRP,
MSpace::Space  space = MSpace::kTransform,
bool  balance = true 
)
protectedvirtual

This method verifies that the passed value can be set on the rotatePivot plugs.

In the base class, only the locking conditions are enforced. This method will also update the rotatePivotTranslate value if balance is true.

The compute, validateAndSetValue, and setRotatePivot functions all use this method. If limits are desired on rotatePivot, then the limit enforcement should be implemented in this method in a derived class.

Parameters
[in]blockThe data block
[in]plugThe plug. This should be rotatePivot or one of its children.
[in]newRPThe new rotate pivot value.
[in]spaceThe space that the newRP value is using.
[in]balanceIf balance is true, then the rotatePivotTranslate is modified to compensate for the change in rotatePivot such that the transform remains unchanged.
Returns
Status
Status Codes:
  • MS::kSuccess Operation successful
  • MS::kFailure Operation failed
MStatus checkAndSetRotatePivotTranslation ( MDataBlock block,
const MPlug plug,
const MVector newPT,
MSpace::Space  space = MSpace::kTransform 
)
protectedvirtual

This method verifies that the passed value can be set on the rotatePivotTranslate plugs.

In the base class, only the locking conditions are enforced.

The compute, validateAndSetValue, and setRotatePivotTranslation functions all use this method. If limits are desired on rotatePivotTranslate, then the limit enforcement should be implemented in this method in a derived class.

Parameters
[in]blockThe data block
[in]plugThe plug. This should be rotatePivotTranslate or one of its children.
[in]newPTThe new rotate pivot translate value.
[in]spaceThe space that the newPT value is using.
Returns
Status
Status Codes:
  • MS::kSuccess Operation successful
  • MS::kFailure Operation failed
MStatus checkAndSetScalePivot ( MDataBlock block,
const MPlug plug,
const MPoint newSP,
MSpace::Space  space = MSpace::kTransform,
bool  balance = true 
)
protectedvirtual

This method verifies that the passed value can be set on the scalePivot plugs.

In the base class, only the locking conditions are enforced. This method will also update the scalePivotTranslate value if balance is true.

The compute, validateAndSetValue, and setScalePivot functions all use this method. If limits are desired on scalePivot, then the limit enforcement should be implemented in this method in a derived class.

Parameters
[in]blockThe data block
[in]plugThe plug. This should be scalePivot or one of its children.
[in]newSPThe new scale pivot value.
[in]spaceThe space that the newSP value is using.
[in]balanceIf balance is true, then the scalePivotTranslate is modified to compensate for the change in scalePivot such that the transform remains unchanged.
Returns
Status
Status Codes:
  • MS::kSuccess Operation successful
  • MS::kFailure Operation failed
MStatus checkAndSetScalePivotTranslation ( MDataBlock block,
const MPlug plug,
const MVector newPT,
MSpace::Space  space = MSpace::kTransform 
)
protectedvirtual

This method verifies that the passed value can be set on the scalePivotTranslate plugs.

In the base class, only the locking conditions are enforced.

The compute, validateAndSetValue, and setScalePivotTranslation functions all use this method. If limits are desired on scalePivotTranslate, then the limit enforcement should be implemented in this method in a derived class.

Parameters
[in]blockThe data block
[in]plugThe plug. This should be scalePivotTranslate or one of its children.
[in]newPTThe new scale pivot translate value.
[in]spaceThe space that the newPT value is using.
Returns
Status
Status Codes:
  • MS::kSuccess Operation successful
  • MS::kFailure Operation failed
const char * className ( )
static

Returns the name of this class.

Returns
The name of this class.
Examples:
manipOverride/rockingTransform2.h, rockingTransform/rockingTransform.h, and rockingTransformCheck/rockingTransform.h.
MObject thisMObject ( ) const
overridevirtual

Returns the MObject associated with this user defined node.

This makes it possible to use MFnDependencyNode or to construct plugs to this node's attributes.

It is not necessary to override this method.

Returns
MObject handle for this node

Reimplemented from MPxNode.

MStatus validateAndSetValue ( const MPlug plug,
const MDataHandle handle,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Override validateAndSetValue(const MPlug&, const MDataHandle&) instead. If needed, use MDGContext::current() to get the context.
2018.0:
Deprecated in this version.
Parameters
[in]plugThe plug that is to be set.
[in]handleThe inputValue handle of the data.
[in]contextThe context in which the value is being set
Returns
Status code.
Status Codes:
  • MS::kSuccess validateAndSet succeeded.
  • MS::kFailure validateAndSet failed.
MStatus updateMatrixAttrs ( const MDGContext context)

Deprecated in 2018.0

\

Deprecated:
Call updateMatrixAttrs() instead.
2018.0:
Deprecated in this version.
Parameters
[in]context
MStatus updateMatrixAttrs ( MObject attr,
const MDGContext context 
)

Deprecated in 2018.0

Deprecated:
Call updateMatrixAttrs(MObject &) instead.
2018.0:
Deprecated in this version.
Parameters
[in]attr
[in]context
MMatrix getMatrix ( const MDGContext context,
MStatus ReturnStatus = NULL 
)
virtual

Deprecated in 2018.0

This method returns a 4x4 matrix that is produced by applying all of the components of the transform.

Deprecated:
Call getMatrix(MStatus*) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Note
Use this method only when you are deliberately evaluating at a different context, e.g. at a different time, otherwise use the overload with no context.
Parameters
[in]contextThe context for getting the matrix.
[out]ReturnStatusReturn status.
Returns
The transform as a MMatrix.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MMatrix getMatrixInverse ( const MDGContext context,
MStatus ReturnStatus = NULL 
)
virtual

Deprecated in 2018.0

This method returns the inverse of the 4x4 matrix that describes this transformation in the given evaluation context.

Deprecated:
Call getMatrixInverse(MStatus*) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Note
Use this method only when you are deliberately evaluating at a different context, e.g. at a different time, otherwise use the overload with no context.
Parameters
[in]contextThe context for getting the inverse MMatrix.
[out]ReturnStatusReturn status.
Returns
The inverse of the transform as a MMatrix.
Status Codes:
  • MS::kSuccess The method succeeded.
  • MS::kInvalidParameter The method failed due to an invalid space being used.
MVector getTranslation ( MSpace::Space  space,
const MDGContext context,
MStatus ReturnStatus = NULL 
)
virtual

Deprecated in 2018.0

Deprecated:
Use getTranslation(MSpace::Space, MStatus*) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]space
[in]context
[out]ReturnStatus
MStatus translateTo ( const MVector newTrans,
MSpace::Space  space,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use translateTo(const MVector&, MSpace::Space) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]newTrans
[in]space
[in]context
MStatus translateBy ( const MVector transOffset,
MSpace::Space  space,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use translateBy(const MVector&, MSpace::Space) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]transOffset
[in]space
[in]context
MQuaternion getRotation ( MSpace::Space  space,
const MDGContext context,
MStatus ReturnStatus = NULL 
)
virtual

Deprecated in 2018.0

Deprecated:
Use getRotation(MSpace::Space, MStatus*) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]space
[in]context
[out]ReturnStatus
MEulerRotation getEulerRotation ( MSpace::Space  space,
const MDGContext context,
MStatus ReturnStatus = NULL 
)
virtual

Deprecated in 2018.0

Deprecated:
Use getEulerRotation(MSpace::Space, MStatus*) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]space
[in]context
[out]ReturnStatus
MStatus rotateTo ( const MQuaternion newRot,
MSpace::Space  space,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use rotateTo(const MQuaternion&, MSpace::Space) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]newRot
[in]space
[in]context
MStatus rotateBy ( const MQuaternion rotateOffset,
MSpace::Space  space,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use rotateBy(const MQuaternion&, MSpace::Space) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]rotateOffset
[in]space
[in]context
MStatus rotateTo ( const MEulerRotation euler,
MSpace::Space  space,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use rotateTo(const MEulerRotation&, MSpace::Space) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]euler
[in]space
[in]context
MStatus rotateBy ( const MEulerRotation euler,
MSpace::Space  space,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use rotateBy(const MEulerRotation&, MSpace::Space) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]euler
[in]space
[in]context
MVector getScale ( MSpace::Space  space,
const MDGContext context,
MStatus ReturnStatus = NULL 
)
virtual

Deprecated in 2018.0

Deprecated:
Use getScale(MSpace::Space, MStatus*) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]space
[in]context
[out]ReturnStatus
MStatus scaleTo ( const MVector newScale,
MSpace::Space  space,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use scaleTo(const MVector&, MSpace::Space) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]newScale
[in]space
[in]context
MStatus scaleBy ( const MVector scaleOffset,
MSpace::Space  space,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use scaleBy(const MVector&, MSpace::Space) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]scaleOffset
[in]space
[in]context
MVector getShear ( MSpace::Space  space,
const MDGContext context,
MStatus ReturnStatus = NULL 
)
virtual

Deprecated in 2018.0

Deprecated:
Use getShear(MSpace::Space, MStatus*) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]space
[in]context
[out]ReturnStatus
MStatus shearTo ( const MVector newShear,
MSpace::Space  space,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use shearTo(const MVector&, MSpace::Space) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]newShear
[in]space
[in]context
MStatus shearBy ( const MVector shearOffset,
MSpace::Space  space,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use shearBy(const MVector&, MSpace::Space) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]shearOffset
[in]space
[in]context
MPoint getScalePivot ( MSpace::Space  space,
const MDGContext context,
MStatus ReturnStatus = NULL 
)
virtual

Deprecated in 2018.0

Deprecated:
Use getScalePivot(MSpace::Space, MStatus*) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]space
[in]context
[out]ReturnStatus
MPoint getRotatePivot ( MSpace::Space  space,
const MDGContext context,
MStatus ReturnStatus = NULL 
)
virtual

Deprecated in 2018.0

Deprecated:
Use getRotatePivot(MSpace::Space, MStatus*) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]space
[in]context
[out]ReturnStatus
MVector getScalePivotTranslation ( MSpace::Space  space,
const MDGContext context,
MStatus ReturnStatus = NULL 
)
virtual

Deprecated in 2018.0

Deprecated:
Use getScalePivotTranslation(MSpace::Space, MStatus*) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]space
[in]context
[out]ReturnStatus
MVector getRotatePivotTranslation ( MSpace::Space  space,
const MDGContext context,
MStatus ReturnStatus = NULL 
)
virtual

Deprecated in 2018.0

Deprecated:
Use getRotatePivotTranslation(MSpace::Space, MStatus*) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]space
[in]context
[out]ReturnStatus
MStatus setScalePivot ( const MPoint newSP,
MSpace::Space  space,
bool  balance,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use setScalePivot(const MPoint &, MSpace::Space) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]newSP
[in]space
[in]balance
[in]context
MStatus setScalePivotTranslation ( const MVector newPT,
MSpace::Space  space,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use setScalePivotTranslation(const MVector &, MSpace::Space) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]newPT
[in]space
[in]context
MStatus setRotatePivot ( const MPoint newRP,
MSpace::Space  space,
bool  balance,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use setRotatePivot(const MPoint &, MSpace::Space) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]newRP
[in]space
[in]balance
[in]context
MStatus setRotatePivotTranslation ( const MVector newPT,
MSpace::Space  space,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use setRotatePivotTranslation(const MVector &, MSpace::Space) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]newPT
[in]space
[in]context
MTransformationMatrix::RotationOrder getRotationOrder ( const MDGContext context)
virtual

Deprecated in 2018.0

Deprecated:
Use getRotationOrder() instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
MStatus setRotationOrder ( MTransformationMatrix::RotationOrder  ro,
bool  reorder,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use setRotationOrder(MTransformationMatrix::RotationOrder, bool reorder) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]ro
[in]reorder
[in]context
MQuaternion getRotateOrientation ( MSpace::Space  space,
const MDGContext context,
MStatus ReturnStatus = NULL 
)
virtual

Deprecated in 2018.0

Deprecated:
Use getRotateOrientation(MSpace::Space, MStatus*) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]space
[in]context
[out]ReturnStatus
MStatus setRotateOrientation ( const MQuaternion newRO,
MSpace::Space  space,
bool  balance,
const MDGContext context 
)
virtual

Deprecated in 2018.0

Deprecated:
Use setRotateOrientation(const MQuaternion&, MSpace::Space, bool balance) instead. If needed, use MDGContextGuard to switch the context.
2018.0:
Deprecated in this version.
Parameters
[in]newRO
[in]space
[in]balance
[in]context

Member Data Documentation

MObject renderInfo
static

This is obsolete.

Obsolete attribute

MObject identification
static

This is obsolete.

Obsolete attribute

MObject layerRenderable
static

This is obsolete.

Obsolete attribute

MObject layerOverrideColor
static

This is obsolete.

Obsolete attribute

MObject offsetParentMatrix
static

Introduced in 2022.0

2022.0:
Introduced in this version.

Offset parent matrix attribute

MPxTransformationMatrix* baseTransformationMatrix

Cached MPxTransformationMatrix for normal-context (same as returned by transformationMatrix() method in normal-context).

Warning
This member does not respect evaluation context. Any use of it may result wrong result in non-normal context.
Note
The value of this pointer is filled by Maya after this class' postConstructor got called. It should be treat as read-only field, modifying it may lead to incorrect result.

Deprecated in 2019.0

Deprecated:
This member is not valid during background evaluation. Use transformationMatrixPtr() instead.
2019.0:
Deprecated in this version.

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