SourceXtractorPlusPlus 1.0.3
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
WriteableBufferedImage.h
Go to the documentation of this file.
1
17/*
18 * WriteableBufferedImage.h
19 *
20 * Created on: Mar 8, 2018
21 * Author: mschefer
22 */
23
24#ifndef _SEFRAMEWORK_IMAGE_WRITEABLEBUFFEREDIMAGE_H_
25#define _SEFRAMEWORK_IMAGE_WRITEABLEBUFFEREDIMAGE_H_
26
29
30namespace SourceXtractor {
31
32template <typename T>
33class WriteableBufferedImage : public BufferedImage<T>, public virtual WriteableImage<T> {
34
35protected:
36
39
40public:
41
42 virtual ~WriteableBufferedImage() = default;
43
48
49 void setValue(int x, int y, T value) override {
50 assert(x >= 0 && y >=0 && x < BufferedImage<T>::m_source->getWidth() && y < BufferedImage<T>::m_source->getHeight());
51
52 if (m_current_tile == nullptr || !m_current_tile->isPixelInTile(x, y)) {
54 }
55
56 m_current_tile->setModified(true);
57 m_current_tile->setValue(x, y, value);
58 }
59
61
62private:
64};
65
66}
67
68#endif /* _SEFRAMEWORK_IMAGE_WRITEABLEBUFFEREDIMAGE_H_ */
std::shared_ptr< TileManager > m_tile_manager
std::shared_ptr< const ImageSource > m_source
std::string getRepr() const override
Get a string identifying this image in a human readable manner.
int getWidth() const override
Returns the width of the image in pixels.
int getHeight() const override
Returns the height of the image in pixels.
BufferedImage(std::shared_ptr< const ImageSource > source, std::shared_ptr< TileManager > tile_manager)
static std::shared_ptr< TileManager > getInstance()
static std::shared_ptr< WriteableBufferedImage< T > > create(std::shared_ptr< const ImageSource > source, std::shared_ptr< TileManager > tile_manager=TileManager::getInstance())
void setValue(int x, int y, T value) override
std::shared_ptr< ImageTile > m_current_tile
WriteableBufferedImage(std::shared_ptr< const ImageSource > source, std::shared_ptr< TileManager > tile_manager)