58 Q_PROPERTY(QList<QVector3D> positions READ positions WRITE setPositions NOTIFY positionsChanged FINAL)
59 Q_PROPERTY(QList<QVector3D> normals READ normals WRITE setNormals NOTIFY normalsChanged FINAL)
60 Q_PROPERTY(QList<QVector3D> tangents READ tangents WRITE setTangents NOTIFY tangentsChanged FINAL)
61 Q_PROPERTY(QList<QVector3D> binormals READ binormals WRITE setBinormals NOTIFY binormalsChanged FINAL)
62 Q_PROPERTY(QList<QVector2D> uv0s READ uv0s WRITE setUv0s NOTIFY uv0sChanged FINAL)
63 Q_PROPERTY(QList<QVector2D> uv1s READ uv1s WRITE setUv1s NOTIFY uv1sChanged FINAL)
64 Q_PROPERTY(QList<QVector4D> colors READ colors WRITE setColors NOTIFY colorsChanged FINAL)
65 Q_PROPERTY(QList<QVector4D> joints READ joints WRITE setJoints NOTIFY jointsChanged FINAL)
66 Q_PROPERTY(QList<QVector4D> weights READ weights WRITE setWeights NOTIFY weightsChanged FINAL)
67 Q_PROPERTY(QList<
unsigned int> indexes READ indexes WRITE setIndexes NOTIFY indexesChanged FINAL)
68 Q_PROPERTY(QQmlListProperty<ProceduralMeshSubset> subsets READ subsets FINAL)
69 Q_PROPERTY(PrimitiveMode primitiveMode READ primitiveMode WRITE setPrimitiveMode NOTIFY primitiveModeChanged FINAL)
71 QML_ADDED_IN_VERSION(6, 6)
84 QList<QVector3D> positions()
const;
85 void setPositions(
const QList<QVector3D> &newPositions);
86 PrimitiveMode primitiveMode()
const;
87 void setPrimitiveMode(PrimitiveMode newPrimitiveMode);
89 QList<
unsigned int> indexes()
const;
90 void setIndexes(
const QList<
unsigned int> &newIndexes);
92 QList<QVector3D> normals()
const;
93 void setNormals(
const QList<QVector3D> &newNormals);
95 QList<QVector3D> tangents()
const;
96 void setTangents(
const QList<QVector3D> &newTangents);
98 QList<QVector3D> binormals()
const;
99 void setBinormals(
const QList<QVector3D> &newBinormals);
101 QList<QVector2D> uv0s()
const;
102 void setUv0s(
const QList<QVector2D> &newUv0s);
104 QList<QVector2D> uv1s()
const;
105 void setUv1s(
const QList<QVector2D> &newUv1s);
107 QList<QVector4D> colors()
const;
108 void setColors(
const QList<QVector4D> &newColors);
110 QList<QVector4D> joints()
const;
111 void setJoints(
const QList<QVector4D> &newJoints);
113 QList<QVector4D> weights()
const;
114 void setWeights(
const QList<QVector4D> &newWeights);
116 QQmlListProperty<ProceduralMeshSubset> subsets();
119 void positionsChanged();
120 void primitiveModeChanged();
121 void indexesChanged();
122 void normalsChanged();
123 void tangentsChanged();
124 void binormalsChanged();
127 void colorsChanged();
128 void jointsChanged();
129 void weightsChanged();
132 void requestUpdate();
133 void updateGeometry();
134 void subsetDestroyed(QObject *subset);
137 bool supportsTriangleFanPrimitive()
const;
139 static void qmlAppendProceduralMeshSubset(QQmlListProperty<ProceduralMeshSubset> *list, ProceduralMeshSubset *subset);
140 static ProceduralMeshSubset *qmlProceduralMeshSubsetAt(QQmlListProperty<ProceduralMeshSubset> *list, qsizetype index);
141 static qsizetype qmlProceduralMeshSubsetCount(QQmlListProperty<ProceduralMeshSubset> *list);
142 static void qmlClearProceduralMeshSubset(QQmlListProperty<ProceduralMeshSubset> *list);
144 bool m_updateRequested =
false;
145 PrimitiveMode m_primitiveMode = Triangles;
146 QList<QVector3D> m_positions;
147 QList<
unsigned int> m_indexes;
148 QList<QVector3D> m_normals;
149 QList<QVector3D> m_tangents;
150 QList<QVector3D> m_binormals;
151 QList<QVector2D> m_uv0s;
152 QList<QVector2D> m_uv1s;
153 QList<QVector4D> m_colors;
154 QList<QVector4D> m_joints;
155 QList<QVector4D> m_weights;
156 QList<ProceduralMeshSubset *> m_subsets;