Utility/Node: Massively improve skeletal animations performance by allowing to invalidate the whole skeleton only once
Thanks to @SirMishaa for pointing that out
This commit is contained in:
@@ -19,8 +19,9 @@ namespace Nz
|
||||
class NAZARA_UTILITY_API Joint : public Node
|
||||
{
|
||||
public:
|
||||
Joint(Skeleton* skeleton);
|
||||
Joint(const Joint& joint);
|
||||
inline Joint(Skeleton* skeleton);
|
||||
inline Joint(const Joint& joint);
|
||||
inline Joint(Joint&&) noexcept;
|
||||
~Joint() = default;
|
||||
|
||||
void EnsureSkinningMatrixUpdate() const;
|
||||
@@ -34,8 +35,11 @@ namespace Nz
|
||||
void SetInverseBindMatrix(const Matrix4f& matrix);
|
||||
void SetName(std::string name);
|
||||
|
||||
inline Joint& operator=(const Joint& joint);
|
||||
inline Joint& operator=(Joint&& joint) noexcept;
|
||||
|
||||
private:
|
||||
void InvalidateNode() override;
|
||||
void InvalidateNode(Invalidation invalidation) override;
|
||||
void UpdateSkinningMatrix() const;
|
||||
|
||||
Matrix4f m_inverseBindMatrix;
|
||||
@@ -46,4 +50,6 @@ namespace Nz
|
||||
};
|
||||
}
|
||||
|
||||
#include <Nazara/Utility/Joint.inl>
|
||||
|
||||
#endif // NAZARA_UTILITY_JOINT_HPP
|
||||
|
||||
Reference in New Issue
Block a user