MFnUnitAttribute Class Reference
[OpenMaya - API module for common classesFunctionSet classes]

#include <MFnUnitAttribute.h>
Inheritance diagram for MFnUnitAttribute:
Inheritance graph
[legend]
Collaboration diagram for MFnUnitAttribute:
Collaboration graph
[legend]

List of all members.


Detailed Description

Unit attribute Function set.

MFnUnitAttribute is the function set for dependency nodes attributes that store one of the fundamental types of Maya data. The currently supported types are MAngle, MDistance, and MTime.

It is possible to set the defaults using a double. This is valid for angles and distances. In the case of angles, the value is assumed to be in radians, and in the case of distances, it is assumed to be in centimeters. Time values should not be set using a double.

It is possible to use unit attributes in place of double attributes when creating numeric compounds (see MFnNumericAttrbute). To create a numeric compound of three distance values, create the three child attributes using MFnUnitAttribute and then pass the children into the create method of MFnNumericAttribute.

Examples:

animCubeNode.cpp, buildRotationNode.cpp, footPrintManip.cpp, footPrintNode.cpp, latticeNoiseNode.cpp, shellNode.cpp, swissArmyManip.cpp, testNobjectNode.cpp, and testNucleusNode.cpp.


Public Types

enum   Type {
   kInvalid, kAngle, kDistance, kTime,
   kLast
}
  Type of unit represented by attribute values. More...

Public Member Functions

virtual MFn::Type  type () const
  Function set type.
virtual  ~MFnUnitAttribute ()
  Destructor.
  MFnUnitAttribute ()
  Default constructor.
  MFnUnitAttribute (MObject &object, MStatus *ReturnStatus=NULL)
  Constructor.
MObject  create (const MString &fullName, const MString &briefName, MFnUnitAttribute::Type unitType, double defaultValue=0.0, MStatus *ReturnStatus=NULL)
MObject  create (const MString &fullName, const MString &briefName, const MTime &defaultValue, MStatus *ReturnStatus=NULL)
MObject  create (const MString &fullName, const MString &briefName, const MAngle &defaultValue, MStatus *ReturnStatus=NULL)
MObject  create (const MString &fullName, const MString &briefName, const MDistance &defaultValue, MStatus *ReturnStatus=NULL)
MFnUnitAttribute::Type  unitType (MStatus *ReturnStatus=NULL) const
bool  hasMin (MStatus *ReturnStatus=NULL) const
bool  hasMax (MStatus *ReturnStatus=NULL) const
bool  hasSoftMin (MStatus *ReturnStatus=NULL) const
bool  hasSoftMax (MStatus *ReturnStatus=NULL) const
MStatus  getMin (double &minValue) const
MStatus  getMin (MTime &minValue) const
MStatus  getMin (MAngle &minValue) const
MStatus  getMin (MDistance &minValue) const
MStatus  getMax (double &maxValue) const
MStatus  getMax (MTime &maxValue) const
MStatus  getMax (MAngle &maxValue) const
MStatus  getMax (MDistance &maxValue) const
MStatus  getSoftMin (double &minValue) const
MStatus  getSoftMin (MTime &minValue) const
MStatus  getSoftMin (MAngle &minValue) const
MStatus  getSoftMin (MDistance &minValue) const
MStatus  getSoftMax (double &maxValue) const
MStatus  getSoftMax (MTime &maxValue) const
MStatus  getSoftMax (MAngle &maxValue) const
MStatus  getSoftMax (MDistance &maxValue) const
MStatus  setMin (double minValue)
MStatus  setMin (const MTime &minValue)
MStatus  setMin (const MAngle &minValue)
MStatus  setMin (const MDistance &minValue)
MStatus  setMax (double maxValue)
MStatus  setMax (const MTime &maxValue)
MStatus  setMax (const MAngle &maxValue)
MStatus  setMax (const MDistance &maxValue)
MStatus  setSoftMin (double minValue)
MStatus  setSoftMin (const MTime &minValue)
MStatus  setSoftMin (const MAngle &minValue)
MStatus  setSoftMin (const MDistance &minValue)
MStatus  setSoftMax (double maxValue)
MStatus  setSoftMax (const MTime &maxValue)
MStatus  setSoftMax (const MAngle &maxValue)
MStatus  setSoftMax (const MDistance &maxValue)
MStatus  getDefault (double &defaultValue)
MStatus  getDefault (MTime &defaultValue)
MStatus  getDefault (MAngle &defaultValue)
MStatus  getDefault (MDistance &defaultValue)
MStatus  setDefault (double defaultValue)
MStatus  setDefault (const MTime &defaultValue)
MStatus  setDefault (const MAngle &defaultValue)
MStatus  setDefault (const MDistance &defaultValue)
  MFnUnitAttribute (const MObject &object, MStatus *ReturnStatus=NULL)
  Constructor.

