diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2017-08-11 10:16:07 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2017-08-16 13:19:35 +0000 |
commit | 2302a59c0f8eab97310ff25a7bff545fd56162c4 (patch) | |
tree | 1a528aa82d70e589189853d30a9745e4f952044d /src/render/geometry/joint_p.h | |
parent | ebd28adaaadd82395e82281eeee21fef3a0414db (diff) |
Trigger a skeleton re-load when an inverse bind matrix changes
This is a rare operation so should not be a problem to do a full
skeleton rebuild when it happens.
Change-Id: I00c3293dfff91d99bda762051714cb9eaae2c40f
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/geometry/joint_p.h')
-rw-r--r-- | src/render/geometry/joint_p.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/render/geometry/joint_p.h b/src/render/geometry/joint_p.h index c5b6737a1..e144ac489 100644 --- a/src/render/geometry/joint_p.h +++ b/src/render/geometry/joint_p.h @@ -61,6 +61,7 @@ namespace Qt3DRender { namespace Render { class JointManager; +class SkeletonManager; class Q_AUTOTEST_EXPORT Joint : public BackendNode { @@ -85,6 +86,9 @@ public: void setJointManager(JointManager *jointManager) { m_jointManager = jointManager; } JointManager *jointManager() const { return m_jointManager; } + void setSkeletonManager(SkeletonManager *skeletonManager) { m_skeletonManager = skeletonManager; } + SkeletonManager *skeletonManager() const { return m_skeletonManager; } + private: void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) final; @@ -93,13 +97,16 @@ private: QVector<Qt3DCore::QNodeId> m_childJointIds; QString m_name; JointManager *m_jointManager; + SkeletonManager *m_skeletonManager; HSkeleton m_owningSkeleton; }; class JointFunctor : public Qt3DCore::QBackendNodeMapper { public: - explicit JointFunctor(AbstractRenderer *renderer, JointManager *jointManager); + explicit JointFunctor(AbstractRenderer *renderer, + JointManager *jointManager, + SkeletonManager *skeletonManager); Qt3DCore::QBackendNode *create(const Qt3DCore::QNodeCreatedChangeBasePtr &change) const final; Qt3DCore::QBackendNode *get(Qt3DCore::QNodeId id) const final; void destroy(Qt3DCore::QNodeId id) const final; @@ -107,6 +114,7 @@ public: private: AbstractRenderer *m_renderer; JointManager *m_jointManager; + SkeletonManager *m_skeletonManager; }; } // namespace Render |