This reference page is linked to from the following overview topics: A hardware shading node plug-in example.
Geometric data container.
This class allows storage of arbitrary data which is formated to be specifically suitable for usage using a 3D display interface such as OpenGL.
Format options include:
There are specific "type" identifiers to provide a semantic on for the data. These include:
Currently Maya only interprets a fixed format subset for data with recongnized semantics, This does not mean that the user cannot create any arbitrary format for data storage. Support formats with semantics includes:
Memory allocation of the correct size is left up to the user of this class.
Memory can be marked as "owned" by this class or the user of this class. Ownership by this class is the default behaviour specified in the constructor. If the data is marked as being owned by the class, it is assumed that the data is created using a "new" operation, as the destructor of this class will use a "delete" operation to free memory.
Internal Maya data which is passed to the user via this class is always assumed to be non-modifiable. If modified, stability cannot be ensured.
#include <MGeometryData.h>
Public Types |
|
enum | ElementSize
{ kInvalidElementSize = 0, kOne = 1, kTwo, kThree, kFour } |
Specifies the size or dimension of each data element of the storage. More... |
|
enum | ElementType
{ kInvalidElementType = -1, kFloat = 0, kDouble, kChar, kUnsignedChar, kInt16, kUnsignedInt16, kInt32, kUnsignedInt32 } |
Specifies the data type of each data element of the storage. More... |
|
enum | DataType
{ kInvalidDataType = 0, kPosition, kNormal, kTexCoord, kColor, kWeight, kAPISupported, kTangent, kBiNormal, kVelocity, kPrimitiveCenter, kColorMask, kUserData, kMaxDataTypeIndex } |
Specifies the data type of the storage array. More... |
|
Public Member Functions |
|
MGeometryData (const char *dataName, DataType dataType, ElementType elementType, ElementSize elementSize, unsigned int elementCount, void *dataPtr=NULL, bool ownsData=true) | |
Geometry data constructor. |
|
MGeometryData (const MGeometryData &) | |
Copy constructor. |
|
~MGeometryData () | |
Class destructor. |
|
const char * | objectName () const |
Return the logical name of the geometry.
|
|
int | uniqueID () const |
Return the per session unique identifier.
|
|
DataType | dataType () const |
Get the data type for the data. |
|
ElementType | elementType () const |
Returns the data type. |
|
unsigned int | elementTypeSize () const |
Return the element type size. |
|
ElementSize | elementSize () const |
Return element size. |
|
unsigned int | elementCount () const |
Return element count. |
|
void * | data () const |
Retrieve a pointer to the internal data.
|
|
void | setCollectionNumber (int cn) |
Set the collection number for the object.
|
|
int | collectionNumber () const |
Get the collection number of the data.
|
|
void | setObjectOwnsData (bool val) |
Set ownship of the interal data. |
|
bool | objectOwnsData () const |
Return if the MGeometryData object owns the
internal data or not. |
|
Friends |
|
class | MGeometry |
class | MHardwareRenderer |
class | MD3D9Renderer |
enum ElementSize |
Specifies the size or dimension of each data element of the storage.
enum ElementType |
Specifies the data type of each data element of the storage.
enum DataType |
Specifies the data type of the storage array.
MGeometryData | ( | const char * | dataName, |
MGeometryData::DataType | dataType, | ||
MGeometryData::ElementType | elementType, | ||
MGeometryData::ElementSize | elementSize, | ||
unsigned int | elementCount, | ||
void * | dataPtr = NULL , |
||
bool | ownsData =
true |
||
) |
Geometry data constructor.
Data is reference counted. On creation the reference count is set to be 1.
[in] | dataName | name of the data |
[in] | dataType | type of data |
[in] | elementType | element type |
[in] | elementSize | size or dimension of an element. For example, a 3D position vector has three components per position (x, y, z) so it would have an elementSize of kThree. |
[in] | elementCount | element count |
[in] | dataPtr | pointer to contiguous block of data |
[in] | ownsData | flag to tell if the instance owns the data or not. |
~MGeometryData | ( | ) |
Class destructor.
Automatically releases the associated image array.
const char * objectName | ( | ) | const |
Return the logical name of the geometry.
int uniqueID | ( | ) | const |
Return the per session unique identifier.
MGeometryData::DataType dataType | ( | ) | const |
Get the data type for the data.
MGeometryData::ElementType elementType | ( | ) | const |
Returns the data type.
unsigned int elementTypeSize | ( | ) | const |
MGeometryData::ElementSize elementSize | ( | ) | const |
Return element size.
unsigned int elementCount | ( | ) | const |
Return element count.
void * data | ( | ) | const |
Retrieve a pointer to the internal data.
void setCollectionNumber | ( | int | collectionNumber | ) |
Set the collection number for the object.
Numbers less than 0 are invalid collection numbers.
[in] | collectionNumber | The number to use |
int collectionNumber | ( | ) | const |
Get the collection number of the data.
Collection numbers are zero-based.
void setObjectOwnsData | ( | bool | value | ) |
Set ownship of the interal data.
[in] | value | ownership flag to set to. |
bool objectOwnsData | ( | ) | const |
Return if the MGeometryData object owns the internal data or not.