MArrayDataBuilder Class Reference
[OpenMaya - API module for common classes]

#include <MArrayDataBuilder.h>

List of all members.


Detailed Description

Array builder for arrays in data blocks.

An MArrayDataBuilder is used to construct data for attributes/plugs that have an array of data. An array builder is used with an MArrayDataHandle for managing data.

Examples:

apiMeshShape.cpp, dynExprField.cpp, multiCurveNode.cpp, ownerEmitter.cpp, simpleEmitter.cpp, sweptEmitter.cpp, torusField.cpp, and weightListNode.cpp.


Public Member Functions

  MArrayDataBuilder (const MObject &attribute, unsigned int numElements, MStatus *ReturnStatus=NULL)
  Obsolete ...
  MArrayDataBuilder (MDataBlock *, const MObject &attribute, unsigned int, MStatus *ReturnStatus=NULL)
MDataHandle  addLast (MStatus *ReturnStatus=NULL)
MDataHandle  addElement (unsigned int index, MStatus *ReturnStatus=NULL)
MArrayDataHandle  addLastArray (MStatus *ReturnStatus=NULL)
MArrayDataHandle  addElementArray (unsigned int index, MStatus *ReturnStatus=NULL)
MStatus  removeElement (unsigned int index)
unsigned int  elementCount (MStatus *ReturnStatus=NULL) const
MStatus  growArray (unsigned int amount)
MStatus  setGrowSize (unsigned int size)
  MArrayDataBuilder (const MArrayDataBuilder &other)
MArrayDataBuilder operator= (const MArrayDataBuilder &other)
  ~MArrayDataBuilder ()

Friends

class  MArrayDataHandle

Constructor & Destructor Documentation

MArrayDataBuilder::MArrayDataBuilder ( const MObject attribute,
unsigned int  numElements,
MStatus ReturnStatus = NULL  
)

Obsolete ...

This method is obsolete.

Deprecated:
Use the other constructor instead.
Parameters:
[in]  attribute  attribute for which we wish to build data
[in]  numElements  number of elements to allocate space for
[out]  ReturnStatus  result status code

MArrayDataBuilder::MArrayDataBuilder ( MDataBlock block,
const MObject attribute,
unsigned int  numElements,
MStatus ReturnStatus = NULL  
)

The class constructor receives an attribute object and the number of elements to allocate space for. The MObject must be a multi attribute (i.e. a plug that is a composite of multiple element plugs). This is different, for example, from a single attribute of type kVectorArrayData, which would be passed through a single plug as a single lump of data. Common examples of a multi-plug are the worldMatrix attribute that is on all DAG nodes, or the position attribute on the particleShape node.

This class will also take as input the datablock that the builder belongs to. You must specify this datablock if you want your builder to support per-plug caching.

Parameters:
[in]  block  the data block that the builder belongs to.
[in]  attribute  attribute for which we wish to build data
[in]  numElements  number of elements to allocate space for
[out]  ReturnStatus  result status code
Status Codes:

MArrayDataBuilder::MArrayDataBuilder ( const MArrayDataBuilder other  ) 

Copy constructor.

Parameters:
[in]  other  The source object to copy from.

MArrayDataBuilder::~MArrayDataBuilder (  ) 

Class destructor.


Member Function Documentation

MDataHandle MArrayDataBuilder::addLast ( MStatus ReturnStatus = NULL  ) 

Adds a new element to the end of the array. The index of the element will be the current highest index + 1.

Parameters:
[out]  ReturnStatus  result status code
Returns:
The handle for the new element
Status Codes:

MDataHandle MArrayDataBuilder::addElement ( unsigned int  index,
MStatus ReturnStatus = NULL  
)

Adds a new element to the array at the given index.

Parameters:
[in]  index  the index at which we wish to add the new element
[out]  ReturnStatus  result status code
Returns:
The handle for the new element
Status Codes:
Examples:

MArrayDataHandle MArrayDataBuilder::addLastArray ( MStatus ReturnStatus = NULL  ) 

Adds a new element to the end of the array. The added element is also an array. The index of the element will the current highest index + 1.

Parameters:
[out]  ReturnStatus  result status code
Returns:
The handle for the new array element
Status Codes:

MArrayDataHandle MArrayDataBuilder::addElementArray ( unsigned int  index,
MStatus ReturnStatus = NULL  
)

Adds a new element to the array at the given index. The added element is also an array.

Parameters:
[in]  index  the index at which we wish to add the new element
[out]  ReturnStatus  result status code
Returns:
The handle for the new array element
Status Codes:

MStatus MArrayDataBuilder::removeElement ( unsigned int  index  ) 

Removes the specified element from the array

Parameters:
[in]  index  the element of the array to remove
Returns:
Result status code
Status Codes:

unsigned int MArrayDataBuilder::elementCount ( MStatus ReturnStatus = NULL  )  const

Returns the number of elements in the array

Parameters:
[out]  ReturnStatus  result status code
Returns:
The number of elements
Status Codes:

MStatus MArrayDataBuilder::growArray ( unsigned int  amount  ) 

Grows the array storage by the given amount.

Parameters:
[in]  amount  the amount to grow the array by
Returns:
Result status code
Status Codes:

MStatus MArrayDataBuilder::setGrowSize ( unsigned int  size  ) 

Sets the grow size of the array. As elements are added to the array, the builder will allocate memory in chunks. This method tells the builder how many elements to allocate each time it grows the array.

Parameters:
[in]  size  the number of elements to allocate when growing the array
Returns:
Result status code
Status Codes:

MArrayDataBuilder & MArrayDataBuilder::operator= ( const MArrayDataBuilder other  ) 

Assignment operator.

Parameters:
[in]  other  The source object to copy from.

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