From 8d39441bd17a6fb8b14fb1183a810fb4d2d9fa11 Mon Sep 17 00:00:00 2001 From: SirLynix Date: Tue, 23 Aug 2022 18:14:35 +0200 Subject: [PATCH] Utility/Skeleton: Add GetRootJoint method --- include/Nazara/Utility/Skeleton.hpp | 2 ++ src/Nazara/Utility/Skeleton.cpp | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/include/Nazara/Utility/Skeleton.hpp b/include/Nazara/Utility/Skeleton.hpp index 888472df8..e06d49dc8 100644 --- a/include/Nazara/Utility/Skeleton.hpp +++ b/include/Nazara/Utility/Skeleton.hpp @@ -45,6 +45,8 @@ namespace Nz const Joint* GetJoints() const; std::size_t GetJointCount() const; std::size_t GetJointIndex(const std::string& jointName) const; + Joint* GetRootJoint(); + const Joint* GetRootJoints() const; void Interpolate(const Skeleton& skeletonA, const Skeleton& skeletonB, float interpolation); void Interpolate(const Skeleton& skeletonA, const Skeleton& skeletonB, float interpolation, const std::size_t* indices, std::size_t indiceCount); diff --git a/src/Nazara/Utility/Skeleton.cpp b/src/Nazara/Utility/Skeleton.cpp index b283701ea..0414e5433 100644 --- a/src/Nazara/Utility/Skeleton.cpp +++ b/src/Nazara/Utility/Skeleton.cpp @@ -146,6 +146,22 @@ namespace Nz return it->second; } + Joint* Skeleton::GetRootJoint() + { + NazaraAssert(m_impl, "skeleton must have been created"); + + assert(!m_impl->joints.empty()); + return &m_impl->joints.front(); + } + + const Joint* Skeleton::GetRootJoint() const + { + NazaraAssert(m_impl, "skeleton must have been created"); + + assert(!m_impl->joints.empty()); + return &m_impl->joints.front(); + } + void Skeleton::Interpolate(const Skeleton& skeletonA, const Skeleton& skeletonB, float interpolation) { NazaraAssert(m_impl, "skeleton must have been created");