/** * File: BaseGen.hh * Copyright (C) 2025 Tyler Triplett * License: GNU GPL 3.0 or later <https://www.gnu.org/licenses/gpl-3.0.html> * * This is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef BASE_GEN_HH #define BASE_GEN_HH #include <pch.hh> #include <vector> #include <limits> namespace ty { class BaseGen { protected: const int width_; const int height_; const unsigned char uCharMax_ = std::numeric_limits<unsigned char>::max(); public: BaseGen(const int& w, const int& h); virtual ~BaseGen(); BaseGen(const BaseGen&) = delete; virtual void init(const json& j) = 0; virtual std::vector<unsigned char> runGen() = 0; }; } /// ty #endif /// BASE_GEN_HH