Public Member Functions | Protected Member Functions

MFnScaleManip Class Reference

Search for all occurrences

Detailed Description

ScaleManip function set.

This class provides access to the built-in Maya scale manipulator. The manipulator consists of three constrained-axis scale handles for non-proportional scaling, and a central handle for proportional scaling.

The manipulator provides data to the plugin through the scale manipVal. The scale value is a vector consisting of X, Y, and Z scale values. Each scale value represents a factor controlling how much an object should be extended along that dimension. The scale values are absolute and the initial scale value has a default of <1.0,1.0,1.0>.

The manipulator can be configured either to display with an object (which must be a DAG node) or to display at an arbitrary point using the scaleCenter manipVal.

Examples:

componentScaleManip.cpp, and swissArmyManip.cpp.

#include <MFnScaleManip.h>

Inheritance diagram for MFnScaleManip:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual MFn::Type  type () const
  Function set type.
virtual  ~MFnScaleManip ()
  Destructor.
  MFnScaleManip ()
  Default constructor.
  MFnScaleManip (MObject &object, MStatus *ReturnStatus=NULL)
  Constructor.
  MFnScaleManip (const MDagPath &object, MStatus *ret=NULL)
  Constructor.
MObject  create (MStatus *ReturnStatus=NULL)
  Creates a new ScaleManip, and attaches this function set to the new manipulator.
MObject  create (const MString &manipName, const MString &scaleName, MStatus *ReturnStatus=NULL)
  Creates a new ScaleManip, and attaches this function set to the new manipulator.
MStatus  connectToScalePlug (const MPlug &scalePlug)
  Create a 1-1 connection from the scale manipVal to the scalePlug parameter.
MStatus  connectToScaleCenterPlug (const MPlug &scaleCenterPlug)
  Create a 1-1 association of the scale center on the manipulator and the scaleCenterPlug parameter.
MStatus  setInitialScale (const MVector &scale)
  Sets the initial scale for the scale manipulator.
MStatus  displayWithNode (const MObject &node)
  Configures the manipulator to display with the node, causing the position of the manipulator to follow the position of the node whenever the node is moved.
MStatus  setSnapMode (bool snapEnabled)
  Sets the snap mode.
bool  isSnapModeOn () const
  Returns true when snap mode is on.
MStatus  setSnapIncrement (double snapInc)
  Sets the snap increment.
double  snapIncrement () const
  Returns the snapping increment in working units.
unsigned int  scaleIndex (MStatus *ReturnStatus=NULL) const
  Returns the index of the scale manipVal for this manipulator.
unsigned int  scaleCenterIndex (MStatus *ReturnStatus=NULL) const
  Returns the index of the scale center manipVal for this manipulator.
  MFnScaleManip (const MObject &object, MStatus *ret=NULL)
  Constructor.

Protected Member Functions

virtual const char *  className () const
  Class name.

Constructor & Destructor Documentation

~MFnScaleManip ( ) [virtual]

Destructor.

Class destructor.

MFnScaleManip ( MObject object,
MStatus ReturnStatus = NULL 
)

Constructor.

Class constructor that initializes the function set to the given MObject.

Parameters:
[in] object The MObject to attach the function set to
[out] ReturnStatus the return status
Status Codes:
MFnScaleManip ( const MDagPath object,
MStatus ReturnStatus = NULL 
)

Constructor.

Class constructor that initializes the function set to the given constant MDagPath object.

Parameters:
[in] object The const MDagPath to attach the function set to
[out] ReturnStatus The return status
Status Codes:
MFnScaleManip ( const MObject object,
MStatus ReturnStatus = NULL 
)

Constructor.

Class constructor that initializes the function set to the given MObject.

Parameters:
[in] object The MObject to attach the function set to
[out] ReturnStatus the return status
Status Codes:

Member Function Documentation

MFn::Type type ( ) const [virtual]

Function set type.

Return the class type : MFn::kScaleManip.

Reimplemented from MFnManip3D.

const char * className ( ) const [protected, virtual]

Class name.

Return the class name : "MFnScaleManip".

Reimplemented from MFnManip3D.

MObject create ( MStatus ReturnStatus = NULL )

Creates a new ScaleManip, and attaches this function set to the new manipulator.

This method should only be used to create a non-composite manipulator, meaning that the manipulator is standalone and not part of a container.

When the manipulator is being used, the feedback line will display a string including "Scale", indicating that this manipulator is in use.

