Scroom  0.14
layeroperations.hh
Go to the documentation of this file.
1 /*
2  * Scroom - Generic viewer for 2D data
3  * Copyright (C) 2009-2022 Kees-Jan Dijkzeul
4  *
5  * SPDX-License-Identifier: LGPL-2.1
6  */
7 
8 #pragma once
9 
10 #include <scroom/colormappable.hh>
11 #include <scroom/interface.hh>
14 
16 {
17 public:
18  static void drawPixelValue(cairo_t* cr, int x, int y, int size, int value);
19  static void drawPixelValue(cairo_t* cr, int x, int y, int size, int value, Color const& bgColor);
20 
21  void initializeCairo(cairo_t* cr) override;
22  void drawState(cairo_t* cr, TileState s, Scroom::Utils::Rectangle<double> viewArea) override;
23 
25  void draw(cairo_t* cr,
26  const ConstTile::Ptr& tile,
29  int zoom,
30  Scroom::Utils::Stuff cache) override;
31 };
32 
34  : public PipetteLayerOperations
35  , public CommonOperations
36 {
37 protected:
38  int bps;
39 
40 public:
41  using Ptr = boost::shared_ptr<PipetteCommonOperationsCMYK>;
42 
43 public:
44  explicit PipetteCommonOperationsCMYK(int bps_)
45  : bps(bps_){};
46 
48 };
49 
51  : public PipetteLayerOperations
52  , public CommonOperations
53 {
54 protected:
55  int bps;
56 
57 public:
58  using Ptr = boost::shared_ptr<PipetteCommonOperationsRGB>;
59 
60 public:
61  explicit PipetteCommonOperationsRGB(int bps_)
62  : bps(bps_){};
63 
65 };
66 
68 {
69 private:
71 
72 public:
75 
76  int getBpp() override;
77  Scroom::Utils::Stuff cache(const ConstTile::Ptr& tile) override;
78  void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override;
79 
80  void draw(cairo_t* cr,
81  const ConstTile::Ptr& tile,
84  int zoom,
85  Scroom::Utils::Stuff cache) override;
86 };
87 
89 {
90 private:
92 
93 public:
96 
97  int getBpp() override;
98  Scroom::Utils::Stuff cache(const ConstTile::Ptr& tile) override;
99  void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override;
100 
101  void draw(cairo_t* cr,
102  const ConstTile::Ptr& tile,
105  int zoom,
106  Scroom::Utils::Stuff cache) override;
107 };
108 
110 {
111 public:
112  static Ptr create();
113  Operations24bpp();
114 
115  int getBpp() override;
116  Scroom::Utils::Stuff cache(const ConstTile::Ptr& tile) override;
117  void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override;
118 };
119 
121 {
122 protected:
124  const unsigned bpp;
125  const unsigned pixelsPerByte;
126  const unsigned pixelOffset;
127  const unsigned pixelMask;
128 
129 public:
132 
134  // LayerOperations
135 
136  int getBpp() override;
137  Scroom::Utils::Stuff cache(const ConstTile::Ptr& tile) override;
138  void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override;
139 
140  void draw(cairo_t* cr,
141  const ConstTile::Ptr& tile,
144  int zoom,
145  Scroom::Utils::Stuff cache) override;
146 };
147 
149 {
150 public:
153 
154  int getBpp() override;
155  Scroom::Utils::Stuff cache(const ConstTile::Ptr& tile) override;
156  void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override;
157 };
158 
160 {
161 private:
163 
164 public:
167 
168  int getBpp() override;
169  Scroom::Utils::Stuff cacheZoom(const ConstTile::Ptr& tile, int zoom, Scroom::Utils::Stuff& cache) override;
170 
171  void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override;
172 };
173 
175 {
176 public:
177  static Ptr create();
179 
180  int getBpp() override;
181  Scroom::Utils::Stuff cache(const ConstTile::Ptr& tile) override;
182  void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override;
183 };
184 
186 {
187 public:
188  static Ptr create();
190 
191  int getBpp() override;
192  Scroom::Utils::Stuff cache(const ConstTile::Ptr& tile) override;
193  void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override;
194 };
195 
197 {
198 public:
199  static Ptr create();
200  OperationsCMYK8();
201 
202  int getBpp() override;
203  Scroom::Utils::Stuff cache(const ConstTile::Ptr& tile) override;
204  void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override;
205 };
206 
208 {
209 public:
210  static Ptr create();
211  OperationsCMYK4();
212 
213  int getBpp() override;
214  Scroom::Utils::Stuff cache(const ConstTile::Ptr& tile) override;
215  void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override;
216 };
Operations1bpp::draw
void draw(cairo_t *cr, const ConstTile::Ptr &tile, Scroom::Utils::Rectangle< double > tileArea, Scroom::Utils::Rectangle< double > viewArea, int zoom, Scroom::Utils::Stuff cache) override
Definition: layeroperations.cc:332
PipetteCommonOperationsRGB::sumPixelValues
PipetteLayerOperations::PipetteColor sumPixelValues(Scroom::Utils::Rectangle< int > area, const ConstTile::Ptr &tile) override
Definition: layeroperations.cc:233
Operations::getBpp
int getBpp() override
Definition: layeroperations.cc:588
Operations24bpp
Definition: layeroperations.hh:109
Operations1bpp::getBpp
int getBpp() override
Definition: layeroperations.cc:272
Operations24bpp::create
static Ptr create()
Definition: layeroperations.cc:498
Operations::pixelOffset
const unsigned pixelOffset
Definition: layeroperations.hh:126
PipetteLayerOperations::PipetteColor
std::vector< std::pair< std::string, double > > PipetteColor
Definition: pipettelayeroperations.hh:22
Operations::bpp
const unsigned bpp
Definition: layeroperations.hh:124
PipetteCommonOperationsCMYK
Definition: layeroperations.hh:33
OperationsColormapped::OperationsColormapped
OperationsColormapped(ColormapProvider::Ptr colormapProvider, int bpp)
Definition: layeroperations.cc:728
PipetteCommonOperationsCMYK::sumPixelValues
PipetteLayerOperations::PipetteColor sumPixelValues(Scroom::Utils::Rectangle< int > area, const ConstTile::Ptr &tile) override
Definition: layeroperations.cc:206
Operations8bpp::Operations8bpp
Operations8bpp(ColormapProvider::Ptr colormapProvider)
Definition: layeroperations.cc:383
Operations::draw
void draw(cairo_t *cr, const ConstTile::Ptr &tile, Scroom::Utils::Rectangle< double > tileArea, Scroom::Utils::Rectangle< double > viewArea, int zoom, Scroom::Utils::Stuff cache) override
Definition: layeroperations.cc:677
OperationsCMYK16::create
static Ptr create()
Definition: cmyklayeroperations.cc:123
Operations8bpp::draw
void draw(cairo_t *cr, const ConstTile::Ptr &tile, Scroom::Utils::Rectangle< double > tileArea, Scroom::Utils::Rectangle< double > viewArea, int zoom, Scroom::Utils::Stuff cache) override
Definition: layeroperations.cc:452
Operations::pixelsPerByte
const unsigned pixelsPerByte
Definition: layeroperations.hh:125
CommonOperations::initializeCairo
void initializeCairo(cairo_t *cr) override
Definition: layeroperations.cc:66
Operations8bpp::create
static Ptr create(ColormapProvider::Ptr colormapProvider)
Definition: layeroperations.cc:378
OperationsColormapped::reduce
void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override
Definition: layeroperations.cc:760
Operations1bppClipped::colormapProvider
ColormapProvider::Ptr colormapProvider
Definition: layeroperations.hh:162
OperationsCMYK32::reduce
void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override
Definition: cmyklayeroperations.cc:72
OperationsCMYK8::OperationsCMYK8
OperationsCMYK8()
Definition: cmyklayeroperations.cc:218
Operations::pixelMask
const unsigned pixelMask
Definition: layeroperations.hh:127
CommonOperations::draw
void draw(cairo_t *cr, const ConstTile::Ptr &tile, Scroom::Utils::Rectangle< double > tileArea, Scroom::Utils::Rectangle< double > viewArea, int zoom, Scroom::Utils::Stuff cache) override
Definition: layeroperations.cc:161
Operations1bppClipped::getBpp
int getBpp() override
Definition: layeroperations.cc:838
ConstTile::Ptr
boost::shared_ptr< ConstTile > Ptr
Definition: tile.hh:47
pipettelayeroperations.hh
Operations1bpp::create
static Ptr create(ColormapProvider::Ptr colormapProvider)
Definition: layeroperations.cc:262
colormappable.hh
OperationsCMYK8::cache
Scroom::Utils::Stuff cache(const ConstTile::Ptr &tile) override
Definition: cmyklayeroperations.cc:228
Operations1bpp::Operations1bpp
Operations1bpp(ColormapProvider::Ptr colormapProvider)
Definition: layeroperations.cc:267
Operations8bpp::getBpp
int getBpp() override
Definition: layeroperations.cc:388
OperationsCMYK16
Definition: layeroperations.hh:185
OperationsCMYK4
Definition: layeroperations.hh:207
Operations8bpp::colormapProvider
ColormapProvider::Ptr colormapProvider
Definition: layeroperations.hh:91
OperationsCMYK16::cache
Scroom::Utils::Stuff cache(const ConstTile::Ptr &tile) override
Definition: cmyklayeroperations.cc:135
PipetteCommonOperationsCMYK::Ptr
boost::shared_ptr< PipetteCommonOperationsCMYK > Ptr
Definition: layeroperations.hh:41
OperationsCMYK16::OperationsCMYK16
OperationsCMYK16()
Definition: cmyklayeroperations.cc:125
ColormapProvider::Ptr
boost::shared_ptr< ColormapProvider > Ptr
Definition: colormappable.hh:149
Operations::reduce
void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override
Definition: layeroperations.cc:613
LayerOperations
Definition: tiledbitmapinterface.hh:50
PipetteCommonOperationsCMYK::PipetteCommonOperationsCMYK
PipetteCommonOperationsCMYK(int bps_)
Definition: layeroperations.hh:44
OperationsCMYK16::getBpp
int getBpp() override
Definition: cmyklayeroperations.cc:130
OperationsCMYK4::create
static Ptr create()
Definition: cmyklayeroperations.cc:306
OperationsCMYK4::reduce
void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override
Definition: cmyklayeroperations.cc:370
TileState
TileState
Definition: tiledbitmapinterface.hh:32
Operations1bppClipped::Operations1bppClipped
Operations1bppClipped(ColormapProvider::Ptr colormapProvider)
Definition: layeroperations.cc:833
Operations1bpp::colormapProvider
ColormapProvider::Ptr colormapProvider
Definition: layeroperations.hh:70
Operations8bpp
Definition: layeroperations.hh:88
OperationsCMYK8
Definition: layeroperations.hh:196
Operations8bpp::cache
Scroom::Utils::Stuff cache(const ConstTile::Ptr &tile) override
Definition: layeroperations.cc:390
OperationsCMYK32::getBpp
int getBpp() override
Definition: cmyklayeroperations.cc:37
Operations::Operations
Operations(ColormapProvider::Ptr colormapProvider, int bpp)
Definition: layeroperations.cc:579
Operations1bpp::reduce
void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override
Definition: layeroperations.cc:296
OperationsCMYK16::reduce
void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override
Definition: cmyklayeroperations.cc:165
OperationsCMYK32::create
static Ptr create()
Definition: cmyklayeroperations.cc:30
PipetteCommonOperationsRGB::bps
int bps
Definition: layeroperations.hh:55
PipetteCommonOperationsCMYK::bps
int bps
Definition: layeroperations.hh:38
LayerOperations::cache
virtual Scroom::Utils::Stuff cache(const ConstTile::Ptr &tile)
Definition: tiledbitmapinterface.hh:126
PipetteCommonOperationsRGB::PipetteCommonOperationsRGB
PipetteCommonOperationsRGB(int bps_)
Definition: layeroperations.hh:61
tiledbitmapinterface.hh
Operations::create
static Ptr create(ColormapProvider::Ptr colormapProvider, int bpp)
Definition: layeroperations.cc:574
Tile::Ptr
boost::shared_ptr< Tile > Ptr
Definition: tile.hh:21
OperationsCMYK32::cache
Scroom::Utils::Stuff cache(const ConstTile::Ptr &tile) override
Definition: cmyklayeroperations.cc:42
OperationsCMYK8::getBpp
int getBpp() override
Definition: cmyklayeroperations.cc:223
OperationsColormapped::create
static Ptr create(ColormapProvider::Ptr colormapProvider, int bpp)
Definition: layeroperations.cc:723
Operations8bpp::reduce
void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override
Definition: layeroperations.cc:416
Scroom::Utils::Stuff
boost::shared_ptr< void > Stuff
Definition: stuff.hh:18
Operations1bpp::cache
Scroom::Utils::Stuff cache(const ConstTile::Ptr &tile) override
Definition: layeroperations.cc:274
OperationsCMYK4::cache
Scroom::Utils::Stuff cache(const ConstTile::Ptr &tile) override
Definition: cmyklayeroperations.cc:322
CommonOperations::drawState
void drawState(cairo_t *cr, TileState s, Scroom::Utils::Rectangle< double > viewArea) override
Definition: layeroperations.cc:72
OperationsCMYK32::OperationsCMYK32
OperationsCMYK32()
Definition: cmyklayeroperations.cc:32
Operations24bpp::Operations24bpp
Operations24bpp()
Definition: layeroperations.cc:500
Operations1bppClipped::reduce
void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override
Definition: layeroperations.cc:893
CommonOperations::drawPixelValue
static void drawPixelValue(cairo_t *cr, int x, int y, int size, int value)
Definition: layeroperations.cc:96
Operations1bpp
Definition: layeroperations.hh:67
PipetteCommonOperationsRGB
Definition: layeroperations.hh:50
Operations1bppClipped::cacheZoom
Scroom::Utils::Stuff cacheZoom(const ConstTile::Ptr &tile, int zoom, Scroom::Utils::Stuff &cache) override
Definition: layeroperations.cc:840
Operations24bpp::reduce
void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override
Definition: layeroperations.cc:530
OperationsColormapped::getBpp
int getBpp() override
Definition: layeroperations.cc:733
OperationsCMYK4::OperationsCMYK4
OperationsCMYK4()
Definition: cmyklayeroperations.cc:308
LayerOperations::Ptr
boost::shared_ptr< LayerOperations > Ptr
Definition: tiledbitmapinterface.hh:53
OperationsColormapped::cache
Scroom::Utils::Stuff cache(const ConstTile::Ptr &tile) override
Definition: layeroperations.cc:735
Operations1bppClipped::create
static Ptr create(ColormapProvider::Ptr colormapProvider)
Definition: layeroperations.cc:828
Operations1bppClipped
Definition: layeroperations.hh:159
CommonOperations
Definition: layeroperations.hh:15
OperationsCMYK8::reduce
void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) override
Definition: cmyklayeroperations.cc:259
Operations24bpp::cache
Scroom::Utils::Stuff cache(const ConstTile::Ptr &tile) override
Definition: layeroperations.cc:507
CommonOperations::cacheZoom
Scroom::Utils::Stuff cacheZoom(const ConstTile::Ptr &tile, int zoom, Scroom::Utils::Stuff &cache) override
Definition: layeroperations.cc:127
OperationsCMYK32
Definition: layeroperations.hh:174
OperationsCMYK4::getBpp
int getBpp() override
Definition: cmyklayeroperations.cc:313
Operations::colormapProvider
ColormapProvider::Ptr colormapProvider
Definition: layeroperations.hh:123
Scroom::Utils::Rectangle< double >
PipetteCommonOperationsRGB::Ptr
boost::shared_ptr< PipetteCommonOperationsRGB > Ptr
Definition: layeroperations.hh:58
Operations::cache
Scroom::Utils::Stuff cache(const ConstTile::Ptr &tile) override
Definition: layeroperations.cc:590
interface.hh
Color
Definition: color.hh:34
OperationsCMYK8::create
static Ptr create()
Definition: cmyklayeroperations.cc:216
Operations
Definition: layeroperations.hh:120
PipetteLayerOperations
Definition: pipettelayeroperations.hh:16
OperationsColormapped
Definition: layeroperations.hh:148
Operations24bpp::getBpp
int getBpp() override
Definition: layeroperations.cc:505