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
17 public:
18 virtual ~PalettePrinter() = default;
19
20 [[nodiscard]] virtual std::vector<std::string> print_rgba_pal(const Palette<Rgba32, pal::max_size> &pal) const = 0;
21
22 [[nodiscard]] virtual std::vector<std::string> print_rgba_pal(const Palette<Rgba32> &pal) const = 0;
23
24 [[nodiscard]] virtual std::vector<std::string>
25 print_rgba_pal_with_highlights(const Palette<Rgba32> &pal, const std::vector<std::size_t> &slots) const = 0;
26
27 [[nodiscard]] virtual std::vector<std::string> print_rgba_pal_with_highlights(
28 const Palette<Rgba32, pal::max_size> &pal, const std::vector<std::size_t> &slots) const = 0;
29
30 [[nodiscard]] virtual std::vector<std::string>
31 print_pal_hint_with_highlights(const PaletteHint &hint, const std::vector<std::size_t> &slots) const = 0;
32
33 [[nodiscard]] virtual std::vector<std::string> print_rgba_palette_covered_missing(
35 std::set<Rgba32> covered_colors,
36 std::set<Rgba32> missing_colors) const = 0;
37
38 [[nodiscard]] virtual std::vector<std::string>
39 print_rgba_counts(const std::vector<std::pair<Rgba32, unsigned int>> &colors_counts) const = 0;
40
41 [[nodiscard]] std::vector<std::string>
42 print_rgba_pal_counts(const std::map<Rgba32, unsigned int> &color_counts) const
43 {
44 const auto sorted_colors = counts_to_descending_list(color_counts);
45 return print_rgba_counts(sorted_colors);
46 }
47};
48
49} // 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_pal(const Palette< Rgba32 > &pal) const =0
virtual std::vector< std::string > print_rgba_pal(const Palette< Rgba32, pal::max_size > &pal) const =0
virtual std::vector< std::string > print_rgba_pal_with_highlights(const Palette< Rgba32, pal::max_size > &pal, const std::vector< std::size_t > &slots) const =0
virtual std::vector< std::string > print_rgba_palette_covered_missing(const Palette< Rgba32, pal::max_size > &pal, std::set< Rgba32 > covered_colors, std::set< Rgba32 > missing_colors) const =0
virtual ~PalettePrinter()=default
virtual std::vector< std::string > print_pal_hint_with_highlights(const PaletteHint &hint, const std::vector< std::size_t > &slots) const =0
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_pal_with_highlights(const Palette< Rgba32 > &pal, const std::vector< std::size_t > &slots) const =0
std::vector< std::string > print_rgba_pal_counts(const std::map< Rgba32, unsigned int > &color_counts) const
A generic palette container for colors that support transparency checking.
Definition palette.hpp:47
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.