#pragma once #include #include #include #include "engine/data/vector2.hpp" #include "interfaces/matrix.hpp" // NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class ICellHelper { public: virtual ~ICellHelper() noexcept = default; [[nodiscard]] virtual auto compute_is_cell_dying(const Vector2 &cell_pos) const noexcept -> bool = 0; [[nodiscard]] virtual auto compute_birth_cell_positions( const std::vector &cell_positions) const noexcept -> std::vector = 0; }; template using ICellHelperFactory = yacppdic::Factory( const std::shared_ptr> &matrix)>;