#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 Vec2D deform(Vec2D inPoint,
                        unsigned int indices,
                        unsigned int weights,
                        const Mat2D& world,
                        const float* boneTransforms);
};
} // namespace rive

#endif