Cached skinning matrix

Former-commit-id: c5aeb09778f5696906eb764f600c4a152ab7ba48
This commit is contained in:
Lynix
2014-06-21 16:22:34 +02:00
parent 5310c8b0d6
commit 774df28d87
2 changed files with 46 additions and 4 deletions

View File

@@ -21,18 +21,26 @@ class NAZARA_API NzJoint : public NzNode
NzJoint(const NzJoint& joint);
~NzJoint() = default;
NzMatrix4f GetInverseBindMatrix() const;
void EnsureSkinningMatrixUpdate() const;
const NzMatrix4f& GetInverseBindMatrix() const;
NzString GetName() const;
NzSkeleton* GetSkeleton();
const NzSkeleton* GetSkeleton() const;
const NzMatrix4f& GetSkinningMatrix() const;
void SetInverseBindMatrix(const NzMatrix4f& matrix);
void SetName(const NzString& name);
private:
void InvalidateNode();
void UpdateSkinningMatrix() const;
NzMatrix4f m_inverseBindMatrix;
mutable NzMatrix4f m_skinningMatrix;
NzString m_name;
NzSkeleton* m_skeleton;
mutable bool m_skinningMatrixUpdated;
};
#endif // NAZARA_JOINT_HPP