Revision control
++ // Copyright (C) 2025 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
++ // Qt-Security score:significant reason:default
++
++
++ #include "qquick3dcontentlayer_p.h"
++
++ /*!
++ \qmltype ContentLayer
++ \inqmlmodule QtQuick3D
++ \since 6.11
++ \brief Singleton providing layer flag constants for grouping and filtering scene nodes.
++
++ ContentLayer is a singleton that exposes the \c LayerFlag enumeration, which provides
++ bit flag constants for assigning nodes to named content layers. Layers can be used to
++ group scene nodes together or to filter which nodes are rendered by a camera.
++
++ The predefined layer names are not necessarily descriptive for specific use cases. You
++ can define your own semantic layer names by aliasing the \l ContentLayer values. For
++ example, in a city scene with buildings, streets, and vehicles:
++
++ \qml
++ readonly property int layerBuildings: ContentLayer.Layer1
++ readonly property int layerStreets: ContentLayer.Layer2
++ readonly property int layerVehicles: ContentLayer.Layer3 | ContentLayer.Layer4
++ \endqml
++
++ Once defined, assign these flags to nodes via \l {Node::layers}{Node.layers} and set
++ the matching flags on a \l Camera to control which layers it renders.
++
++ \sa {Qt Quick 3D - Layers Example}{Layers Example}
++
++ \note Some layers have special meanings:
++
++ \table
++ \header
++ \li Layer
++ \li Description
++ \row
++ \li LayerNone
++ \li No layer assigned. Nodes with this value do not belong to any layer and are not rendered.
++ \row
++ \li Layer0
++ \li The default main layer. Nodes are assigned to this layer by default.
++ \row
++ \li Layer1–Layer23
++ \li Freely assignable user layers for grouping nodes by purpose or functionality.
++ \row
++ \li Layer24 and above
++ \li Reserved for internal use by Qt Quick 3D.
++ \row
++ \li LayerAll
++ \li Matches all layers; nodes with this value are rendered by every camera.
++ \endtable
++
++ \note Layers are bit flags and can be combined with the \c | operator.
++
++ \note Layer assignment is not inherited; setting \l {Node::layers}{Node.layers}
++ on a node does not propagate the value from parent to child. Each node keeps its
++ own layer assignment and must be set individually.
++
++ \note ContentLayer is a singleton and is not intended to be instantiated directly.
++ */
++
++ QT_BEGIN_NAMESPACE
++
++ QQuick3DContentLayer::QQuick3DContentLayer(QObject *parent)
++ : QObject(parent)
++ {
++
++ }
++
++ QQuick3DContentLayer::~QQuick3DContentLayer()
++ {
++
++ }
++
++ QT_END_NAMESPACE