16 Q_DECLARE_PRIVATE(QQuick3DGeometry)
18 QML_NAMED_ELEMENT(Geometry)
19 QML_UNCREATABLE(
"Geometry is Abstract")
21 explicit QQuick3DGeometry(QQuick3DObject *parent =
nullptr);
22 ~QQuick3DGeometry() override;
24 enum class PrimitiveType {
44 TargetPositionSemantic,
46 TargetTangentSemantic,
47 TargetBinormalSemantic,
49 TexCoord0Semantic = TexCoordSemantic
57 Semantic semantic = PositionSemantic;
59 ComponentType componentType = F32Type;
62 struct TargetAttribute {
68 QByteArray vertexData()
const;
69 QByteArray indexData()
const;
70 int attributeCount()
const;
71 Attribute attribute(
int index)
const;
72 PrimitiveType primitiveType()
const;
73 QVector3D boundsMin()
const;
74 QVector3D boundsMax()
const;
77 void setVertexData(
const QByteArray &data);
78 void setVertexData(
int offset,
const QByteArray &data);
79 void setIndexData(
const QByteArray &data);
80 void setIndexData(
int offset,
const QByteArray &data);
81 void setStride(
int stride);
82 void setBounds(
const QVector3D &min,
const QVector3D &max);
83 void setPrimitiveType(PrimitiveType type);
85 void addAttribute(Attribute::Semantic semantic,
int offset,
86 Attribute::ComponentType componentType);
87 void addAttribute(
const Attribute &att);
89 Q_REVISION(6, 3)
int subsetCount()
const;
90 Q_REVISION(6, 3) QVector3D subsetBoundsMin(
int subset)
const;
91 Q_REVISION(6, 3) QVector3D subsetBoundsMax(
int subset)
const;
92 Q_REVISION(6, 3)
int subsetOffset(
int subset)
const;
93 Q_REVISION(6, 3)
int subsetCount(
int subset)
const;
94 Q_REVISION(6, 3) QString subsetName(
int subset)
const;
95 Q_REVISION(6, 3)
void addSubset(
int offset,
int count,
const QVector3D &boundsMin,
const QVector3D &boundsMax,
const QString &name = {});
97 Q_REVISION(6, 6) QByteArray targetData()
const;
98 Q_REVISION(6, 6)
void setTargetData(
const QByteArray &data);
99 Q_REVISION(6, 6)
void setTargetData(
int offset,
const QByteArray &data);
100 Q_REVISION(6, 6) TargetAttribute targetAttribute(
int index)
const;
101 Q_REVISION(6, 6)
int targetAttributeCount()
const;
102 Q_REVISION(6, 6)
void addTargetAttribute(quint32 targetId,
103 Attribute::Semantic semantic,
int offset,
105 Q_REVISION(6, 6)
void addTargetAttribute(
const TargetAttribute &att);
110 void geometryNodeDirty();
111 Q_REVISION(6, 7)
void geometryChanged();
114 QSSGRenderGraphObject *updateSpatialNode(QSSGRenderGraphObject *node) override;
115 void markAllDirty() override;