Porytiles
Loading...
Searching...
No Matches
palette_printer.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5
10
11namespace porytiles {
12
15 public:
16 virtual ~PalettePrinter() = default;
17
18 [[nodiscard]] virtual std::vector<std::string>
20
21 [[nodiscard]] virtual std::vector<std::string> print_rgba_palette(const Palette<Rgba32> &palette) const = 0;
22
23 [[nodiscard]] virtual std::vector<std::string>
24 print_rgba_palette_with_highlights(const Palette<Rgba32> &palette, const std::vector<std::size_t> &slots) const = 0;
25
26 [[nodiscard]] virtual std::vector<std::string> print_rgba_palette_with_highlights(
27 const Palette<Rgba32, palette::max_size> &palette, const std::vector<std::size_t> &slots) const = 0;
28
29 [[nodiscard]] virtual std::vector<std::string>
30 print_palette_hint_with_highlights(const PaletteHint &hint, const std::vector<std::size_t> &slots) const = 0;
31
32 [[nodiscard]] virtual std::vector<std::string> print_rgba_palette_covered_missing(
34 std::set<Rgba32> covered_colors,
35 std::set<Rgba32> missing_colors) const = 0;
36
37 [[nodiscard]] virtual std::vector<std::string>
38 print_rgba_counts(const std::vector<std::pair<Rgba32, unsigned int>> &colors_counts) const = 0;
39
40 [[nodiscard]] std::vector<std::string>
41 print_rgba_palette_counts(const std::map<Rgba32, unsigned int> &color_counts) const
42 {
43 const auto sorted_colors = counts_to_descending_list(color_counts);
44 return print_rgba_counts(sorted_colors);
45 }
46};
47
48} // namespace porytiles
Represents a palette hint for the palette packing algorithm.
A collection of printer functions for the Palette and related types.
virtual std::vector< std::string > print_rgba_palette_with_highlights(const Palette< Rgba32 > &palette, const std::vector< std::size_t > &slots) const =0
std::vector< std::string > print_rgba_palette_counts(const std::map< Rgba32, unsigned int > &color_counts) const
virtual std::vector< std::string > print_palette_hint_with_highlights(const PaletteHint &hint, const std::vector< std::size_t > &slots) const =0
virtual ~PalettePrinter()=default
virtual std::vector< std::string > print_rgba_counts(const std::vector< std::pair< Rgba32, unsigned int > > &colors_counts) const =0
virtual std::vector< std::string > print_rgba_palette(const Palette< Rgba32 > &palette) const =0
virtual std::vector< std::string > print_rgba_palette(const Palette< Rgba32, palette::max_size > &palette) const =0
virtual std::vector< std::string > print_rgba_palette_with_highlights(const Palette< Rgba32, palette::max_size > &palette, const std::vector< std::size_t > &slots) const =0
virtual std::vector< std::string > print_rgba_palette_covered_missing(const Palette< Rgba32, palette::max_size > &palette, std::set< Rgba32 > covered_colors, std::set< Rgba32 > missing_colors) const =0
A generic palette container for colors that support transparency checking.
Definition palette.hpp:45
std::vector< std::pair< T, unsigned int > > counts_to_descending_list(const std::map< T, unsigned int > &counts)
Converts a map of counts to a sorted vector of key-count pairs.