diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2017-05-24 12:09:44 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2017-05-24 12:10:02 +0100 |
commit | 77d294db076dac19e8b549b445ffede9f7260c84 (patch) | |
tree | 828ee7a6862ec5c0bd24f97cb540625a2c647376 /src/core/qscene.cpp | |
parent | 59f8fec8a41606b3185fe3a4e276978e3e1ed5ef (diff) | |
parent | 939b9b4b7591e8a421cf048a0a84ed3e75d81d21 (diff) | |
download | qt3d-wip/animation.tar.gz |
Merge branch 'dev' into wip/animationwip/animation
Change-Id: I6e770609c90a7745d08fa4e2f424e865678c5d6f
Diffstat (limited to 'src/core/qscene.cpp')
-rw-r--r-- | src/core/qscene.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/core/qscene.cpp b/src/core/qscene.cpp index 972659131..b5895c7aa 100644 --- a/src/core/qscene.cpp +++ b/src/core/qscene.cpp @@ -38,12 +38,14 @@ ****************************************************************************/ #include "qscene_p.h" -#include <QHash> -#include <QReadLocker> + #include <Qt3DCore/qnode.h> +#include <QtCore/QHash> +#include <QtCore/QReadLocker> + #include <Qt3DCore/private/qlockableobserverinterface_p.h> -#include <Qt3DCore/private/qobservableinterface_p.h> #include <Qt3DCore/private/qnode_p.h> +#include <Qt3DCore/private/qobservableinterface_p.h> QT_BEGIN_NAMESPACE @@ -55,6 +57,7 @@ public: QScenePrivate(QAspectEngine *engine) : m_engine(engine) , m_arbiter(nullptr) + , m_rootNode(nullptr) { } @@ -67,6 +70,7 @@ public: QLockableObserverInterface *m_arbiter; mutable QReadWriteLock m_lock; mutable QReadWriteLock m_nodePropertyTrackModeLock; + QNode *m_rootNode; }; @@ -171,6 +175,12 @@ QNodeId QScene::nodeIdFromObservable(QObservableInterface *observable) const return d->m_observableToUuid.value(observable); } +QNode *QScene::rootNode() const +{ + Q_D(const QScene); + return d->m_rootNode; +} + void QScene::setArbiter(QLockableObserverInterface *arbiter) { Q_D(QScene); @@ -212,7 +222,8 @@ bool QScene::hasEntityForComponent(QNodeId componentUuid, QNodeId entityUuid) { Q_D(QScene); QReadLocker lock(&d->m_lock); - return d->m_componentToEntities.values(componentUuid).contains(entityUuid); + const auto range = d->m_componentToEntities.equal_range(componentUuid); + return std::find(range.first, range.second, entityUuid) != range.second; } QScene::NodePropertyTrackData QScene::lookupNodePropertyTrackData(QNodeId id) const @@ -236,6 +247,12 @@ void QScene::removePropertyTrackDataForNode(QNodeId nodeId) d->m_nodePropertyTrackModeLookupTable.remove(nodeId); } +void QScene::setRootNode(QNode *root) +{ + Q_D(QScene); + d->m_rootNode = root; +} + } // Qt3D QT_END_NAMESPACE |