#ifndef _RIVE_CUBIC_VERTEX_HPP_
#define _RIVE_CUBIC_VERTEX_HPP_
#include "rive/generated/shapes/cubic_vertex_base.hpp"
#include "rive/math/vec2d.hpp"

namespace rive {
    class Vec2D;
    class CubicVertex : public CubicVertexBase {
    protected:
        bool m_InValid = false;
        bool m_OutValid = false;
        Vec2D m_InPoint;
        Vec2D m_OutPoint;

        virtual void computeIn() = 0;
        virtual void computeOut() = 0;

    public:
        const Vec2D& outPoint();
        const Vec2D& inPoint();
        const Vec2D& renderOut();
        const Vec2D& renderIn();

        void outPoint(const Vec2D& value);
        void inPoint(const Vec2D& value);
        void xChanged() override;
        void yChanged() override;

        void deform(const Mat2D& worldTransform, const float* boneTransforms) override;
    };
} // namespace rive

#endif