Protected Member Functions

virtual const char *  className () const
  Class name.

Member Enumeration Documentation

Type of unit represented by attribute values.

Enumerator:
kInvalid  Invalid unit type.
kAngle  Angular attribute.
kDistance  Distance (linear) attribute.
kTime  Time attribute.
kLast  Last value, for counting.

Constructor & Destructor Documentation

MFnUnitAttribute::MFnUnitAttribute ( 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:

MFnUnitAttribute::MFnUnitAttribute ( 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 MFnUnitAttribute::type (  )  const [virtual]

Function set type.

Return the class type : MFn::kUnitAttribute

Reimplemented from MFnAttribute.

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

Class name.

Return the class name : "MFnUnitAttribute"

Reimplemented from MFnAttribute.

MObject MFnUnitAttribute::create ( const MString full,
const MString brief,
MFnUnitAttribute::Type  unitType,
double  defaultValue = 0.0,
MStatus ReturnStatus = NULL  
)

Create a new unit attribute and return it as an MObject. For both angle and distance attributes, the attribute is type independent. For example, you define an angular attribute as containing an angle in radians. The defaultValue passed to the create method must be in these units, and the value in those units will be returned by the get and set methods. If this method is used to instantiate a time attribute, the units stored in the attribute will be those of the current default time unit (see MTime).

A unit attribute supports both a hard maximum/minimum and a soft maximum/minimum. The soft maximum/minimum are used by the user interface for limits on sliders, but values within the hard range are still valid.

The create method needs to be called on a per node basis. That means if you want to create and add the same attribute to multiple nodes, you need to call the create method for each node to get a unique MObject back. If you call create just once and add the attribute to multiple nodes, Maya will encounter a fatal error.

Parameters:
[in]  full  the full (or int) name of the attribute
[in]  brief  the brief (or short) name of the attribute
[in]  unitType  an element of the MFnUnitAttribute::Type enum
[in]  defaultValue  the default value for the new attribute
[out]  ReturnStatus 
Returns:
An MObject representing the new attribute
Examples:

MObject MFnUnitAttribute::create ( const MString full,
const MString brief,
const MTime defaultValue,
MStatus ReturnStatus = NULL  
)

Create a new unit attribute of type time and return it as an MObject. The units of the time value stored in the attribute will be those of the current default time units in effect (see MTime).

Parameters:
[in]  full  the full (or int) name of the attribute
[in]  brief  the brief (or short) name of the attribute
[in]  defaultValue  the default value for the new attribute
[out]  ReturnStatus 
Returns:
An MObject representing the new attribute

MObject MFnUnitAttribute::create ( const MString full,
const MString brief,
const MAngle defaultValue,
MStatus ReturnStatus = NULL  
)

Create a new unit attribute of type angle and return it as an MObject.

Parameters:
[in]  full  the full (or int) name of the attribute
[in]  brief  the brief (or short) name of the attribute
[in]  defaultValue  the default value for the new attribute
[out]  ReturnStatus 
Returns:
An MObject representing the new attribute

MObject MFnUnitAttribute::create ( const MString full,
const MString brief,
const MDistance defaultValue,
MStatus ReturnStatus = NULL  
)

Create a new unit attribute of type distance and return it as an MObject.

Parameters:
[in]  full  the full (or int) name of the attribute
[in]  brief  the brief (or short) name of the attribute
[in]  defaultValue  the default value for the new attribute
[out]  ReturnStatus 
Returns:
An MObject representing the new attribute

MFnUnitAttribute::Type MFnUnitAttribute::unitType ( MStatus ReturnStatus = NULL  )  const

Return the unit type of this attribute.

Parameters:
[out]  ReturnStatus 
  • MS::kSuccess the operation succeeded
  • MS::kObjectDoesNotExist this instance is not bound to an MObject
Returns:
An element of the MFnUnitAttribute::Type enum

bool MFnUnitAttribute::hasMin ( MStatus ReturnStatus = NULL  )  const

Determine whether or not this attribute has a minimum value set.

Parameters:
[out]  ReturnStatus 
  • MS::kSuccess the operation succeeded
  • MS::kObjectDoesNotExist this instance is not bound to an MObject
Returns:
true if the attribute has a minimum value, and false otherwise

bool MFnUnitAttribute::hasMax ( MStatus ReturnStatus = NULL  )  const

Determine whether or not this attribute has a maximum value set.

Parameters:
[out]  ReturnStatus 
  • MS::kSuccess the operation succeeded
  • MS::kObjectDoesNotExist this instance is not bound to an MObject
Returns:
true if the attribute has a maximum value, and false otherwise

bool MFnUnitAttribute::hasSoftMin ( MStatus ReturnStatus = NULL  )  const

Determine whether or not this attribute has a soft minimum value set.

Parameters:
[out]  ReturnStatus 
  • MS::kSuccess the operation succeeded
  • MS::kObjectDoesNotExist this instance is not bound to an MObject
Returns:
true if the attribute has a minimum value, and false otherwise

bool MFnUnitAttribute::hasSoftMax ( MStatus ReturnStatus = NULL  )  const

Determine whether or not this attribute has a soft maximum value set.

Parameters:
[out]  ReturnStatus 
  • MS::kSuccess the operation succeeded
  • MS::kObjectDoesNotExist this instance is not bound to an MObject
Returns:
true if the attribute has a maximum value, and false otherwise

MStatus MFnUnitAttribute::getMin ( double &  minValue  )  const

Return the minimum value for this attribute. This routine simply returns the numerical value of the attribute. It is up to the programmer to know the units used by this attribute (eg. radians for angular data, centimeters for distance data, etc.) and interpret the response appropriately.

Parameters:
[out]  minValue  the minimum value for this attribute
Returns:

MStatus MFnUnitAttribute::getMin ( MTime minValue  )  const

Return the minimum value for this attribute.

Parameters:
[out]  minValue  the minimum value for this attribute
Returns:

MStatus MFnUnitAttribute::getMin ( MAngle minValue  )  const

Return the minimum value for this attribute.

Parameters:
[out]  minValue  the minimum value for this attribute
Returns:

MStatus MFnUnitAttribute::getMin ( MDistance minValue  )  const

Return the minimum value for this attribute.

Parameters:
[out]  minValue  the minimum value for this attribute
Returns:

MStatus MFnUnitAttribute::getMax ( double &  maxValue  )  const

Return the maximum value for this attribute. This routine simply returns the numerical value of the attribute. It is up to the programmer to know the units used by this attribute (eg. radians for angular data, centimeters for distance data, etc.) and interpret the response appropriately.

Parameters:
[out]  maxValue  the maximum value for this attribute
Returns:

MStatus MFnUnitAttribute::getMax ( MTime maxValue  )  const

Return the maximum value for this attribute.

Parameters:
[out]  maxValue  the maximum value for this attribute
Returns:

MStatus MFnUnitAttribute::getMax ( MAngle maxValue  )  const

Return the maximum value for this attribute.

Parameters:
[out]  maxValue  the maximum value for this attribute
Returns:

MStatus MFnUnitAttribute::getMax ( MDistance maxValue  )  const

Return the maximum value for this attribute.

Parameters:
[out]  maxValue  the maximum value for this attribute
Returns:

MStatus MFnUnitAttribute::getSoftMin ( double &  minValue  )  const

Return the soft minimum value for this attribute. This routine simply returns the numerical value of the attribute. It is up to the programmer to know the units used by this attribute (eg. radians for angular data, centimeters for distance data, etc.) and interpret the response appropriately.

Parameters:
[out]  minValue  the soft minimum value for this attribute
Returns:

MStatus MFnUnitAttribute::getSoftMin ( MTime minValue  )  const

Return the soft minimum value for this attribute.

Parameters:
[out]  minValue  the soft minimum value for this attribute
Returns:

MStatus MFnUnitAttribute::getSoftMin ( MAngle minValue  )  const

Return the soft minimum value for this attribute.

Parameters:
[out]  minValue  the soft minimum value for this attribute
Returns:

MStatus MFnUnitAttribute::getSoftMin ( MDistance minValue  )  const

Return the soft minimum value for this attribute.

Parameters:
[out]  minValue  the soft minimum value for this attribute
Returns:

MStatus MFnUnitAttribute::getSoftMax ( double &  maxValue  )  const

Return the soft maximum value for this attribute. This routine simply returns the numerical value of the attribute. It is up to the programmer to know the units used by this attribute (eg. radians for angular data, centimeters for distance data, etc.) and interpret the response appropriately.

Parameters:
[out]  maxValue  the soft maximum value for this attribute
Returns:

MStatus MFnUnitAttribute::getSoftMax ( MTime maxValue  )  const

Return the soft maximum value for this attribute.

Parameters:
[out]  maxValue  the soft maximum value for this attribute
Returns:

MStatus MFnUnitAttribute::getSoftMax ( MAngle maxValue  )  const

Return the soft maximum value for this attribute.

Parameters:
[out]  maxValue  the soft maximum value for this attribute
Returns:

MStatus MFnUnitAttribute::getSoftMax ( MDistance maxValue  )  const

Return the soft maximum value for this attribute.

Parameters:
[out]  maxValue  the soft maximum value for this attribute
Returns:

MStatus MFnUnitAttribute::setMin ( double  minValue  ) 

Set the minimum value for this attribute. This routine simply stores the given double as the numerical value of the attribute. It is up to the programmer to know the units used by this attribute (eg. radians for angular data, centimeters for distance data, etc.) and provide the appropriate value.

Parameters:
[in]  minValue  the new minimum value for this attribute
Returns:
  • MS::kSuccess the operation succeeded
  • MS::kObjectDoesNotExist this instance is not bound to an MObject

MStatus MFnUnitAttribute::setMin ( const MTime minValue  ) 

Set the minimum value for this attribute.

Parameters:
[in]  minValue  the new minimum value for this attribute
Returns:

MStatus MFnUnitAttribute::setMin ( const MAngle minValue  ) 

Set the minimum value for this attribute.

Parameters:
[in]  minValue  the new minimum value for this attribute
Returns:

MStatus MFnUnitAttribute::setMin ( const MDistance minValue  ) 

Set the minimum value for this attribute.

Parameters:
[in]  minValue  the new minimum value for this attribute
Returns:

MStatus MFnUnitAttribute::setMax ( double  maxValue  ) 

Set the maximum value for this attribute. This routine simply stores the given double as the numerical value of the attribute. It is up to the programmer to know the units used by this attribute (eg. radians for angular data, centimeters for distance data, etc.) and provide the appropriate value.

Parameters:
[in]  maxValue  the new maximum value for this attribute
Returns:
  • MS::kSuccess the operation succeeded
  • MS::kObjectDoesNotExist this instance is not bound to an MObject

MStatus MFnUnitAttribute::setMax ( const MTime maxValue  ) 

Set the maximum value for this attribute.

Parameters:
[in]  maxValue  the new maximum value for this attribute
Returns:

MStatus MFnUnitAttribute::setMax ( const MAngle maxValue  ) 

Set the maximum value for this attribute.

Parameters:
[in]  maxValue  the new maximum value for this attribute
Returns:

MStatus MFnUnitAttribute::setMax ( const MDistance maxValue  ) 

Set the maximum value for this attribute.

Parameters:
[in]  maxValue  the new maximum value for this attribute
Returns:

MStatus MFnUnitAttribute::setSoftMin ( double  minValue  ) 

Set the soft minimum value for this attribute. This routine simply stores the given double as the numerical value of the attribute. It is up to the programmer to know the units used by this attribute (eg. radians for angular data, centimeters for distance data, etc.) and provide the appropriate value.

Parameters:
[in]  minValue  the new soft minimum value for this attribute
Returns:
  • MS::kSuccess the operation succeeded
  • MS::kObjectDoesNotExist this instance is not bound to an MObject

MStatus MFnUnitAttribute::setSoftMin ( const MTime minValue  ) 

Set the soft minimum value for this attribute.

Parameters:
[in]  minValue  the new soft minimum value for this attribute
Returns:

MStatus MFnUnitAttribute::setSoftMin ( const MAngle minValue  ) 

Set the soft minimum value for this attribute.

Parameters:
[in]  minValue  the new soft minimum value for this attribute
Returns:

MStatus MFnUnitAttribute::setSoftMin ( const MDistance minValue  ) 

Set the soft minimum value for this attribute.

Parameters:
[in]  minValue  the new soft minimum value for this attribute
Returns:

MStatus MFnUnitAttribute::setSoftMax ( double  maxValue  ) 

Set the soft maximum value for this attribute. This routine simply stores the given double as the numerical value of the attribute. It is up to the programmer to know the units used by this attribute (eg. radians for angular data, centimeters for distance data, etc.) and provide the appropriate value.

Parameters:
[in]  maxValue  the new soft maximum value for this attribute
Returns:
  • MS::kSuccess the operation succeeded
  • MS::kObjectDoesNotExist this instance is not bound to an MObject

MStatus MFnUnitAttribute::setSoftMax ( const MTime maxValue  ) 

Set the soft maximum value for this attribute.

Parameters:
[in]  maxValue  the new soft maximum value for this attribute
Returns:

MStatus MFnUnitAttribute::setSoftMax ( const MAngle maxValue  ) 

Set the soft maximum value for this attribute.

Parameters:
[in]  maxValue  the new soft maximum value for this attribute
Returns:

MStatus MFnUnitAttribute::setSoftMax ( const MDistance maxValue  ) 

Set the soft maximum value for this attribute.

Parameters:
[in]  maxValue  the new soft maximum value for this attribute
Returns:

MStatus MFnUnitAttribute::getDefault ( double &  defaultValue  ) 

Gets the default value for this attribute. This routine simply returns the given double which represents the default value for the attribute.

Parameters:
[out]  defaultValue  returns the default value for this attribute. This method simply returns the given default value of the attribute as a double. It is up to the programmer to know the units used by this attribute (eg. radians for angular data, centimeters for distance data, etc.).
Returns:

MStatus MFnUnitAttribute::getDefault ( MTime defaultValue  ) 

Gets the default value for a time attribute.

Parameters:
[out]  defaultValue  returns the default value for this attribute
Returns:

MStatus MFnUnitAttribute::getDefault ( MAngle defaultValue  ) 

Gets the default value for this attribute.

Parameters:
[out]  defaultValue  returns the default value for this attribute in radians
Returns:

MStatus MFnUnitAttribute::getDefault ( MDistance defaultValue  ) 

Gets the default value for this attribute.

Parameters:
[out]  defaultValue  returns the default value for this attribute in centimeters
Returns:

MStatus MFnUnitAttribute::setDefault ( double  defaultValue  ) 

Set a new default value for this attribute. This routine simply stores the given double as the new default value of the attribute. It is up to the programmer to know the units used by this attribute (eg. radians for angular data, centimeters for distance data, etc.) and provide the appropriate value.

Parameters:
[in]  defaultValue  the new default value for this attribute
Returns:
MS::kSuccess the operation succeeded
Examples:

MStatus MFnUnitAttribute::setDefault ( const MTime defaultValue  ) 

Set a new default value for a time attribute.

Parameters:
[in]  defaultValue  the new default value for this attribute
Returns:

MStatus MFnUnitAttribute::setDefault ( const MAngle defaultValue  ) 

Set a new default value for this attribute.

Parameters:
[in]  defaultValue  the new default value for this attribute
Returns:

MStatus MFnUnitAttribute::setDefault ( const MDistance defaultValue  ) 

Set a new default value for this attribute.

Parameters:
[in]  defaultValue  the new default value for this attribute
Returns:

Autodesk® Maya® 2011 © 1997-2010 Autodesk, Inc. All rights reserved. Generated with doxygen 1.5.6