#ifndef _RIVE_WEIGHT_HPP_
#define _RIVE_WEIGHT_HPP_
#include "rive/generated/bones/weight_base.hpp"
#include "rive/math/vec2d.hpp"
#include <stdio.h>

namespace rive
{
    class Weight : public WeightBase
    {
    private:
        Vec2D m_Translation;

    public:
        Vec2D& translation() { return m_Translation; }

        StatusCode onAddedDirty(CoreContext* context) override;

        static void deform(float x,
                           float y,
                           unsigned int indices,
                           unsigned int weights,
                           const Mat2D& world,
                           const float* boneTransforms,
                           Vec2D& result);
    };
} // namespace rive

#endif