Qt 5.9 | Qt 3D | C++ Classes | QAttribute

Qt 5.9.3 Reference Documentation

# QAttribute Class

(Qt3DRender::QAttribute)

Defines an attribute and how data should be read from a QBuffer. More...

Header: | #include <Qt3DRender/QAttribute>
qmake: | QT += 3drender
Instantiated By: | Attribute
Inherits: | Qt3DCore::QNode

- List of all members, including inherited members

## Public Types

enum | AttributeType { VertexAttribute, IndexAttribute, DrawIndirectAttribute }
enum | VertexBaseType { Byte, UnsignedByte, Short, UnsignedShort, ..., Double }

## Properties

attributeType : AttributeType buffer : Qt3DRender::QBuffer * byteOffset : uint byteStride : uint count : uint defaultColorAttributeName : const QString defaultNormalAttributeName : const QString | defaultPositionAttributeName : const QString defaultTangentAttributeName : const QString defaultTextureCoordinateAttributeName : const QString divisor : uint name : QString vertexBaseType : VertexBaseType vertexSize : uint

- 3 properties inherited from Qt3DCore::QNode

## Public Functions

| QAttribute(QNode *parent = nullptr)
| QAttribute(QBuffer *buf, VertexBaseType type, uint dataSize, uint count, uint offset = 0, uint stride = 0, QNode *parent = nullptr)
| QAttribute(QBuffer *buf, const QString &name, VertexBaseType type, uint dataSize, uint count, uint offset = 0, uint stride = 0, QNode *parent = nullptr)
AttributeType | attributeType() const
QBuffer * | buffer() const
uint | byteOffset() const
uint | byteStride() const
uint | count() const
uint | divisor() const
QString | name() const
VertexBaseType | vertexBaseType() const
uint | vertexSize() const

- 11 public functions inherited from Qt3DCore::QNode

## Public Slots

void | setAttributeType(AttributeType attributeType)
void | setBuffer(QBuffer *buffer)
void | setByteOffset(uint byteOffset)
void | setByteStride(uint byteStride)
void | setCount(uint count)
`(deprecated)` void | setDataSize(uint size)
`(deprecated)` void | setDataType(VertexBaseType type)
void | setDivisor(uint divisor)
void | setName(const QString &name)
void | setVertexBaseType(VertexBaseType type)
void | setVertexSize(uint size)

- 3 public slots inherited from Qt3DCore::QNode

## Signals

void | attributeTypeChanged(AttributeType attributeType)
void | bufferChanged(QBuffer *buffer)
void | byteOffsetChanged(uint byteOffset)
void | byteStrideChanged(uint byteStride)
void | countChanged(uint count)
void | dataSizeChanged(uint vertexSize)
void | dataTypeChanged(VertexBaseType vertexBaseType)
void | divisorChanged(uint divisor)
void | nameChanged(const QString &name)
void | vertexBaseTypeChanged(VertexBaseType vertexBaseType)
void | vertexSizeChanged(uint vertexSize)

- 4 signals inherited from Qt3DCore::QNode

## Static Public Members

QString | defaultColorAttributeName()
QString | defaultNormalAttributeName()
QString | defaultPositionAttributeName()
QString | defaultTangentAttributeName()
QString | defaultTextureCoordinateAttributeName()

## Related Non-Members

typedef | QBufferPtr

### Additional Inherited Members

- 2 protected functions inherited from Qt3DCore::QNode

## Detailed Description

Defines an attribute and how data should be read from a QBuffer.

There are 3 types of attributes.

- VertexAttribute: used to define data to be read on a per vertex basis
- IndexAttribute: used to define vertex indices when indexed draw calls are to be used
- DrawIndirectAttribute: used to specify the DrawIndirect buffer to be used when indirect draw calls are to be used

Note: when an attribute is of type DrawIndirectAttribute, only count, stride and offset are relevant.

When providing your own attributes, it may make sense to name your attribute using helpers such as QAttribute::defaultPositionAttributeName() as that will ensure your geometry will be compatible with picking and the various materials provided in the Qt3DExtras module.

See also QBuffer.

## Member Type Documentation

### enum QAttribute::AttributeType

The type of the attribute.

Constant | Value
--- | ---
`Qt3DRender::QAttribute::VertexAttribute` | `0`
`Qt3DRender::QAttribute::IndexAttribute` | `1`
`Qt3DRender::QAttribute::DrawIndirectAttribute` | `2`

### enum QAttribute::VertexBaseType

The type of the data.

Constant | Value
--- | ---
`Qt3DRender::QAttribute::Byte` | `0`
`Qt3DRender::QAttribute::UnsignedByte` | `1`
`Qt3DRender::QAttribute::Short` | `2`
`Qt3DRender::QAttribute::UnsignedShort` | `3`
`Qt3DRender::QAttribute::Int` | `4`
`Qt3DRender::QAttribute::UnsignedInt` | `5`
`Qt3DRender::QAttribute::HalfFloat` | `6`
`Qt3DRender::QAttribute::Float` | `7`
`Qt3DRender::QAttribute::Double` | `8`

