#pragma once #include "interfaces/matrix.hpp" #include // NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class IComponent { public: using ComponentMatrix = IMatrix; virtual ~IComponent() = default; [[nodiscard]] virtual auto get() const noexcept -> const std::shared_ptr & = 0; [[nodiscard]] virtual auto get_need_render() const noexcept -> bool = 0; virtual void set_need_render(bool need_render) noexcept = 0; [[nodiscard]] virtual auto get_foreground_color() const noexcept -> uint32_t = 0; [[nodiscard]] virtual auto get_background_color() const noexcept -> uint32_t = 0; };