// Copyright (C) 2020 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #ifndef QSSGJOINT_H #define QSSGJOINT_H // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists purely as an // implementation detail. This header file may change from version to // version without notice, or even be removed. // // We mean it. // #include #include #include QT_BEGIN_NAMESPACE class Q_QUICK3D_EXPORT QQuick3DJoint : public QQuick3DNode { Q_OBJECT Q_PROPERTY(qint32 index READ index WRITE setIndex NOTIFY indexChanged) Q_PROPERTY(QQuick3DSkeleton *skeletonRoot READ skeletonRoot WRITE setSkeletonRoot NOTIFY skeletonRootChanged) QML_NAMED_ELEMENT(Joint) public: explicit QQuick3DJoint(QQuick3DNode *parent = nullptr); ~QQuick3DJoint() override; qint32 index() const; QQuick3DSkeleton *skeletonRoot() const; public Q_SLOTS: void setIndex(qint32 index); void setSkeletonRoot(QQuick3DSkeleton *skeleton); Q_SIGNALS: void indexChanged(); void skeletonRootChanged(); protected: QSSGRenderGraphObject *updateSpatialNode(QSSGRenderGraphObject *node) override; void markAllDirty() override; private Q_SLOTS: private: bool m_indexDirty = true; bool m_skeletonRootDirty = true; int m_index = 0; QQuick3DSkeleton *m_skeletonRoot = nullptr; QMetaObject::Connection m_skeletonConnection; }; QT_END_NAMESPACE #endif // QSSGJOINT_H