Porytiles
Loading...
Searching...
No Matches
palette_matchers.hpp File Reference
#include <algorithm>
#include <set>
#include "porytiles2/domain/models/palette.hpp"
#include "porytiles2/domain/models/pixel_tile.hpp"
#include "porytiles2/xcut/panic/panic.hpp"
Include dependency graph for palette_matchers.hpp:

Go to the source code of this file.

Classes

struct  porytiles2::PaletteMatchResult< ColorType >
 Result type for palette matching operations. More...
 

Namespaces

namespace  porytiles2
 
namespace  porytiles2::details
 

Functions

template<SupportsTransparency ColorType, typename TransparencyPredicate >
PaletteMatchResult< ColorType > porytiles2::details::match_tile_to_palette_impl (const PixelTile< ColorType > &tile, const Palette< ColorType > &palette, TransparencyPredicate is_transparent_pred)
 Helper function implementing the core palette matching logic.
 
template<SupportsTransparency ColorType>
requires requires(const ColorType &c) { c.is_transparent(); }
PaletteMatchResult< ColorType > porytiles2::match_tile_to_palette (const PixelTile< ColorType > &tile, const Palette< ColorType > &palette)
 Matches a PixelTile against a Palette (intrinsic transparency only).
 
template<SupportsTransparency ColorType>
requires requires(const ColorType &c) { c.is_transparent(c); }
PaletteMatchResult< ColorType > porytiles2::match_tile_to_palette (const PixelTile< ColorType > &tile, const Palette< ColorType > &palette, const ColorType &extrinsic)
 Matches a PixelTile against a Palette (extrinsic transparency).
 
template<SupportsTransparency ColorType>
requires requires(const ColorType &c) { c.is_transparent(c); }
std::vector< PaletteMatchResult< ColorType > > porytiles2::match_or_best (const PixelTile< ColorType > &tile, const std::vector< Palette< ColorType > > &palettes, const ColorType &extrinsic, std::size_t top_n)
 Finds the best palette match(es) for a tile (extrinsic transparency).