12#include "sml/math/vec2.h"
13#include "sml/math/rectangle.h"
14#include "sml/graphics_wrapper/texture.h"
21 virtual void fillLine(
const Sml::Vec2i& start,
22 const Sml::Vec2i& end,
23 const Sml::Rectangle<int32_t>& targetRegion)
const = 0;
25 virtual void fillArea(
const Sml::Rectangle<int32_t>& area,
26 const Sml::Rectangle<int32_t>& targetRegion)
const = 0;
28 virtual void fillPoint(
const Sml::Vec2i& point,
29 const Sml::Rectangle<int32_t>& targetRegion)
const = 0;
38 ColorFill(Sml::Color color = Sml::COLOR_TRANSPARENT);
40 virtual void fillLine(
const Sml::Vec2i& start,
41 const Sml::Vec2i& end,
42 const Sml::Rectangle<int32_t>& targetRegion)
const override;
44 virtual void fillArea(
const Sml::Rectangle<int32_t>& area,
45 const Sml::Rectangle<int32_t>& targetRegion)
const override;
47 virtual void fillPoint(
const Sml::Vec2i& point,
48 const Sml::Rectangle<int32_t>& targetRegion)
const override;
50 Sml::Color getColor()
const;
51 void setColor(Sml::Color color);
70 Stop(
float offset, Sml::Color color);
72 float getOffset()
const;
73 const Sml::Vec4f& getColorVector()
const;
74 Sml::Color getColor()
const;
76 bool operator<(
const Stop& other)
const;
80 Sml::Vec4f m_Color = Sml::colorToNormalized(Sml::COLOR_TRANSPARENT);
94 void addStop(
const Stop& stop);
96 void setDirection(Direction direction);
98 virtual void fillLine(
const Sml::Vec2i& start,
99 const Sml::Vec2i& end,
100 const Sml::Rectangle<int32_t>& targetRegion)
const override;
102 virtual void fillArea(
const Sml::Rectangle<int32_t>& area,
103 const Sml::Rectangle<int32_t>& targetRegion)
const override;
105 virtual void fillPoint(
const Sml::Vec2i& point,
106 const Sml::Rectangle<int32_t>& targetRegion)
const override;
109 std::vector<Stop> m_Stops;
110 Direction m_Direction = Direction::HORIZONTAL;