QLayerFilter Class | Qt 3D 5.12.9

- Qt 5.12
- Qt 3D
- C++ Classes
- QLayerFilter
- Qt 5.12.9 Reference Documentation

# QLayerFilter Class

(Qt3DRender::QLayerFilter)

Controls layers drawn in a frame graph branch. More...

Header: | #include <QLayerFilter>
qmake: | QT += 3drender
Since: | Qt 5.5
Instantiated By: | LayerFilter
Inherits: | Qt3DRender::QFrameGraphNode

- List of all members, including inherited members
- Obsolete members

## Public Types

enum | FilterMode { AcceptAnyMatchingLayers, AcceptAllMatchingLayers, DiscardAnyMatchingLayers, DiscardAllMatchingLayers }

## Properties

- filterMode : FilterMode

- 3 properties inherited from Qt3DCore::QNode
- 1 property inherited from QObject

## Public Functions

| QLayerFilter(Qt3DCore::QNode *parent = nullptr)
void | addLayer(Qt3DRender::QLayer *layer)
Qt3DRender::QLayerFilter::FilterMode | filterMode() const
QVector<Qt3DRender::QLayer *> | layers() const
void | removeLayer(Qt3DRender::QLayer *layer)
void | setFilterMode(Qt3DRender::QLayerFilter::FilterMode filterMode)

- 1 public function inherited from Qt3DRender::QFrameGraphNode
- 13 public functions inherited from Qt3DCore::QNode
- 31 public functions inherited from QObject

## Signals

void | filterModeChanged(Qt3DRender::QLayerFilter::FilterMode filterMode)

- 4 signals inherited from Qt3DCore::QNode
- 2 signals inherited from QObject

## Static Public Members

const QMetaObject | staticMetaObject

- 9 static public members inherited from QObject

### Additional Inherited Members

- 3 public slots inherited from Qt3DCore::QNode
- 1 public slot inherited from QObject
- 1 protected function inherited from Qt3DRender::QFrameGraphNode
- 2 protected functions inherited from Qt3DCore::QNode
- 9 protected functions inherited from QObject

## Detailed Description

Controls layers drawn in a frame graph branch.

A Qt3DRender::QLayerFilter can be used to instruct the renderer as to which layer(s) to draw in that branch of the frame graph. QLayerFilter selects which entities to draw based on the QLayer instance(s) added to the QLayerFilter and as components to Qt3DCore::QEntity.

QLayerFilter can be configured to select or discard entities with a specific QLayer depending on the filterMode property. By default, entities referencing one of the QLayer objects that are also being referenced by the QLayerFilter are selected (AcceptAnyMatchingLayers).

Within the FrameGraph tree, multiple QLayerFilter nodes can be nested within a branch going from root to a leaf. In that case the filtering will first operate on all entities of the scene using the filtering method specified by the first declared QLayerFilter. Then the filtered subset of entities will be filtered again based on the filtering method set on the second QLayerFilter declared. This is then repeated until all QLayerFilter nodes of the branch have been consumed.

## Member Type Documentation

### enum QLayerFilter::FilterMode

Specifies the rules for selecting entities to draw.

Constant | Value | Description
--- | --- | ---
`Qt3DRender::QLayerFilter::AcceptAnyMatchingLayers` | `0` | Accept entities that reference one or more QLayer objects added to this QLayerFilter. This is the default
`Qt3DRender::QLayerFilter::AcceptAllMatchingLayers` | `1` | Accept entities that reference all the QLayer objects added to this QLayerFilter
`Qt3DRender::QLayerFilter::DiscardAnyMatchingLayers` | `2` | Discard entities that reference one or more QLayer objects added to this QLayerFilter
`Qt3DRender::QLayerFilter::DiscardAllMatchingLayers` | `3` | Discard entities that reference all QLayer objects added to this QLayerFilter

## Property Documentation

### filterMode : FilterMode

Holds the filter mode specifying the entities to select for drawing.

The default value is AcceptMatchingLayers.

Access functions:

Qt3DRender::QLayerFilter::FilterMode | filterMode() const
void | setFilterMode(Qt3DRender::QLayerFilter::FilterMode filterMode)

Notifier signal:

void | filterModeChanged(Qt3DRender::QLayerFilter::FilterMode filterMode)

## Member Function Documentation

### QLayerFilter::QLayerFilter(Qt3DCore::QNode *parent = nullptr)

The constructor creates an instance with the specified parent.

### void QLayerFilter::addLayer(Qt3DRender::QLayer *layer)

Add layer to the current list of layers

### QVector<Qt3DRender::QLayer *> QLayerFilter::layers() const

Returns the current list of layers

### void QLayerFilter::removeLayer(Qt3DRender::QLayer *layer)

Remove layer from the current list of layers