Wrappers

 
 
 

Wrappers exist for simple objects such as math classes (like vectors or matrices). They are generally fully implemented C++ classes with public constructors and destructors. API methods may return a wrapper, which you are then responsible for—leaving scope will usually be adequate for deleting the wrapper. You are also free to allocate and deallocate them as necessary. In the previous example (Building a curve using a plug-in), MPointArray and MDoubleArray are wrappers. You always own the wrapper that you reference.

ImportantMove wrapper declarations (MIntArray, MFloatArray etc.) out of heavy loops if possible.

The constructor of a wrapper will in most cases call new to allocate the internal Maya object. As a result, if a wrapper is declared in a heavy loop memory will be allocated and de-allocated repeatedly.

This tip does not apply to static wrapper classes such as MGlobal.