## Property Documentation

### attributeType : AttributeType

Holds the attribute type.

Access functions:

AttributeType | attributeType() const
void | setAttributeType(AttributeType attributeType)

Notifier signal:

void | attributeTypeChanged(AttributeType attributeType)

### buffer : Qt3DRender::QBuffer *

Holds the buffer.

Access functions:

QBuffer * | buffer() const
void | setBuffer(QBuffer *buffer)

Notifier signal:

void | bufferChanged(QBuffer *buffer)

### byteOffset : uint

Holds the byte offset.

Access functions:

uint | byteOffset() const
void | setByteOffset(uint byteOffset)

Notifier signal:

void | byteOffsetChanged(uint byteOffset)

### byteStride : uint

Holds the byte stride.

Access functions:

uint | byteStride() const
void | setByteStride(uint byteStride)

Notifier signal:

void | byteStrideChanged(uint byteStride)

### count : uint

Holds the count.

Access functions:

uint | count() const
void | setCount(uint count)

Notifier signal:

void | countChanged(uint count)

### defaultColorAttributeName : const QString

Access functions:

QString | defaultColorAttributeName()

### defaultNormalAttributeName : const QString

Access functions:

QString | defaultNormalAttributeName()

### defaultPositionAttributeName : const QString

Access functions:

QString | defaultPositionAttributeName()

### defaultTangentAttributeName : const QString

Access functions:

QString | defaultTangentAttributeName()

### defaultTextureCoordinateAttributeName : const QString

Access functions:

QString | defaultTextureCoordinateAttributeName()

### divisor : uint

Holds the divisor.

Access functions:

uint | divisor() const
void | setDivisor(uint divisor)

Notifier signal:

void | divisorChanged(uint divisor)

### name : QString

Holds the name.

Access functions:

QString | name() const
void | setName(const QString &name)

Notifier signal:

void | nameChanged(const QString &name)

### vertexBaseType : VertexBaseType

Holds the data type.

Access functions:

VertexBaseType | vertexBaseType() const
void | setVertexBaseType(VertexBaseType type)

Notifier signal:

void | vertexBaseTypeChanged(VertexBaseType vertexBaseType)

### vertexSize : uint

Holds the data size, it can only be 1 to 4 units (scalars and vectors), 9 units (3x3 matrices) or 16 units (4x4 matrices).

Access functions:

uint | vertexSize() const
void | setVertexSize(uint size)

Notifier signal:

void | vertexSizeChanged(uint vertexSize)

## Member Function Documentation

### QAttribute::QAttribute(QNode *parent = nullptr)

Constructs a new QAttribute with parent.

### QAttribute::QAttribute(QBuffer *buf, VertexBaseType type, uint dataSize, uint count, uint offset = 0, uint stride = 0, QNode *parent = nullptr)

Constructs a new QAttribute from buf of type, dataSize, count, offset, and stride with parent.

### QAttribute::QAttribute(QBuffer *buf, const QString &name, VertexBaseType type, uint dataSize, uint count, uint offset = 0, uint stride = 0, QNode *parent = nullptr)

Constructs a new QAttribute named name from buf of type, dataSize, count, offset, and stride with parent.

### `[signal]` void QAttribute::dataSizeChanged(uint vertexSize)

### `[signal]` void QAttribute::dataTypeChanged(VertexBaseType vertexBaseType)

### `[static]` QString QAttribute::defaultColorAttributeName()

QAttribute::defaultColorAttributeName Returns the name of the default color attribute

Note: Getter function for property defaultColorAttributeName.

### `[static]` QString QAttribute::defaultNormalAttributeName()

QAttribute::defaultNormalAttributeName Returns the name of the default normal attribute

Note: Getter function for property defaultNormalAttributeName.

### `[static]` QString QAttribute::defaultPositionAttributeName()

QAttribute::defaultPositionAttributeName Returns the name of the default position attribute

Note: Getter function for property defaultPositionAttributeName.

### `[static]` QString QAttribute::defaultTangentAttributeName()

QAttribute::defaultTangentAttributeName Returns the name of the default tangent attribute

Note: Getter function for property defaultTangentAttributeName.

### `[static]` QString QAttribute::defaultTextureCoordinateAttributeName()

QAttribute::defaultTextureCoordinateAttributeName Returns the name of the default texture coordinate attribute

Note: Getter function for property defaultTextureCoordinateAttributeName.

### `[slot]` void QAttribute::setDataSize(uint size)

This function is deprecated.

### `[slot]` void QAttribute::setDataType(VertexBaseType type)

This function is deprecated.

## Related Non-Members

### typedef Qt3DRender::QBufferPtr