Porytiles
Loading...
Searching...
No Matches
tile_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 ~TilePrinter() = default;
19
20 [[nodiscard]] virtual std::vector<std::string> print_metatile(
21 const Metatile<Rgba32> &metatile, metatile::Layer layer, const Rgba32 &extrinsic_transparency) const = 0;
22
23 [[nodiscard]] virtual std::vector<std::string> print_metatile_tile_highlight(
24 const Metatile<Rgba32> &metatile,
25 metatile::Layer layer,
26 metatile::Subtile subtile,
27 const Rgba32 &extrinsic_transparency) const = 0;
28
29 [[nodiscard]] virtual std::vector<std::string> print_metatile_pixel_highlight(
30 const Metatile<Rgba32> &metatile,
31 metatile::Layer layer,
32 metatile::Subtile subtile,
33 std::size_t row,
34 std::size_t col,
35 const Rgba32 &extrinsic_transparency) const = 0;
36
37 [[nodiscard]] virtual std::vector<std::string> print_metatile_pixel_highlights(
38 const Metatile<Rgba32> &metatile,
39 metatile::Layer layer,
40 metatile::Subtile subtile,
41 const std::vector<std::size_t> &indexes,
42 const Rgba32 &extrinsic_transparency) const = 0;
43
44 [[nodiscard]] virtual std::vector<std::string>
45 print_tile(const PixelTile<Rgba32> &tile, const Rgba32 &extrinsic_transparency) const = 0;
46
47 [[nodiscard]] virtual std::vector<std::string>
48 print_tile(const PixelTile<IndexPixel> &tile, const Rgba32 &extrinsic_transparency) const = 0;
49
50 [[nodiscard]] virtual std::vector<std::string> print_tile_pixel_highlight(
51 const PixelTile<Rgba32> &tile,
52 std::size_t row,
53 std::size_t col,
54 const Rgba32 &extrinsic_transparency) const = 0;
55
56 [[nodiscard]] virtual std::vector<std::string> print_tile_pixel_highlights(
57 const PixelTile<Rgba32> &tile,
58 const std::vector<std::size_t> &indexes,
59 const Rgba32 &extrinsic_transparency) const = 0;
60};
61
62} // namespace porytiles
The core tileset entity - a 2x2 grid of PixelTile objects arranged into three layers.
Definition metatile.hpp:186
An 8x8 tile backed by literal-array-based per-pixel storage of an arbitrary pixel type.
Represents a 32-bit RGBA color.
Definition rgba32.hpp:23
A collection of printer functions for various tile types.
virtual std::vector< std::string > print_metatile_pixel_highlight(const Metatile< Rgba32 > &metatile, metatile::Layer layer, metatile::Subtile subtile, std::size_t row, std::size_t col, const Rgba32 &extrinsic_transparency) const =0
virtual ~TilePrinter()=default
virtual std::vector< std::string > print_tile_pixel_highlight(const PixelTile< Rgba32 > &tile, std::size_t row, std::size_t col, const Rgba32 &extrinsic_transparency) const =0
virtual std::vector< std::string > print_metatile(const Metatile< Rgba32 > &metatile, metatile::Layer layer, const Rgba32 &extrinsic_transparency) const =0
virtual std::vector< std::string > print_tile(const PixelTile< Rgba32 > &tile, const Rgba32 &extrinsic_transparency) const =0
virtual std::vector< std::string > print_tile(const PixelTile< IndexPixel > &tile, const Rgba32 &extrinsic_transparency) const =0
virtual std::vector< std::string > print_tile_pixel_highlights(const PixelTile< Rgba32 > &tile, const std::vector< std::size_t > &indexes, const Rgba32 &extrinsic_transparency) const =0
virtual std::vector< std::string > print_metatile_pixel_highlights(const Metatile< Rgba32 > &metatile, metatile::Layer layer, metatile::Subtile subtile, const std::vector< std::size_t > &indexes, const Rgba32 &extrinsic_transparency) const =0
virtual std::vector< std::string > print_metatile_tile_highlight(const Metatile< Rgba32 > &metatile, metatile::Layer layer, metatile::Subtile subtile, const Rgba32 &extrinsic_transparency) const =0