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

Public Types

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

Properties

Public Functions

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

Public Slots

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

Signals

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

Static Public Members

QString defaultColorAttributeName()
QString defaultJointIndicesAttributeName()
QString defaultJointWeightsAttributeName()
QString defaultNormalAttributeName()
QString defaultPositionAttributeName()
QString defaultTangentAttributeName()
QString defaultTextureCoordinate1AttributeName()
QString defaultTextureCoordinate2AttributeName()
QString defaultTextureCoordinateAttributeName()
const QMetaObject staticMetaObject
  • 9 static public members inherited from QObject
typedef QBufferPtr

Additional Inherited Members

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:

Qt3DRender::QAttribute::AttributeType attributeType() const
void setAttributeType(Qt3DRender::QAttribute::AttributeType attributeType)

Notifier signal:

void attributeTypeChanged(Qt3DRender::QAttribute::AttributeType attributeType)

buffer : Qt3DRender::QBuffer*

Holds the buffer.

Access functions:

Qt3DRender::QBuffer * buffer() const
void setBuffer(Qt3DRender::QBuffer *buffer)

Notifier signal:

void bufferChanged(Qt3DRender::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() [see note below]

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

defaultJointIndicesAttributeName : const QString

Access functions:

QString defaultJointIndicesAttributeName()

defaultJointWeightsAttributeName : const QString

Access functions:

QString defaultJointWeightsAttributeName()

defaultNormalAttributeName : const QString

Access functions:

QString defaultNormalAttributeName() [see note below]

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

defaultPositionAttributeName : const QString

Access functions:

QString defaultPositionAttributeName() [see note below]

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

defaultTangentAttributeName : const QString

Access functions:

QString defaultTangentAttributeName() [see note below]

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

defaultTextureCoordinate1AttributeName : const QString

Access functions:

QString defaultTextureCoordinate1AttributeName()

defaultTextureCoordinate2AttributeName : const QString

Access functions:

QString defaultTextureCoordinate2AttributeName()

defaultTextureCoordinateAttributeName : const QString

Access functions:

QString defaultTextureCoordinateAttributeName() [see note below]

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

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:

Qt3DRender::QAttribute::VertexBaseType vertexBaseType() const
void setVertexBaseType(Qt3DRender::QAttribute::VertexBaseType type)

Notifier signal:

void vertexBaseTypeChanged(Qt3DRender::QAttribute::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(Qt3DCore::QNode *parent = nullptr)

Constructs a new QAttribute with parent.

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

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

QAttribute::QAttribute(Qt3DRender::QBuffer *buf, const QString &name, Qt3DRender::QAttribute::VertexBaseType type, uint dataSize, uint count, uint offset = 0, uint stride = 0, Qt3DCore::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(Qt3DRender::QAttribute::VertexBaseType vertexBaseType)

[static] QString QAttribute::defaultColorAttributeName()

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

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Getter function for property defaultColorAttributeName.

[static] QString QAttribute::defaultJointIndicesAttributeName()

QAttribute::defaultJointIndicesAttributeName Returns the name of the default joint indices attribute

Note: Getter function for property defaultJointIndicesAttributeName.

[static] QString QAttribute::defaultJointWeightsAttributeName()

QAttribute::defaultJointIndicesAttributeName Returns the name of the default joint weights attribute

Note: Getter function for property defaultJointWeightsAttributeName.

[static] QString QAttribute::defaultNormalAttributeName()

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

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Getter function for property defaultNormalAttributeName.

[static] QString QAttribute::defaultPositionAttributeName()

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

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Getter function for property defaultPositionAttributeName.

[static] QString QAttribute::defaultTangentAttributeName()

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

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Getter function for property defaultTangentAttributeName.

[static] QString QAttribute::defaultTextureCoordinate1AttributeName()

QAttribute::defaultTextureCoordinate1AttributeName Returns the name of the default attribute for the second layer of texture coordinates

Note: Getter function for property defaultTextureCoordinate1AttributeName.

[static] QString QAttribute::defaultTextureCoordinate2AttributeName()

QAttribute::defaultTextureCoordinate2AttributeName Returns the name of the default attribute for the third layer of texture coordinates

Note: Getter function for property defaultTextureCoordinate2AttributeName.

[static] QString QAttribute::defaultTextureCoordinateAttributeName()

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

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Getter function for property defaultTextureCoordinateAttributeName.

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

[slot] void QAttribute::setDataType(Qt3DRender::QAttribute::VertexBaseType type)

Related Non-Members

typedef Qt3DRender::QBufferPtr

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qt3drender-qattribute.html