#ifndef RAGNAROK_SOURCE_CONTENTS_MODELS_MODELANIMATION_H #define RAGNAROK_SOURCE_CONTENTS_MODELS_MODELANIMATION_H #include "Resource/Models/ModelResource.h" #include "Utility/Math/AffineMatrix.h" #include class LegacyPositionTrack : public std::vector { public: using std::vector::operator=; void Sample(int frame, matrix& output) const; }; class LegacyRotationTrack : public std::vector { public: using std::vector::operator=; void Sample(int frame, matrix& output) const; }; class LegacyScaleTrack : public std::vector { public: using std::vector::operator=; void Sample(int frame, matrix& output) const; }; class ModelScaleTrack : public std::vector { public: using std::vector::operator=; void Sample(float frame, matrix& output) const; }; class ModelPositionTrack : public std::vector { public: using std::vector::operator=; void Sample(float frame, const matrix& base, matrix& output) const; }; class ModelRotationTrack : public std::vector { public: using std::vector::operator=; void Sample(float frame, const matrix& base, matrix& output) const; }; void QuaternionMatrix(const ModelRotationKey& key, matrix& output); void InterpolateModelRotation(float amount, const ModelRotationKey& first, const ModelRotationKey& second, int spins, ModelRotationKey& output); #endif