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® 2009 © 1997-2008 Autodesk, Inc. All rights reserved. Generated with doxygen 1.5.6