SourceXtractorPlusPlus  0.11
Please provide a description of the project.
ProcessingImageSource.h
Go to the documentation of this file.
1 
17 /*
18  * ProcessingImageSource.h
19  *
20  * Created on: May 2, 2018
21  * Author: mschefer
22  */
23 
24 #ifndef _SEFRAMEWORK_IMAGE_PROCESSINGIMAGESOURCE_H_
25 #define _SEFRAMEWORK_IMAGE_PROCESSINGIMAGESOURCE_H_
26 
29 
30 namespace SourceXtractor {
31 
32 template <typename T>
33 class ProcessingImageSource : public ImageSource<T>, public std::enable_shared_from_this<ImageSource<T>> {
34 public:
35 
37 
38  virtual ~ProcessingImageSource() = default;
39 
40  std::shared_ptr<ImageTile<T>> getImageTile(int x, int y, int width, int height) const override {
41  auto tile = std::make_shared<ImageTile<T>>((const_cast<ProcessingImageSource*>(this))->shared_from_this(), x, y, width, height);
42 
43  generateTile(m_image, *tile, x, y, width, height);
44 
45  return tile;
46  }
47 
48  void saveTile(ImageTile<T>& /*tile*/) override {
49  assert(false);
50  }
51 
53  int getWidth() const override {
54  return m_image->getWidth();
55  }
56 
58  int getHeight() const override {
59  return m_image->getHeight();
60  }
61 
62 protected:
63  virtual void generateTile(const std::shared_ptr<Image<T>>& image, ImageTile<T>& tile, int x, int y, int width, int height) const = 0;
64 
66  return m_image->getRepr();
67  }
68 
69 private:
71 };
72 
73 }
74 
75 
76 
77 #endif /* _SEFRAMEWORK_IMAGE_PROCESSINGIMAGESOURCE_H_ */
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
std::shared_ptr< Image< T > > m_image
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
STL class.
std::shared_ptr< ImageTile< T > > getImageTile(int x, int y, int width, int height) const override
int getHeight() const override
Returns the height of the image in pixels.
int getWidth() const override
Returns the width of the image in pixels.
Interface representing an image.
Definition: Image.h:43
virtual void generateTile(const std::shared_ptr< Image< T >> &image, ImageTile< T > &tile, int x, int y, int width, int height) const =0
ProcessingImageSource(std::shared_ptr< Image< T >> image)
void saveTile(ImageTile< T > &) override