- Qt 6.6
- Qt Quick 3D
- Qt Quick 3D Examples and Tutorials
- Hello Qt Quick 3D Example
- Qt Quick 3D | Commercial or GPLv3

# Hello Qt Quick 3D Example

     // Copyright (C) 2020 The Qt Company Ltd.
     // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

     #include <QtQuick3D/qquick3dinstancing.h>

     class ImageInstanceTable : public QQuick3DInstancing
     {
         Q_OBJECT
         QML_ELEMENT

         Q_PROPERTY(int gridSize READ gridSize WRITE setGridSize NOTIFY gridSizeChanged)
         Q_PROPERTY(float gridSpacing READ gridSpacing WRITE setGridSpacing NOTIFY gridSpacingChanged)
         Q_PROPERTY(QString image READ image WRITE setImage NOTIFY imageChanged)

     public:
         explicit ImageInstanceTable(QQuick3DObject *parent = nullptr);
         ~ImageInstanceTable() override;

         int gridSize() const;
         float gridSpacing() const;
         QString image() const;

     public slots:
         void setGridSize(int gridSize);
         void setGridSpacing(float gridSpacing);
         void setImage(QString image);

     signals:
         void gridSizeChanged(int gridSize);
         void gridSpacingChanged(float gridSpacing);
         void imageChanged(QString image);

     protected:
         QByteArray getInstanceBuffer(int *instanceCount) override;

     private:
         int m_instanceCount = 0;
         QByteArray m_instanceData;
         bool m_dirty = true;
         int m_gridSize = 0;
         float m_gridSpacing = 100;
         QString m_imageSource;
     };