51 lines
920 B
C++
51 lines
920 B
C++
#pragma once
|
|
#include "Color.h"
|
|
#include <cstdint>
|
|
|
|
namespace renderive {
|
|
|
|
enum class Line_Style : std::uint8_t {
|
|
None,
|
|
Solid,
|
|
Dash,
|
|
Dot
|
|
};
|
|
|
|
enum class Line_Cap : std::uint8_t {
|
|
Butt,
|
|
Square,
|
|
Round
|
|
};
|
|
|
|
enum class Line_Join : std::uint8_t {
|
|
Miter,
|
|
Bevel,
|
|
Round
|
|
};
|
|
|
|
struct Pen {
|
|
Color color = Color::white();
|
|
double width = 1.0;
|
|
Line_Style style = Line_Style::Solid;
|
|
Line_Cap cap = Line_Cap::Butt;
|
|
Line_Join join = Line_Join::Miter;
|
|
[[nodiscard]] bool enabled() const {
|
|
return style != Line_Style::None && width > 0.0 && color.alpha != 0;
|
|
}
|
|
};
|
|
|
|
enum class Brush_Style : std::uint8_t {
|
|
None,
|
|
Solid
|
|
};
|
|
|
|
struct Brush {
|
|
Color color = Color::transparent();
|
|
Brush_Style style = Brush_Style::None;
|
|
[[nodiscard]] bool enabled() const {
|
|
return style != Brush_Style::None && color.alpha != 0;
|
|
}
|
|
};
|
|
|
|
} // namespace renderive
|