#ifndef _RIVE_I_KCONSTRAINT_HPP_
#define _RIVE_I_KCONSTRAINT_HPP_
#include "rive/generated/constraints/ik_constraint_base.hpp"
#include "rive/math/mat2d.hpp"
#include "rive/math/transform_components.hpp"
#include <vector>

namespace rive {
class Bone;
class IKConstraint : public IKConstraintBase {
private:
    struct BoneChainLink {
        int index;
        Bone* bone;
        float angle;
        TransformComponents transformComponents;
        Mat2D parentWorldInverse;
    };
    std::vector<BoneChainLink> m_FkChain;
    void solve1(BoneChainLink* fk1, const Vec2D& worldTargetTranslation);
    void solve2(BoneChainLink* fk1, BoneChainLink* fk2, const Vec2D& worldTargetTranslation);
    void constrainRotation(BoneChainLink& fk, float rotation);

public:
    void markConstraintDirty() override;
    StatusCode onAddedClean(CoreContext* context) override;
    void constrain(TransformComponent* component) override;
    void buildDependencies() override;
};
} // namespace rive

#endif