15 std::size_t group_index = it->second;
19 if (assigned_id == tile_id) {
22 if (std::ranges::find(members, assigned_id) != members.end()) {
36 return sharing_weight *
static_cast<double>(tile.
color_count());
Wraps a ColorSet with a tile ID for tracking during palette packing.
std::size_t color_count() const
std::variant< HintId, PrefilledPaletteId, RegularId, AnimId, PrimaryTileId > Id
Variant type for tile identification.
Represents a hardware palette after packing with accumulated colors and assigned tiles.
const std::vector< PackableTile::Id > & assigned_tile_ids() const
bool palette_contains_sibling(const PackableTile::Id &tile_id, const PackedPalette &palette, const ShapeGroupMetadata &metadata)
Checks whether a palette already contains a sibling of the given tile (same shape group,...
double compute_sharing_penalty(const PackableTile &tile, const PackedPalette &palette, const ShapeGroupMetadata &metadata, double sharing_weight=0.5)
Computes the sharing penalty for placing a tile in a palette.