- Qt 6.12
- Qt 3D
- Obsolete Members for Qt3DCore
- Qt 6.12.0 Reference Documentation

# Obsolete Members for Qt3DCore

The following members of class Qt3DCore are deprecated. They are provided to keep old source code working. We strongly advise against using them in new code.

## Namespaces

`(deprecated)` namespace | Quick

## Classes

`(deprecated)` class | QAbstractAspect
`(deprecated)` class | QAbstractFunctor
`(deprecated)` class | QAbstractSkeleton
`(deprecated)` class | QArmature
`(deprecated)` class | QAspectEngine
`(deprecated)` class | QAspectJob
`(deprecated)` class | QAttribute
`(deprecated)` class | QBackendNode
`(deprecated)` class | QBackendNodeMapper
`(since 6.0, deprecated)` class | QBoundingVolume
`(deprecated)` class | QBuffer
`(deprecated)` class | QComponent
`(since 6.0, deprecated)` class | QCoreSettings
`(deprecated)` class | QEntity
`(deprecated)` class | QGeometry
`(since 6.0, deprecated)` class | QGeometryView
`(deprecated)` class | QJoint
`(deprecated)` class | QNode
`(deprecated)` class | QNodeId
`(deprecated)` class | QSkeleton
`(deprecated)` class | QSkeletonLoader
`(deprecated)` class | QTransform

## Namespaces

### `[deprecated]` namespace Qt3DCore::Quick

This namespace is deprecated. We strongly advise against using it in new code.

## Classes

### `[deprecated]` class Qt3DCore::QAbstractAspect

This class is deprecated. We strongly advise against using it in new code.

### `[deprecated]` class Qt3DCore::QAbstractFunctor

This class is deprecated. We strongly advise against using it in new code.

The QAbstractFunctor is used as a base class for all functors and data generators in Qt3DCore module.

When user defines a new functor or generator, they need to implement the QAbstractFunctor::id() method, which should be done using the `QT3D_FUNCTOR` macro in the class definition.

### `[deprecated]` class Qt3DCore::QAbstractSkeleton

This class is deprecated. We strongly advise against using it in new code.

Do not use this class directly. You should use QSkeletonLoader if loading skeleton data from a file (most likely) or QSkeleton if creating the skeleton and skinned mesh data yourself (mainly for people creating editors or tooling).

### `[deprecated]` class Qt3DCore::QArmature

This class is deprecated. We strongly advise against using it in new code.

The Armature component is aggregated by entities to give them the ability to calculate the palette of skinning transform matrices needed to properly render skinned meshes.

Each vertex in a skinned mesh is associated (bound) to up to 4 joints in a skeleton. For each joint affecting a vertex the mesh also provides a weight which determines the level of influence of the corresponding joint. The skinning palette used for performing the transformation of skinned vertices is provided by the Armature and is calculated from the joints contained in the referenced skeleton.

Updating the local transform of a joint results in the skinning matrices being recalculated and the skinned mesh vertices bound to that joint moving accordingly.

### `[deprecated]` class Qt3DCore::QAspectEngine

This class is deprecated. We strongly advise against using it in new code.

The Qt3D run loop is controlled by the Qt3DRender::QAspectEngine.

Qt3DCore::QAbstractAspect subclasses can be registered by calling Qt3DCore::QAspectEngine::registerAspect() which will take care of registering the aspect and in turn that will call Qt3DCore::QAbstractAspect::onRegistered();

The simulation loop is launched as soon as a root Qt3DCore::QEntity is set on the Qt3DCore::QAspectEngine. This is followed by a call to onEngineStartup() on each aspect so that they can start their simulation work.

The simulation loop is stopped when the root entity is set to Qt3DCore::QEntityPtr(). This calls onEngineShutdown() on each aspect so that they can stop performing their simulation work.

Setting a new valid root entity would restart the simulation loop again.

### `[deprecated]` class Qt3DCore::QAspectJob

This class is deprecated. We strongly advise against using it in new code.

### `[deprecated]` class Qt3DCore::QAttribute

This class is deprecated. We strongly advise against using it in new code.

There are 3 types of attributes.

- VertexAttribute: used to define data to be read on a per vertex basis
- IndexAttribute: used to define vertex indices when indexed draw calls are to be used
- DrawIndirectAttribute: used to specify the DrawIndirect buffer to be used when indirect draw calls are to be used

Note: when an attribute is of type DrawIndirectAttribute, only count, stride and offset are relevant.

When providing your own attributes, it may make sense to name your attribute using helpers such as QAttribute::defaultPositionAttributeName() as that will ensure your geometry will be compatible with picking and the various materials provided in the Qt3DExtras module.

See also QBuffer.

### `[deprecated]` class Qt3DCore::QBackendNode

This class is deprecated. We strongly advise against using it in new code.

### `[deprecated]` class Qt3DCore::QBackendNodeMapper

This class is deprecated. We strongly advise against using it in new code.

### `[since 6.0, deprecated]` class Qt3DCore::QBoundingVolume

This class is deprecated. We strongly advise against using it in new code.

An entity's bounding volume is used for many operations such as picking or view frustum culling. It is normally computed by traversing the rendered geometry.

QBoundingVolume can be used when the extent of the geometry is known to the application so that Qt 3D does not have to compute it.

A bounding volume can be provided either as minimum and maximum extent coordinates, or a separate, usually simpler, geometry that approximates the rendered mesh.

When using minimum and maximum extents, these are considered to be the opposite corners of an axis aligned bounding box, in the geometry's local coordinate system.