Parameters:
[out] ReturnStatus return status
Returns:
An object corresponding to the new manipulator
Status Codes:
MObject create ( const MString manipName,
const MString scaleName,
MStatus ReturnStatus = NULL 
)

Creates a new ScaleManip, and attaches this function set to the new manipulator.

This method should only be used to create a non-composite manipulator, meaning that the manipulator is standalone and not part of a container.

When the manipulator is being used, the feedback line will display a string including scaleName, indicating that this manipulator is in use.

Parameters:
[in] manipName Name of the manip for UI purposes.
[in] scaleName Label for the scale value displayed in the feedback line.
[out] ReturnStatus Status code.
Returns:
An object corresponding to the new manipulator.
Status Codes:

Reimplemented from MFnDependencyNode.

MStatus connectToScalePlug ( const MPlug scalePlug )

Create a 1-1 connection from the scale manipVal to the scalePlug parameter.

Any changes to the scale manipVal will be immediately reflected in the connected plug. Connecting to the "scale" plug on a transform node will produce similar behavior to the built-in scale manipulator.

The plug must have a data type of MFnNumericData::k3Double.

Parameters:
[in] scalePlug The plug to connect the scale value to
Returns:
  • MS::kSuccess Successfully connected the plug
  • MS::kFailure Could not connect to the plug or an invalid object is attached to the function set
MStatus connectToScaleCenterPlug ( const MPlug scaleCenterPlug )

Create a 1-1 association of the scale center on the manipulator and the scaleCenterPlug parameter.

When both the scale center is attached to a plug and the displayWithNode() method has been called, the manipulator will display with the node regardless of the connection made to the scale center.

The plug must have a data type of MFnNumericData::k3Double.

Parameters:
[in] scaleCenterPlug The plug to connect the scale center to
Returns:
  • MS::kSuccess Successfully connected the plug
  • MS::kFailure Could not connect to the plug or an invalid object is attached to the function set
MStatus setInitialScale ( const MVector scale )

Sets the initial scale for the scale manipulator.

Setting the initial scale will prevent the manipulator from jumping back to the default scale when there is already an existing scale on the target plug.

Parameters:
[in] scale The initial scale
Returns:
  • MS::kSuccess Successfully set the initial scale
  • MS::kFailure Could not set the scale or an invalid object is attached to the function set
MStatus displayWithNode ( const MObject node )

Configures the manipulator to display with the node, causing the position of the manipulator to follow the position of the node whenever the node is moved.

The node must be a DAG object.

Parameters:
[in] node The node the manipulator should display with
Returns:
MStatus setSnapMode ( bool  snapEnabled )

Sets the snap mode.

The snap modes can be either on (true) or off (false). When snap mode is on, scale values will snap to scale value within some interval apart. The interval is set using setSnapIncrement().

Parameters:
[in] snapEnabled The new snap mode
Returns:
bool isSnapModeOn ( ) const

Returns true when snap mode is on.

Returns:
Snap mode
MStatus setSnapIncrement ( double  snapInc )

Sets the snap increment.

The snap increment is specified in the working unit, and is the distance between snap points when dragging the scale handles.

Parameters:
[in] snapInc The new snap increment
Returns:
double snapIncrement ( ) const

Returns the snapping increment in working units.

Returns:
Snapping increment
unsigned int scaleIndex ( MStatus ReturnStatus = NULL ) const

Returns the index of the scale manipVal for this manipulator.

Parameters:
[out] ReturnStatus return status
Returns:
Scale index
Status Codes:
  • MS::kSuccess Successfully retrieved the index
  • MS::kFailure Failed to retrieve the index or the object attached to this function set is invalid
unsigned int scaleCenterIndex ( MStatus ReturnStatus = NULL ) const

Returns the index of the scale center manipVal for this manipulator.

Note that the scale center is only used for display of the manipulator and has no effect on scale values produced by the manipulator.

Parameters:
[out] ReturnStatus return status
Returns:
Scale center index
Status Codes:
  • MS::kSuccess Successfully retrieved the index
  • MS::kFailure Failed to retrieve the index or the object attached to this function set is invalid

MFnScaleManip MFnScaleManip MFnScaleManip MFnScaleManip MFnScaleManip MFnScaleManip MFnScaleManip MFnScaleManip MFnScaleManip MFnScaleManip
MFnScaleManip MFnScaleManip MFnScaleManip MFnScaleManip MFnScaleManip MFnScaleManip MFnScaleManip MFnScaleManip MFnScaleManip MFnScaleManip