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
15 public:
16 virtual ~TilePrinter() = default;
17
18 [[nodiscard]] virtual std::vector<std::string> print_metatile(
19 const Metatile<Rgba32> &metatile, metatile::Layer layer, const Rgba32 &extrinsic_transparency) const = 0;
20
21 [[nodiscard]] virtual std::vector<std::string> print_metatile_tile_highlight(
22 const Metatile<Rgba32> &metatile,
23 metatile::Layer layer,
24 metatile::Subtile subtile,
25 const Rgba32 &extrinsic_transparency) const = 0;
26
27 [[nodiscard]] virtual std::vector<std::string> print_metatile_pixel_highlight(
28 const Metatile<Rgba32> &metatile,
29 metatile::Layer layer,
30 metatile::Subtile subtile,
31 std::size_t row,
32 std::size_t col,
33 const Rgba32 &extrinsic_transparency) const = 0;
34
35 [[nodiscard]] virtual std::vector<std::string> print_metatile_pixel_highlights(
36 const Metatile<Rgba32> &metatile,
37 metatile::Layer layer,
38 metatile::Subtile subtile,
39 const std::vector<std::size_t> &indexes,
40 const Rgba32 &extrinsic_transparency) const = 0;
41
42 [[nodiscard]] virtual std::vector<std::string>
43 print_tile(const PixelTile<Rgba32> &tile, const Rgba32 &extrinsic_transparency) const = 0;
44
45 [[nodiscard]] virtual std::vector<std::string>
46 print_tile(const PixelTile<IndexPixel> &tile, const Rgba32 &extrinsic_transparency) const = 0;
47
48 [[nodiscard]] virtual std::vector<std::string> print_tile_pixel_highlight(
49 const PixelTile<Rgba32> &tile,
50 std::size_t row,
51 std::size_t col,
52 const Rgba32 &extrinsic_transparency) const = 0;
53
54 [[nodiscard]] virtual std::vector<std::string> print_tile_pixel_highlights(
55 const PixelTile<Rgba32> &tile,
56 const std::vector<std::size_t> &indexes,
57 const Rgba32 &extrinsic_transparency) const = 0;
58};
59
60} // namespace porytiles
The core tileset entity - a 2x2 grid of PixelTile objects arranged into three layers.
Definition metatile.hpp:224
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:21
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