18 Q_DECLARE_PRIVATE(QQuick3DGeometry)
20 QML_NAMED_ELEMENT(Geometry)
21 QML_UNCREATABLE(
"Geometry is Abstract")
23 explicit QQuick3DGeometry(QQuick3DObject *parent =
nullptr);
24 ~QQuick3DGeometry() override;
26 enum class PrimitiveType {
46 TargetPositionSemantic,
48 TargetTangentSemantic,
49 TargetBinormalSemantic,
51 TexCoord0Semantic = TexCoordSemantic
59 Semantic semantic = PositionSemantic;
61 ComponentType componentType = F32Type;
64 struct TargetAttribute {
70 QByteArray vertexData()
const;
71 QByteArray indexData()
const;
72 int attributeCount()
const;
73 Attribute attribute(
int index)
const;
74 PrimitiveType primitiveType()
const;
75 QVector3D boundsMin()
const;
76 QVector3D boundsMax()
const;
79 void setVertexData(
const QByteArray &data);
80 void setVertexData(
int offset,
const QByteArray &data);
81 void setIndexData(
const QByteArray &data);
82 void setIndexData(
int offset,
const QByteArray &data);
83 void setStride(
int stride);
84 void setBounds(
const QVector3D &min,
const QVector3D &max);
85 void setPrimitiveType(PrimitiveType type);
87 void addAttribute(Attribute::Semantic semantic,
int offset,
88 Attribute::ComponentType componentType);
89 void addAttribute(
const Attribute &att);
91 Q_REVISION(6, 3)
int subsetCount()
const;
92 Q_REVISION(6, 3) QVector3D subsetBoundsMin(
int subset)
const;
93 Q_REVISION(6, 3) QVector3D subsetBoundsMax(
int subset)
const;
94 Q_REVISION(6, 3)
int subsetOffset(
int subset)
const;
95 Q_REVISION(6, 3)
int subsetCount(
int subset)
const;
96 Q_REVISION(6, 3) QString subsetName(
int subset)
const;
97 Q_REVISION(6, 3)
void addSubset(
int offset,
int count,
const QVector3D &boundsMin,
const QVector3D &boundsMax,
const QString &name = {});
99 Q_REVISION(6, 6) QByteArray targetData()
const;
100 Q_REVISION(6, 6)
void setTargetData(
const QByteArray &data);
101 Q_REVISION(6, 6)
void setTargetData(
int offset,
const QByteArray &data);
102 Q_REVISION(6, 6) TargetAttribute targetAttribute(
int index)
const;
103 Q_REVISION(6, 6)
int targetAttributeCount()
const;
104 Q_REVISION(6, 6)
void addTargetAttribute(quint32 targetId,
105 Attribute::Semantic semantic,
int offset,
107 Q_REVISION(6, 6)
void addTargetAttribute(
const TargetAttribute &att);
112 void geometryNodeDirty();
113 Q_REVISION(6, 7)
void geometryChanged();
116 QSSGRenderGraphObject *updateSpatialNode(QSSGRenderGraphObject *node) override;
117 void markAllDirty() override;