#ifndef _MFnTransform #define _MFnTransform // //- // ========================================================================== // Copyright (C) 1995 - 2006 Autodesk, Inc., and/or its licensors. All // rights reserved. // // The coded instructions, statements, computer programs, and/or related // material (collectively the "Data") in these files contain unpublished // information proprietary to Autodesk, Inc. ("Autodesk") and/or its // licensors, which is protected by U.S. and Canadian federal copyright law // and by international treaties. // // The Data may not be disclosed or distributed to third parties or be // copied or duplicated, in whole or in part, without the prior written // consent of Autodesk. // // The copyright notices in the Software and this entire statement, // including the above license grant, this restriction and the following // disclaimer, must be included in all copies of the Software, in whole // or in part, and all derivative works of the Software, unless such copies // or derivative works are solely in the form of machine-executable object // code generated by a source language processor. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. // AUTODESK DOES NOT MAKE AND HEREBY DISCLAIMS ANY EXPRESS OR IMPLIED // WARRANTIES INCLUDING, BUT NOT LIMITED TO, THE WARRANTIES OF // NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, // OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE. IN NO // EVENT WILL AUTODESK AND/OR ITS LICENSORS BE LIABLE FOR ANY LOST // REVENUES, DATA, OR PROFITS, OR SPECIAL, DIRECT, INDIRECT, OR // CONSEQUENTIAL DAMAGES, EVEN IF AUTODESK AND/OR ITS LICENSORS HAS // BEEN ADVISED OF THE POSSIBILITY OR PROBABILITY OF SUCH DAMAGES. // ========================================================================== //+ // // CLASS: MFnTransform // // ***************************************************************************** // // CLASS DESCRIPTION (MFnTransform) // // The Class Description section provides a textual description // of the class, from an external view. The description is to // be sufficient for a client of the class, or an implementor // of the class, to understand its purpose and nature. // Important terms or concepts associated with the class are to // be described. This description can be augmented with a // diagram if the class is visual in nature. // // ***************************************************************************** #if defined __cplusplus // ***************************************************************************** // INCLUDED HEADER FILES #include #include #include // ***************************************************************************** // DECLARATIONS class MVector; class MPoint; class MQuaternion; class MEulerRotation; // ***************************************************************************** // CLASS DECLARATION (MFnTransform) /// Create and access transform nodes. (OpenMaya) (OpenMaya.py) /** Methods for creating and accessing transform nodes. */ #ifdef _WIN32 #pragma warning(disable: 4522) #endif // _WIN32 class OPENMAYA_EXPORT MFnTransform : public MFnDagNode { declareDagMFn( MFnTransform, MFn::kTransform ); public: /// MObject create( MObject parent = MObject::kNullObj, MStatus * ReturnStatus = NULL ); /// MTransformationMatrix transformation( MStatus * ReturnStatus = NULL ) const; /// MStatus set ( const MTransformationMatrix& transform ); /// MStatus getScale( double scale[3] ) const; /// MStatus setScale( const double scale[3] ); /// MStatus scaleBy( const double scale[3] ) ; /// MStatus getShear( double scale[3] ) const; /// MStatus setShear( const double shear[3] ); /// MStatus shearBy( const double shear[3] ); /// MStatus getRotation ( MQuaternion &quaternion, MSpace::Space = MSpace::kTransform ) const; /// MStatus setRotation ( const MQuaternion &quaternion, MSpace::Space = MSpace::kTransform ); /// MStatus rotateBy ( const MQuaternion &quaternion, MSpace::Space = MSpace::kTransform ); /// MStatus getRotation ( MEulerRotation &rotation ) const; /// MStatus setRotation ( const MEulerRotation &rotation ); /// MStatus rotateBy ( const MEulerRotation &rotation, MSpace::Space = MSpace::kTransform ); /// MStatus getRotationQuaternion( double &x, double &y, double &z, double &w, MSpace::Space = MSpace::kTransform) const; /// MStatus setRotationQuaternion( double x, double y, double z, double w, MSpace::Space = MSpace::kTransform); /// MStatus rotateByQuaternion( double x, double y, double z, double w, MSpace::Space = MSpace::kTransform); /// MStatus getRotation( double rotation[3], MTransformationMatrix::RotationOrder& order ) const; /// MStatus setRotation( const double rotation[3], MTransformationMatrix::RotationOrder order ); /// MStatus rotateBy( const double rotation[3], MTransformationMatrix::RotationOrder order, MSpace::Space = MSpace::kTransform); /// MVector getTranslation( MSpace::Space space, MStatus * ReturnStatus = NULL ) const; /// MStatus setTranslation( const MVector & vec, MSpace::Space space ); /// MStatus translateBy( const MVector & vec, MSpace::Space space ); /// MPoint scalePivot(MSpace::Space space, MStatus * ReturnStatus = NULL ) const; /// MStatus setScalePivot( const MPoint& point, MSpace::Space space, bool balance ); /// MVector scalePivotTranslation( MSpace::Space space , MStatus * ReturnStatus = NULL ) const; /// MStatus setScalePivotTranslation( const MVector& vec, MSpace::Space space ); /// MPoint rotatePivot(MSpace::Space space , MStatus * ReturnStatus = NULL ) const; /// MStatus setRotatePivot( const MPoint& point, MSpace::Space space, bool balance ); /// MVector rotatePivotTranslation( MSpace::Space space, MStatus * ReturnStatus = NULL ) const; /// MStatus setRotatePivotTranslation( const MVector& vec, MSpace::Space space ); /// MQuaternion rotateOrientation(MSpace::Space space , MStatus * ReturnStatus = NULL ) const; /// MStatus setRotateOrientation( const MQuaternion& quat, MSpace::Space space, bool balance ); /// MTransformationMatrix::RotationOrder rotationOrder( MStatus* ReturnStatus = NULL ) const; /// MStatus setRotationOrder( MTransformationMatrix::RotationOrder order, bool reorder ); /// MTransformationMatrix restPosition( MStatus* ReturnStatus) const; /// MStatus setRestPosition( const MTransformationMatrix& matrix ); /// MStatus resetFromRestPosition(); /// MStatus clearRestPosition(); /// OBSOLETE MStatus getRotation( double rotation[3], MTransformationMatrix::RotationOrder& order, MSpace::Space) const; /// OBSOLETE MStatus setRotation(const double rotation[3], MTransformationMatrix::RotationOrder order, MSpace::Space); /// OBSOLETE MVector translation( MSpace::Space space, MStatus * ReturnStatus = NULL ) const; /// enum LimitType { /// kScaleMinX, /// kScaleMaxX, /// kScaleMinY, /// kScaleMaxY, /// kScaleMinZ, /// kScaleMaxZ, /// kShearMinXY, /// kShearMaxXY, /// kShearMinXZ, /// kShearMaxXZ, /// kShearMinYZ, /// kShearMaxYZ, /// kRotateMinX, /// kRotateMaxX, /// kRotateMinY, /// kRotateMaxY, /// kRotateMinZ, /// kRotateMaxZ, /// kTranslateMinX, /// kTranslateMaxX, /// kTranslateMinY, /// kTranslateMaxY, /// kTranslateMinZ, /// kTranslateMaxZ }; /// bool isLimited( MFnTransform::LimitType type, MStatus * ReturnStatus = NULL ) const; /// double limitValue ( MFnTransform::LimitType type, MStatus * ReturnStatus = NULL ) const; /// MStatus setLimit ( MFnTransform::LimitType type, double value); /// MStatus enableLimit ( MFnTransform::LimitType type, bool flag); BEGIN_NO_SCRIPT_SUPPORT: declareDagMFnConstConstructor( MFnTransform, MFn::kTransform ); END_NO_SCRIPT_SUPPORT: protected: virtual bool objectChanged( MFn::Type, MStatus * ); private: // No private members }; #ifdef _WIN32 #pragma warning(default: 4522) #endif // _WIN32 // ***************************************************************************** #endif /* __cplusplus */ #endif /* _MFnTransform */