Proxy constraint node.
MPxConstraint is the parent class for user defined constraint nodes. Position, orientation or scale of an object can be constrained by other objects. This class works in conjunction with the MPxConstraintCommand class.
geometrySurfaceConstraint.cpp, and geometrySurfaceConstraint.h.
#include <MPxConstraint.h>
Public Types |
|
enum | UpVectorType
{ kScene = 0, kObject, kObjectRotation, kVector, kLast } |
The type of up vector. More... |
|
Public Member Functions |
|
MPxConstraint () | |
Constructor. |
|
virtual | ~MPxConstraint () |
Destructor. |
|
virtual const MObject | weightAttribute () const |
Returns the weight attribute for the
constraint. |
|
virtual const MObject | targetAttribute () const |
Returns the target attribute for the
constraint. |
|
virtual const MObject | constraintRotateOrderAttribute () const |
Returns the rotate order attribute for the
constraint. |
|
Static Public Member Functions |
|
static const char * | className () |
Returns the name of this class. |
|
Static Public Attributes |
|
static MObject | enableRestPosition |
Node attribute: enableRestPosition/erp -
boolean. |
|
static MObject | lockOutput |
Node attribute: lockOutput/lo - boolean.
|
|
Protected Member Functions |
|
virtual const MObject | passiveOutputAttribute () const |
Returns the passive output attribute for the
constraint. |
|
virtual void | getOutputAttributes (MObjectArray &attributeArray) |
Returns output attributes for the
constraint. |
|
MStatus | closestPoint (const MObject &dataGeometryObject, const MPoint &toThisPoint, MPoint &theClosestPoint) const |
Returns the closest point on this surface to
the given point. |
|
MStatus | closestNormal (const MObject &dataGeometryObject, const MPoint &toThisPoint, MVector &theNormal) const |
Returns the closest normal on this surface
to the given point. |
|
MStatus | closestTangent (const MObject &dataGeometryObject, const MPoint &toThisPoint, MVector &theTangent) const |
Returns the closest tangent on this surface
to the given point. |
|
MEulerRotation | computeAim (const MMatrix &parentInverseMatrix, const MVector &targetVector, const MVector &aimVector, const MVector &upVector, const MVector &wupVector, MEulerRotation::RotationOrder order=MEulerRotation::kXYZ, const MQuaternion &jointOrient=MQuaternion::identity, MStatus *ResultStatus=NULL) const |
Returns the rotation which aligns the
aimVector in local space with the targetVector in local space while
keeping the upVector in local space and the wUpVector world space
aligned as closely as possible. |
|
MVector | worldUpVector (MPxConstraint::UpVectorType upType, const MVector &upVector, const MMatrix &upMatrix, const MPoint &constrPoint, MStatus *ResultStatus=NULL) const |
Returns the world up vector based on the
requested up type. |
|
MPoint | worldConstraintPoint (const MMatrix &parentInverseMatrix, const MVector &translate, const MVector &rotatePivot, const MVector &rotatePivotTranslate, MStatus *ResultStatus=NULL) const |
Returns the world constraint point. |
enum UpVectorType |
The type of up vector.
MPxConstraint | ( | ) |
Constructor.
The constructor should never call any methods from MPxConstraint or make any calls that require the existence of the MObject associated with the user defined node. The postConstructor method should be used to do any initialization of this kind.
const MObject weightAttribute | ( | ) | const [virtual] |
Returns the weight attribute for the constraint.
Default implementation returns MObject::kNullObj.
const MObject targetAttribute | ( | ) | const [virtual] |
Returns the target attribute for the constraint.
Default implementation returns MObject::kNullObj.
const MObject constraintRotateOrderAttribute | ( | ) | const [virtual] |
Returns the rotate order attribute for the constraint.
Default implementation returns MObject::kNullObj.
If is only necessary to override this method if the constraint will control rotation.
const char * className | ( | ) | [static] |
const MObject passiveOutputAttribute | ( | ) | const [protected, virtual] |
Returns the passive output attribute for the constraint.
Default implementation returns MObject::kNullObj.
Passive output attributes do not prevent value modifications to the destination attribute when connected.
void getOutputAttributes | ( | MObjectArray & | attributeArray | ) | [protected, virtual] |
Returns output attributes for the constraint.
Default implementation clears the input attributeArray and returns.
[out] | attributeArray | Array of output attributes. |
MStatus closestPoint | ( | const MObject & | dataGeometryObject, |
const MPoint & | toThisPoint, | ||
MPoint & | theClosestPoint | ||
) | const [protected] |
Returns the closest point on this surface to the given point.
[in] | dataGeometryObject | surface |
[in] | toThisPoint | the point to evaluate from |
[out] | theClosestPoint | the calculated closest point |
MStatus closestNormal | ( | const MObject & | dataGeometryObject, |
const MPoint & | toThisPoint, | ||
MVector & | theNormal | ||
) | const [protected] |
Returns the closest normal on this surface to the given point.
[in] | dataGeometryObject | surface |
[in] | toThisPoint | the point to evaluate from |
[out] | theNormal | the calculated closest normal |
MStatus closestTangent | ( | const MObject & | dataGeometryObject, |
const MPoint & | toThisPoint, | ||
MVector & | theTangent | ||
) | const [protected] |
Returns the closest tangent on this surface to the given point.
[in] | dataGeometryObject | surface |
[in] | toThisPoint | the point to evaluate from |
[out] | theTangent | the calculated closest tangent |
MEulerRotation computeAim | ( | const MMatrix & | parentInverseMatrix, |
const MVector & | targetVector, | ||
const MVector & | aimVector, | ||
const MVector & | upVector, | ||
const MVector & | wUpVector, | ||
MEulerRotation::RotationOrder | order =
MEulerRotation::kXYZ , |
||
const MQuaternion & | jointOrient = MQuaternion::identity , |
||
MStatus * | ResultStatus =
NULL |
||
) | const [protected] |
Returns the rotation which aligns the aimVector in local space with the targetVector in local space while keeping the upVector in local space and the wUpVector world space aligned as closely as possible.
[in] | parentInverseMatrix | |
[in] | targetVector | |
[in] | aimVector | |
[in] | upVector | |
[in] | wUpVector | |
[in] | order | |
[in] | jointOrient | |
[out] | ResultStatus |
MVector worldUpVector | ( | MPxConstraint::UpVectorType | upType, |
const MVector & | upVector, | ||
const MMatrix & | upMatrix, | ||
const MPoint & | constrPoint, | ||
MStatus * | ResultStatus =
NULL |
||
) | const [protected] |
Returns the world up vector based on the requested up type.
[in] | upType | |
[in] | upVector | |
[in] | upMatrix | |
[in] | constrPoint | |
[out] | ResultStatus |
MPoint worldConstraintPoint | ( | const MMatrix & | parentInverseMatrix, |
const MVector & | translate, | ||
const MVector & | rotatePivot, | ||
const MVector & | rotatePivotTranslate, | ||
MStatus * | ResultStatus =
NULL |
||
) | const [protected] |
Returns the world constraint point.
[in] | parentInverseMatrix | |
[in] | translate | |
[in] | rotatePivot | |
[in] | rotatePivotTranslate | |
[out] | ResultStatus |
MObject enableRestPosition
[static] |
Node attribute: enableRestPosition/erp - boolean.
This attribute defines the constraint behavior when all weights are at zero.
If true, the constraint goes to the restTranslate position when all weights are zero. If false, the constraint output is not computed when all weights are zero.
MObject lockOutput
[static] |
Node attribute: lockOutput/lo - boolean.
When enabled, the constrained object cannot be moved away from its constrained location, and a pairBlend will not be inserted if the user tries to keyframe the constrained attributes.
This allows for the pre-5.0 behavior of constraints. When disabled, the constrained object can be moved away from the constraint and a pairBlend will be inserted if the object is keyframed and the animation blending preference specifies that blending is enabled.