Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
Material.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_UI_THEMES_MATERIAL_HPP_
2#define IV_SRC_UI_THEMES_MATERIAL_HPP_
3
4#include "core/color.hpp"
6
7namespace iv::ui::graphics
8{
9
47
48class Material final
49{
50public:
51 enum class ePriority
52 {
53 Low,
54 Normal,
55 High
56 };
57
58 Material();
59 Material(std::string_view nameMaterial, iv::types::color color);
60 Material(std::string_view nameMaterial, iv::types::color color, float textureAlpha);
61 Material(std::string_view nameMaterial, iv::types::color color,
62 std::shared_ptr<iv::ui::graphics::Image> textureImage);
63 Material(std::string_view nameMaterial, iv::types::color color, float textureAlpha,
64 std::shared_ptr<iv::ui::graphics::Image> textureImage);
65 Material(std::string_view nameMaterial, float r, float g, float b, float a);
66 Material(std::string_view nameMaterial, float r, float g, float b, float a,
67 std::shared_ptr<iv::ui::graphics::Image> textureImage);
68 Material(const Material &other); // Copy constructor
69 Material(Material &&other) noexcept;// Move constructor
70 virtual ~Material();
71
72 Material &operator=(const Material &other); // Copy assignment operator
73 Material &operator=(Material &&other) noexcept;// Move assignment operator
74
75 bool operator==(const Material &other) const;
76
77 void updateMaterial(const Material &material);
78
79 [[nodiscard]] iv::types::color getColor() const;
80 void getMaterialData(iv::types::color *color, float *r, float *g, float *b, float *a, Material::ePriority *priority,
81 float *widthLine) const;
82 [[nodiscard]] const std::string &getNameMaterial() const;
83 [[nodiscard]] std::shared_ptr<iv::ui::graphics::Image> getTexture() const;
84
85 void setPriority(Material::ePriority priority);
86 void setWidthLine(float widthLine);
87
88 [[nodiscard]] bool hasTexture() const;
89 [[nodiscard]] bool isMaterial(const std::string &nameMaterial) const;
90 bool isSameMaterial(const Material *material) const;
91
92private:
94 {
96 float r;
97 float g;
98 float b;
99 float a;
100 };
101
103 std::string m_nameMaterial;
106
108 std::shared_ptr<iv::ui::graphics::Image> m_textureImage;
110};
111
112}// namespace iv::ui::graphics
113
114#endif//IV_SRC_UI_THEMES_MATERIAL_HPP_
Definition Material.hpp:49
std::shared_ptr< iv::ui::graphics::Image > m_textureImage
Definition Material.hpp:108
void getMaterialData(iv::types::color *color, float *r, float *g, float *b, float *a, Material::ePriority *priority, float *widthLine) const
Definition Material.cpp:143
Material()
Definition Material.cpp:10
void setWidthLine(float widthLine)
Definition Material.cpp:197
bool hasTexture() const
Definition Material.cpp:202
float m_textureAlpha
Definition Material.hpp:109
Material(const Material &other)
std::string m_nameMaterial
Definition Material.hpp:103
iv::types::color getColor() const
Definition Material.cpp:138
const std::string & getNameMaterial() const
Definition Material.cpp:182
bool operator==(const Material &other) const
Definition Material.cpp:116
iv::ui::graphics::Material::ColorDecomposed m_color
Definition Material.hpp:105
void updateMaterial(const Material &material)
Definition Material.cpp:127
std::shared_ptr< iv::ui::graphics::Image > getTexture() const
Definition Material.cpp:187
bool isSameMaterial(const Material *material) const
Definition Material.cpp:212
iv::ui::graphics::Material::ePriority m_priority
Definition Material.hpp:102
void setPriority(Material::ePriority priority)
Definition Material.cpp:192
float m_widthLine
Definition Material.hpp:104
bool m_withTexture
Definition Material.hpp:107
ePriority
Definition Material.hpp:52
Material & operator=(const Material &other)
Definition Material.cpp:84
bool isMaterial(const std::string &nameMaterial) const
Definition Material.cpp:207
uint32_t color
Definition types.hpp:12
Definition Image.cpp:6
eMaterialName
The eMaterialName enum Enumerates the names of the predefined materials.
Definition Material.hpp:15
float g
Definition Material.hpp:97
float b
Definition Material.hpp:98
float a
Definition Material.hpp:99
float r
Definition Material.hpp:96
iv::types::color color
Definition Material.hpp:95