Function set for joints.
This is the function set for joints.
The transformation matrix for a joint node is below.
(where '*' denotes matrix multiplication).
These matrices are defined as follows:
The methods to get the value of these matrices are:
#include <MFnIkJoint.h>
Public Member Functions |
|
virtual MFn::Type | type () const |
Function set type. |
|
virtual | ~MFnIkJoint () |
Destructor. |
|
MFnIkJoint () | |
Default constructor. |
|
MFnIkJoint (MObject &object, MStatus *ReturnStatus=NULL) | |
Constructor. |
|
MFnIkJoint (const MDagPath &object, MStatus *ret=NULL) | |
Constructor. |
|
MObject | create (MObject parent=MObject::kNullObj, MStatus *ReturnStatus=NULL) |
Create a new joint in a skeleton. |
|
MStatus | getOrientation (MQuaternion &quaternion) const |
Get the joint orientation. |
|
MStatus | setOrientation (const MQuaternion &quaternion) |
Set the jointOrient value. |
|
MStatus | getOrientation (MEulerRotation &rotation) const |
Get the orientation of the coordinate axes.
|
|
MStatus | setOrientation (const MEulerRotation &rotation) |
Set the orientation of the coordinate axes.
|
|
MStatus | getOrientation (double rotation[3], MTransformationMatrix::RotationOrder &order) const |
Get the orientation of the coordinate axes.
|
|
MStatus | setOrientation (const double rotation[3], MTransformationMatrix::RotationOrder order) |
Set the orientation of the coordinate axes.
|
|
MStatus | getScaleOrientation (MQuaternion &quaternion) const |
Get the orientation of the coordinate axes
for rotation. |
|
MStatus | setScaleOrientation (const MQuaternion &quaternion) |
Set the orientation of the coordinate axes
for rotation. |
|
MStatus | getScaleOrientation (double rotation[3], MTransformationMatrix::RotationOrder &order) const |
Get the orientation of the coordinate axes
for rotation. |
|
MStatus | setScaleOrientation (const double rotation[3], MTransformationMatrix::RotationOrder order) |
Set the orientation of the coordinate axes
for rotation. |
|
MStatus | getSegmentScale (double scale[3]) const |
Get the local space scale values for the
joint segment (bone). |
|
MStatus | setSegmentScale (const double scale[3]) |
Set the local space scale values for the
joint segment (bone). |
|
MStatus | getStiffness (double stiffness[3]) const |
Get the stiffness (from 0 to 100.0) for the
joint. |
|
MStatus | setStiffness (const double stiffness[3]) |
Set the stiffness (from 0 to 100.0) for the
joint. |
|
MStatus | getPreferedAngle (double rotation[3]) const |
Get the preferred orientation for this joint
(in XYZ order) |
|
MStatus | setPreferedAngle (const double rotation[3]) |
Set the preferred orientation for this joint
(in XYZ order) |
|
MStatus | getDegreesOfFreedom (bool &freeInX, bool &freeInY, bool &freeInZ) const |
Get degrees of freedom of this joint.
|
|
MStatus | setDegreesOfFreedom (bool freeInX, bool freeInY, bool freeInZ) |
Set the degrees of freedom of this joint by
specifying which axes are allowed to rotate. |
|
double | minRotateDampXRange (MStatus *ReturnStatus=NULL) const |
Get the minimum of the damping range in X.
|
|
double | minRotateDampYRange (MStatus *ReturnStatus=NULL) const |
Get the minimum of the damping range in Y.
|
|
double | minRotateDampZRange (MStatus *ReturnStatus=NULL) const |
Get the minimum of the damping range in Z.
|
|
double | maxRotateDampXRange (MStatus *ReturnStatus=NULL) const |
Get the maximum of the damping range in X.
|
|
double | maxRotateDampYRange (MStatus *ReturnStatus=NULL) const |
Get the maximum of the damping range in Y.
|
|
double | maxRotateDampZRange (MStatus *ReturnStatus=NULL) const |
Get the maximum of the damping range in Z.
|
|
MStatus | setMinRotateDampXRange (double angle) |
Set the minimum of the damping range in X.
|
|
MStatus | setMinRotateDampYRange (double angle) |
Set the minimum of the damping range in Y.
|
|
MStatus | setMinRotateDampZRange (double angle) |
Set the minimum of the damping range in Z.
|
|
MStatus | setMaxRotateDampXRange (double angle) |
Set the maximum of the damping range in X.
|
|
MStatus | setMaxRotateDampYRange (double angle) |
Set the maximum of the damping range in Y.
|
|
MStatus | setMaxRotateDampZRange (double angle) |
Set the maximum of the damping range in Z.
|
|
double | minRotateDampXStrength (MStatus *ReturnStatus=NULL) const |
Get the minimum of the damping strength in
X. |
|
double | minRotateDampYStrength (MStatus *ReturnStatus=NULL) const |
Get the minimum of the damping strength in
X. |
|
double | minRotateDampZStrength (MStatus *ReturnStatus=NULL) const |
Get the minimum of the damping strength in
X. |
|
double | maxRotateDampXStrength (MStatus *ReturnStatus=NULL) const |
Get the minimum of the damping strength in
X. |
|
double | maxRotateDampYStrength (MStatus *ReturnStatus=NULL) const |
Get the minimum of the damping strength in
X. |
|
double | maxRotateDampZStrength (MStatus *ReturnStatus=NULL) const |
Get the minimum of the damping strength in
X. |
|
MStatus | setMinRotateDampXStrength (double angle) |
Set the maximum of the damping strength in
Z. |
|
MStatus | setMinRotateDampYStrength (double angle) |
Set the maximum of the damping strength in
Y. |
|
MStatus | setMinRotateDampZStrength (double angle) |
Set the minimum of the damping strength in
Z. |
|
MStatus | setMaxRotateDampXStrength (double angle) |
Set the maximum of the damping strength in
X. |
|
MStatus | setMaxRotateDampYStrength (double angle) |
Set the maximum of the damping strength in
Y. |
|
MStatus | setMaxRotateDampZStrength (double angle) |
Set the maximum of the damping strength in
Z. |
|
MString | hikJointName (MStatus *ReturnStatus=NULL) const |
Get the name that the HumanIK solver uses to
identify this joint. |
|
MFnIkJoint (const MObject &object, MStatus *ret=NULL) | |
Constructor. |
|
MStatus | getHikJointName (MString &name) const |
NO SCRIPT SUPPORT. |
|
Protected Member Functions |
|
virtual const char * | className () const |
Class name. |
~MFnIkJoint | ( | ) | [virtual] |
Destructor.
Class destructor.
MFnIkJoint | ( | MObject & | object, |
MStatus * | ReturnStatus =
NULL |
||
) |
Constructor.
Class constructor that initializes the function set to the given MObject.
[in] | object | The MObject to attach the function set to |
[out] | ReturnStatus | the return status |
MFnIkJoint | ( | const MDagPath & | object, |
MStatus * | ReturnStatus =
NULL |
||
) |
Constructor.
Class constructor that initializes the function set to the given constant MDagPath object.
[in] | object | The const MDagPath to attach the function set to |
[out] | ReturnStatus | The return status |
MFnIkJoint | ( | const MObject & | object, |
MStatus * | ReturnStatus =
NULL |
||
) |
Constructor.
Class constructor that initializes the function set to the given MObject.
[in] | object | The MObject to attach the function set to |
[out] | ReturnStatus | the return status |
MFn::Type type | ( | ) | const [virtual] |
const char * className | ( | ) | const [protected, virtual] |
MObject create | ( | MObject | parent = MObject::kNullObj , |
MStatus * | ReturnStatus =
NULL |
||
) |
Create a new joint in a skeleton.
In maya, skeletons are defined entirely by DAG hierarchy. So, giving the joint you want to attach to as a parent will add this joint to that skeleton.
[in] | parent | the parent object for this in the dag. A value of NULL specifies the world dag node as parent. |
[out] | ReturnStatus | Status Code (see below) |
Reimplemented from MFnTransform.
MStatus getOrientation | ( | MQuaternion & | quaternion | ) | const |
Get the joint orientation.
This corresponds to the jointOrient attribute on the joint, which is stored internally as a quaternion. It is different from the rotation orientation defined in the transform node. Modifying the jointOrient changes the coordinate axes, which affects how scaling a joint behaves.
The matrix equations used to combine the jointOrient with the other transformation attributes of the joint are described in the description for the MFnIkJoint class.
[out] | quaternion | the quaternion representing the jointOrient |
MStatus setOrientation | ( | const MQuaternion & | quaternion | ) |
Set the jointOrient value.
This corresponds to the jointOrient attribute on the joint, which is stored internally as a quaternion. It is different from the rotation orientation defined in the transform node. Modifying the jointOrient changes the coordinate axes, which affects how scaling a joint behaves.
The matrix equations used to combine the jointOrient with the other transformation attributes of the joint are described in the description for the MFnIkJoint class.
[in] | quaternion | the joint orientation |
MStatus getOrientation | ( | MEulerRotation & | rotation | ) | const |
Get the orientation of the coordinate axes.
[out] | rotation | the euler rotation into which we will store the orientation |
MStatus setOrientation | ( | const MEulerRotation & | rotation | ) |
Set the orientation of the coordinate axes.
[in] | rotation | the orientation |
MStatus getOrientation | ( | double | rotation[3], |
MTransformationMatrix::RotationOrder & | order | ||
) | const |
Get the orientation of the coordinate axes.
[out] | rotation | the array into which we will store the angles |
[out] | order | storage for the order to do the rotation in |
MStatus setOrientation | ( | const double | rotation[3], |
MTransformationMatrix::RotationOrder | order | ||
) |
Set the orientation of the coordinate axes.
[in] | rotation | the orientation |
[in] | order | the order to do the rotation in |
MStatus getScaleOrientation | ( | MQuaternion & | quaternion | ) | const |
Get the orientation of the coordinate axes for rotation.
This is equivalent to calling the MFnTransform::rotateOrientation method, and corresponds to the rotateAxis attribute on the joint node.
[out] | quaternion | the quaternion into which we will store the rotate orientation |
MStatus setScaleOrientation | ( | const MQuaternion & | quaternion | ) |
Set the orientation of the coordinate axes for rotation.
This is equivalent to calling the MFnTransform::setRotateOrientation method, and corresponds to the rotateAxis attribute on the joint node. The matrix equations used to combine the rotateAxis with the other transformation attributes of the joint are described in the description for the MFnIkJoint class.
[out] | quaternion | the rotate orientation |
MStatus getScaleOrientation | ( | double | rotation[3], |
MTransformationMatrix::RotationOrder & | order | ||
) | const |
Get the orientation of the coordinate axes for rotation.
This is equivalent to calling the MFnTransform::rotateOrientation method but returns the Euler rotation rather than the quaternion rotation. The matrix equations used to combine the rotateAxis with the other transformation attributes of the joint are described in the description for the MFnIkJoint class.
[out] | rotation | the array into which we will store the angles |
[out] | order | storage for the order to do the rotation in |
MStatus setScaleOrientation | ( | const double | rotation[3], |
MTransformationMatrix::RotationOrder | order | ||
) |
Set the orientation of the coordinate axes for rotation.
This is equivalent to calling the MFnTransform::setRotateOrientation method, and corresponds to the rotateAxis attribute on the joint node. The matrix equations used to combine the rotateAxis with the other transformation attributes of the joint are described in the description for the MFnIkJoint class.
[in] | rotation | the rotate orientation |
[in] | order | the order to do the rotation in |
MStatus getSegmentScale | ( | double | scale[3] | ) | const |
Get the local space scale values for the joint segment (bone).
This is equivalent to calling MFnTransform::getScale.
[out] | scale | Storage for the scale values |
MStatus setSegmentScale | ( | const double | scale[3] | ) |
Set the local space scale values for the joint segment (bone).
This is equivalent to calling Ttransform::setScale.
[in] | scale | the new scale values to set |
MStatus getStiffness | ( | double | stiffness[3] | ) | const |
Get the stiffness (from 0 to 100.0) for the joint.
The stiffness attribute is used by ik solvers to generate a resistance to a joint motion. The higher the stiffness the less it will rotate. Stiffness works in relative sense: it determines the willingness of this joint to rotate with respect to the other joint in the ik chain.
[out] | stiffness | storage for the stiffness values |
MStatus setStiffness | ( | const double | stiffness[3] | ) |
Set the stiffness (from 0 to 100.0) for the joint.
The stiffness attribute is used by ik solvers to generate a resistance to a joint motion. The higher the stiffness the less it will rotate. Stiffness works in relative sense: it determines the willingness of this joint to rotate with respect to the other joint in the ik chain.
[in] | stiffness | the X, Y, and Z stiffness values |
MStatus getPreferedAngle | ( | double | rotation[3] | ) | const |
Get the preferred orientation for this joint (in XYZ order)
[out] | rotation | the array into which we will store the angles |
MStatus setPreferedAngle | ( | const double | rotation[3] | ) |
Set the preferred orientation for this joint (in XYZ order)
[in] | rotation | the array into which we will store the angles |
MStatus getDegreesOfFreedom | ( | bool & | freeInX, |
bool & | freeInY, | ||
bool & | freeInZ | ||
) | const |
Get degrees of freedom of this joint.
[out] | freeInX | the first degree of freedom |
[out] | freeInY | the second degree of freedom |
[out] | freeInZ | the third degree of freedom |
MStatus setDegreesOfFreedom | ( | bool | freeInX, |
bool | freeInY, | ||
bool | freeInZ | ||
) |
Set the degrees of freedom of this joint by specifying which axes are allowed to rotate.
[in] | freeInX | the first degree of freedom |
[in] | freeInY | the second degree of freedom |
[in] | freeInZ | the third degree of freedom |
double minRotateDampXRange | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Get the minimum of the damping range in X.
This corresponds to the minRotateDampXRange attribute on the joint.
The minRotateDampRange and minRotateDampStrength are attributes used by ik to apply resistance to a joint rotation as it approaches the lower boundary of its rotation limits. This functionality allows joint motion to slow down smoothly until the joint reaches its rotation limits instead of stopping abruptly. The minRotateDampRange specifies when the deceleration should start, and the minRotateDampStrength defines the rate of deceleration.
[out] | ReturnStatus | Status Code (see below) |
double minRotateDampYRange | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Get the minimum of the damping range in Y.
This corresponds to the minRotateDampYRange attribute on the joint.
The minRotateDampRange and minRotateDampStrength are attributes used by ik to apply resistance to a joint rotation as it approaches the lower boundary of its rotation limits. This functionality allows joint motion to slow down smoothly until the joint reaches its rotation limits instead of stopping abruptly. The minRotateDampRange specifies when the deceleration should start, and the minRotateDampStrength defines the rate of deceleration.
[out] | ReturnStatus | Status Code (see below) |
double minRotateDampZRange | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Get the minimum of the damping range in Z.
This corresponds to the minRotateDampZRange attribute on the joint.
The minRotateDampRange and minRotateDampStrength are attributes used by ik to apply resistance to a joint rotation as it approaches the lower boundary of its rotation limits. This functionality allows joint motion to slow down smoothly until the joint reaches its rotation limits instead of stopping abruptly. The minRotateDampRange specifies when the deceleration should start, and the minRotateDampStrength defines the rate of deceleration.
[out] | ReturnStatus | Status Code (see below) |
double maxRotateDampXRange | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Get the maximum of the damping range in X.
This corresponds to the maxRotateDampXRange attribute on the joint.
The minRotateDampRange and minRotateDampStrength are attributes used by ik to apply resistance to a joint rotation as it approaches the upper boundary of its rotation limits. This functionality allows joint motion to slow down smoothly until the joint reaches its rotation limits instead of stopping abruptly. The maxRotateDampRange specifies when the deceleration should start, and the maxRotateDampStrength defines the rate of deceleration.
[out] | ReturnStatus | Status Code (see below) |
double maxRotateDampYRange | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Get the maximum of the damping range in Y.
This corresponds to the maxRotateDampYRange attribute on the joint.
The minRotateDampRange and minRotateDampStrength are attributes used by ik to apply resistance to a joint rotation as it approaches the upper boundary of its rotation limits. This functionality allows joint motion to slow down smoothly until the joint reaches its rotation limits instead of stopping abruptly. The maxRotateDampRange specifies when the deceleration should start, and the maxRotateDampStrength defines the rate of deceleration.
[out] | ReturnStatus | Status Code (see below) |
double maxRotateDampZRange | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Get the maximum of the damping range in Z.
This corresponds to the maxRotateDampZRange attribute on the joint.
The minRotateDampRange and minRotateDampStrength are attributes used by ik to apply resistance to a joint rotation as it approaches the upper boundary of its rotation limits. This functionality allows joint motion to slow down smoothly until the joint reaches its rotation limits instead of stopping abruptly. The maxRotateDampRange specifies when the deceleration should start, and the maxRotateDampStrength defines the rate of deceleration.
[out] | ReturnStatus | Status Code (see below) |
MStatus setMinRotateDampXRange | ( | double | angle | ) |
Set the minimum of the damping range in X.
[in] | angle | The damping range to set |
MStatus setMinRotateDampYRange | ( | double | angle | ) |
Set the minimum of the damping range in Y.
[in] | angle | the damping range to set |
MStatus setMinRotateDampZRange | ( | double | angle | ) |
Set the minimum of the damping range in Z.
[in] | angle | the damping range to set |
MStatus setMaxRotateDampXRange | ( | double | angle | ) |
Set the maximum of the damping range in X.
[in] | angle | the damping range to set |
MStatus setMaxRotateDampYRange | ( | double | angle | ) |
Set the maximum of the damping range in Y.
[in] | angle | the damping range to set |
MStatus setMaxRotateDampZRange | ( | double | angle | ) |
Set the maximum of the damping range in Z.
[in] | angle | the damping range to set |
double minRotateDampXStrength | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Get the minimum of the damping strength in X.
[out] | ReturnStatus | Status Code (see below) |
double minRotateDampYStrength | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Get the minimum of the damping strength in X.
[out] | ReturnStatus | Status Code (see below) |
double minRotateDampZStrength | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Get the minimum of the damping strength in X.
[out] | ReturnStatus | Status Code (see below) |
double maxRotateDampXStrength | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Get the minimum of the damping strength in X.
[out] | ReturnStatus | Status Code (see below) |
double maxRotateDampYStrength | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Get the minimum of the damping strength in X.
[out] | ReturnStatus | Status Code (see below) |
double maxRotateDampZStrength | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Get the minimum of the damping strength in X.
[out] | ReturnStatus | Status Code (see below) |
MStatus setMinRotateDampXStrength | ( | double | angle | ) |
Set the maximum of the damping strength in Z.
[in] | angle | The new damping strength value |
MStatus setMinRotateDampYStrength | ( | double | angle | ) |
Set the maximum of the damping strength in Y.
[in] | angle | The new damping strength value |
MStatus setMinRotateDampZStrength | ( | double | angle | ) |
Set the minimum of the damping strength in Z.
[in] | angle | The new damping strength value |
MStatus setMaxRotateDampXStrength | ( | double | angle | ) |
Set the maximum of the damping strength in X.
[in] | angle | The new damping strength value |
MStatus setMaxRotateDampYStrength | ( | double | angle | ) |
Set the maximum of the damping strength in Y.
[in] | angle | The new damping strength value |
MStatus setMaxRotateDampZStrength | ( | double | angle | ) |
Set the maximum of the damping strength in Z.
[in] | angle | The new damping strength value |
Get the name that the HumanIK solver uses to identify this joint.
[out] | ReturnStatus | Status code (see below) |
NO SCRIPT SUPPORT.
Get the name that the HumanIK solver uses to identify this joint.
Python Notes
This method is not supported in Python. See the version which returns a string.
[out] | name | The name used to identify this joint for HumanIK |