QAbstractAspect Class
class Qt3DCore::QAbstractAspectQAbstractAspect is the base class for aspects that provide a vertical slice of behavior. More...
Header: | #include <Qt3DCore/QAbstractAspect> |
Inherits: | QObject |
Inherited By: | Qt3DAnimation::QAnimationAspect, Qt3DInput::QInputAspect, Qt3DLogic::QLogicAspect, and Qt3DRender::QRenderAspect |
Public Functions
QAbstractAspect(QObject *parent = nullptr) | |
virtual | ~QAbstractAspect() |
Protected Functions
QAbstractAspect(QAbstractAspectPrivate &dd, QObject *parent = nullptr) | |
void | registerBackendType(const QBackendNodeMapperPtr &functor) |
void | registerBackendType(const QMetaObject &obj, const QBackendNodeMapperPtr &functor) |
QNodeId | rootEntityId() const |
Related Non-Members
Macros
QT3D_REGISTER_ASPECT(name, AspectType) |
Member Function Documentation
[explicit]
QAbstractAspect::QAbstractAspect(QObject *parent = nullptr)
Constructs a new QAbstractAspect with parent
[explicit protected]
QAbstractAspect::QAbstractAspect(QAbstractAspectPrivate &dd, QObject *parent = nullptr)
\internal
[virtual noexcept]
QAbstractAspect::~QAbstractAspect()
\internal
[protected]
template <typename Frontend> void QAbstractAspect::registerBackendType(const QBackendNodeMapperPtr &functor)
Registers backend with functor.
[protected]
void QAbstractAspect::registerBackendType(const QMetaObject &obj, const QBackendNodeMapperPtr &functor)
Registers backend with obj and functor.
[noexcept protected]
QNodeId QAbstractAspect::rootEntityId() const
Returns root entity node id.
Related Non-Members
QAspectJobPtr
A shared pointer for QAspectJob.
QBackendNodeMapperPtr
A shared pointer for QBackendNodeMapper.
Macro Documentation
QT3D_REGISTER_ASPECT(name, AspectType)
Convenience macro for registering AspectType for instantiation by the currently set Qt3DCore::QAspectFactory. This makes it possible to create an instance of AspectType in the aspect thread by later passing name to Qt3DCore::QAspectEngine::registerAspect(const QString &name).
Note: It is also possible to register a new aspect without using this macro by instead using Qt3DCore::QAspectEngine::registerAspect(QAbstractAspect *aspect) which will handle moving a previously created aspect instance to the aspect thread context.
KDAB has published a few articles about writing custom Qt3D aspects on their blog. These provide an excellent starting point if you wish to learn more about it.