<commit_before>// Copyright (C) 2014 <NAME>
// This file is part of the "Nazara Engine - Utility module"
// For conditions of distribution and use, see copyright notice in Config.hpp

#pragma once

#ifndef NAZARA_SKELETON_HPP
#define NAZARA_SKELETON_HPP

#include <Nazara/Prerequesites.hpp>
#include <Nazara/Math/Box.hpp>
#include <Nazara/Utility/Joint.hpp>
#include <vector>

struct NzSkeletonImpl;

class NAZARA_API NzSkeleton
{
	friend NzJoint;

	public:
		NzSkeleton() = default;
		NzSkeleton(const NzSkeleton& skeleton);
		~NzSkeleton();

		bool Create(unsigned int jointCount);
		void Destroy();

		const NzBoxf& GetAABB() const;
		NzJoint* GetJoint(const NzString& jointName);
		NzJoint* GetJoint(unsigned int index);
		const NzJoint* GetJoint(const NzString& jointName) const;
		const NzJoint* GetJoint(unsigned int index) const;
		NzJoint* GetJoints();
		const NzJoint* GetJoints() const;
		unsigned int GetJointCount() const;
		int GetJointIndex(const NzString& jointName) const;

		void Interpolate(const NzSkeleton& skeletonA, const NzSkeleton& skeletonB, float interpolation);
		void Interpolate(const NzSkeleton& skeletonA, const NzSkeleton& skeletonB, float interpolation, unsigned int* indices, unsigned int indiceCount);

		bool IsValid() const;

		NzSkeleton& operator=(const NzSkeleton& skeleton);

	private:
		void InvalidateJointMap();
		void UpdateJointMap() const;

		NzSkeletonImpl* m_impl = nullptr;
};

#endif // NAZARA_SKELETON_HPP<commit_msg>Commited forgotten file (from commit <PASSWORD> [formerly 39e74cabd80f85aadb4db40f558ffc699a580423])<commit_after>// Copyright (C) 2014 <NAME>
// This file is part of the "Nazara Engine - Utility module"
// For conditions of distribution and use, see copyright notice in Config.hpp

#pragma once

#ifndef NAZARA_SKELETON_HPP
#define NAZARA_SKELETON_HPP

#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/Resource.hpp>
#include <Nazara/Math/Box.hpp>
#include <Nazara/Utility/Joint.hpp>
#include <vector>

struct NzSkeletonImpl;

class NAZARA_API NzSkeleton : public NzResource
{
	friend NzJoint;

	public:
		NzSkeleton() = default;
		NzSkeleton(const NzSkeleton& skeleton);
		~NzSkeleton();

		bool Create(unsigned int jointCount);
		void Destroy();

		const NzBoxf& GetAABB() const;
		NzJoint* GetJoint(const NzString& jointName);
		NzJoint* GetJoint(unsigned int index);
		const NzJoint* GetJoint(const NzString& jointName) const;
		const NzJoint* GetJoint(unsigned int index) const;
		NzJoint* GetJoints();
		const NzJoint* GetJoints() const;
		unsigned int GetJointCount() const;
		int GetJointIndex(const NzString& jointName) const;

		void Interpolate(const NzSkeleton& skeletonA, const NzSkeleton& skeletonB, float interpolation);
		void Interpolate(const NzSkeleton& skeletonA, const NzSkeleton& skeletonB, float interpolation, unsigned int* indices, unsigned int indiceCount);

		bool IsValid() const;

		NzSkeleton& operator=(const NzSkeleton& skeleton);

	private:
		void InvalidateJoints();
		void InvalidateJointMap();
		void UpdateJointMap() const;

		NzSkeletonImpl* m_impl = nullptr;
};

#endif // NAZARA_SKELETON_HPP
{'fraction_non_alphanumeric': 0.09581993569131833, 'fraction_numerical': 0.009967845659163987, 'mean_word_length': 5.6191489361702125, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6420347', 'n_tokens_mistral': 1221, 'n_tokens_neox': 1044, 'n_words': 294}