QBoundingVolume can also be used to query the computed bounding volume of a GeometryView. The implicitMinPoint and implicitMaxPoint properties will be updated if the geometry changes. Note that this is done asynchronously on a background thread so you should check the value of implicitPointsValid before reading them.

You can force the implicit extents to be updated by calling updateImplicitBounds. This will block on the calling thread until the results are available.

Note: GeometryRenderer inherits BoundingVolume and thus supports reading implicit bounds or setting explicit bounds also.

This class was introduced in Qt 6.0.

### `[deprecated]` class Qt3DCore::QBuffer

This class is deprecated. We strongly advise against using it in new code.

Data can be provided directly using QBuffer::setData().

### `[deprecated]` class Qt3DCore::QComponent

This class is deprecated. We strongly advise against using it in new code.

A Qt3DCore::QComponent provides a vertical slice of behavior that can be assigned to and sometimes shared across Qt3DCore::QEntity instances.

Qt3DCore::QComponent subclasses are often aggregated in groups that impart useful behavior to the aggregating entity. For example, to have an Entity that gets drawn by the Qt3D renderer aspect, an entity would most likely aggregate Qt3DCore::QTransform, Qt3DRender::QMesh, and Qt3DRender::QMaterial components.

See also Qt3DCore::QEntity.

### `[since 6.0, deprecated]` class Qt3DCore::QCoreSettings

This class is deprecated. We strongly advise against using it in new code.

The QCoreSettings component should be set as a component of the scene root entity (although it could be anywhere in the scene graph). There should be a single instance.

It can be used to control some of Qt 3D's behavior.

This class was introduced in Qt 6.0.

### `[deprecated]` class Qt3DCore::QEntity

This class is deprecated. We strongly advise against using it in new code.

By itself a Qt3DCore::QEntity is an empty shell. The behavior of a Qt3DCore::QEntity object is defined by the Qt3DCore::QComponent objects it references. Each Qt3D backend aspect will be able to interpret and process an Entity by recognizing which components it is made up of. One aspect may decide to only process entities composed of a single Qt3DCore::QTransform component whilst another may focus on Qt3DInput::QMouseHandler.

See also Qt3DCore::QComponent and Qt3DCore::QTransform.

### `[deprecated]` class Qt3DCore::QGeometry

This class is deprecated. We strongly advise against using it in new code.

A Qt3DCore::QGeometry class is used to group a list of Qt3DCore::QAttribute objects together to form a geometric shape Qt3D is able to render using Qt3DCore::QGeometryRenderer. Special attribute can be set in order to calculate bounding volume of the shape.

### `[since 6.0, deprecated]` class Qt3DCore::QGeometryView

This class is deprecated. We strongly advise against using it in new code.

A GeometryView holds all the information necessary to handle a Geometry. A Geometry holds the coordinates of the geometry data - GeometryView specifies how to interpret that data.

This class was introduced in Qt 6.0.

### `[deprecated]` class Qt3DCore::QJoint

This class is deprecated. We strongly advise against using it in new code.

The QJoint node is used to build skeletons as part of the skinned mesh support in Qt 3D. A joint can be transformed by way of its scale, rotation and translation properties. Any mesh vertices that are bound to the joint will have their transformations updated accordingly.

### `[deprecated]` class Qt3DCore::QNode

This class is deprecated. We strongly advise against using it in new code.

The owernship of QNode is determined by the QObject parent/child relationship between nodes. By itself, a QNode has no visual appearance and no particular meaning, it is there as a way of building a node based tree structure.

The parent of a QNode instance can only be another QNode instance.

Each QNode instance has a unique id that allows it to be recognizable from other instances.

When properties are defined on a QNode subclass, their NOTIFY signal will automatically generate notifications that the Qt3D backend aspects will receive.

See also QEntity and QComponent.

### `[deprecated]` class Qt3DCore::QNodeId

This class is deprecated. We strongly advise against using it in new code.

### `[deprecated]` class Qt3DCore::QSkeleton

This class is deprecated. We strongly advise against using it in new code.

Use QSkeleton if you wish to manually create the joints of a skeleton for use with skinned meshes. This is mainly of use to people creating editors, tooling, or dynamic skeletons. It is more common that a Qt 3D application would simply consume an existing skeleton and skinned mesh as created in a digital content creation tool such as Blender. For this use case, please see QSkeletonLoader.

### `[deprecated]` class Qt3DCore::QSkeletonLoader

This class is deprecated. We strongly advise against using it in new code.

Use SkeletonLoader if you wish to load a whole skeleton from file rather than creating the joints yourself using Skeleton and Joints. Creating a skeleton and binding the vertices of a mesh to the skeleton is most easily performed in a 3D digital content creation tool such as Blender. The resulting skeleton and mesh can then be exported in a suitable format such as glTF 2 for consumption by Qt 3D.

### `[deprecated]` class Qt3DCore::QTransform

This class is deprecated. We strongly advise against using it in new code.

The QTransform component is not shareable between multiple QEntity's. The transformation is held as QVector3D scale, QQuaternion rotation and QVector3D translation components. The transformations are applied to the mesh in that order. When QTransform::matrix property is set, it is decomposed to these transform components and corresponding signals are emitted.

Several helper functions are provided to set up the QTransform; fromAxisAndAngle and fromAxesAndAngles can be used to set the rotation around specific axes, fromEulerAngles can be used to set the rotation based on euler angles and rotateAround can be used to rotate the object around specific point relative to local origin.