#ifndef _RIVE_LAYOUT_HPP_
#define _RIVE_LAYOUT_HPP_
namespace rive {
enum class Fit : unsigned char { fill, contain, cover, fitWidth, fitHeight, none, scaleDown };

class Alignment {
private:
    float m_X, m_Y;

public:
    Alignment(float x, float y) : m_X(x), m_Y(y) {}

    float x() const { return m_X; }
    float y() const { return m_Y; }

    static const Alignment topLeft;
    static const Alignment topCenter;
    static const Alignment topRight;
    static const Alignment centerLeft;
    static const Alignment center;
    static const Alignment centerRight;
    static const Alignment bottomLeft;
    static const Alignment bottomCenter;
    static const Alignment bottomRight;
};

} // namespace rive
#endif