#ifndef _RIVE_COMMAND_PATH_HPP_
#define _RIVE_COMMAND_PATH_HPP_

#include "rive/math/mat2d.hpp"

namespace rive {
    enum class FillRule { nonZero, evenOdd };

    class RenderPath;

    /// Abstract path used to build up commands used for rendering.
    class CommandPath {
    public:
        virtual ~CommandPath() {}
        virtual void reset() = 0;
        virtual void fillRule(FillRule value) = 0;
        virtual void addPath(CommandPath* path, const Mat2D& transform) = 0;

        virtual void moveTo(float x, float y) = 0;
        virtual void lineTo(float x, float y) = 0;
        virtual void
        cubicTo(float ox, float oy, float ix, float iy, float x, float y) = 0;
        virtual void close() = 0;

        void addRect(float x, float y, float width, float height) {
            moveTo(x, y);
            lineTo(x + width, y);
            lineTo(x + width, y + height);
            lineTo(x, y + height);
            close();
        }

        virtual RenderPath* renderPath() = 0;
    };
} // namespace rive
#endif