// Copyright (C) 2020 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #ifndef TESTGEOMETRY_H #define TESTGEOMETRY_H #include #include class TestGeometry : public QQuick3DGeometry { Q_OBJECT Q_PROPERTY(bool position READ position WRITE setPosition NOTIFY positionChanged) Q_PROPERTY(bool normal READ normal WRITE setNormal NOTIFY normalChanged) Q_PROPERTY(bool texcoord0 READ texcoord0 WRITE setTexcoord0 NOTIFY texcoord0Changed) Q_PROPERTY(bool texcoord1 READ texcoord1 WRITE setTexcoord1 NOTIFY texcoord1Changed) Q_PROPERTY(bool tangent READ tangent WRITE setTangent NOTIFY tangentChanged) Q_PROPERTY(bool binormal READ binormal WRITE setBinormal NOTIFY binormalChanged) Q_PROPERTY(bool color READ color WRITE setColor NOTIFY colorChanged) public: TestGeometry(QQuick3DObject *parent = nullptr); bool position() const; bool normal() const; bool texcoord0() const; bool texcoord1() const; bool tangent() const; bool binormal() const; bool color() const; public Q_SLOTS: void setPosition(bool enable); void setNormal(bool enable); void setTexcoord0(bool enable); void setTexcoord1(bool enable); void setTangent(bool enable); void setBinormal(bool enable); void setColor(bool enable); Q_SIGNALS: void positionChanged(); void normalChanged(); void texcoord0Changed(); void texcoord1Changed(); void tangentChanged(); void binormalChanged(); void colorChanged(); protected: QSSGRenderGraphObject *updateSpatialNode(QSSGRenderGraphObject *node) override; private: void updateId(); bool m_position = false; bool m_normal = false; bool m_texcoord0 = false; bool m_texcoord1 = false; bool m_tangent = false; bool m_binormal = false; bool m_color = false; bool m_dirty = true; QByteArray m_id; QByteArray m_vertexBuffer; QByteArray m_indexBuffer; }; #endif // TESTGEOMETRY_H