IOLink  IOL_v1.2.0_release
MultiImageViewFactory.h
1 #pragma once
2 
3 #include <iolink/IOLinkAPI.h>
4 #include <iolink/view/ImageView.h>
5 #include <iolink/view/MultiImageView.h>
6 
7 #include <memory>
8 
9 namespace iolink
10 {
11 
15 class IOLINK_API MultiImageViewFactory
16 {
17 public:
18  MultiImageViewFactory() = delete;
19  MultiImageViewFactory(const MultiImageViewFactory& other) = delete; // copy constructor
20  MultiImageViewFactory(MultiImageViewFactory&& other) = delete; // move constructor
21  MultiImageViewFactory& operator=(const MultiImageViewFactory& other) = delete; // copy assignment
22  MultiImageViewFactory& operator=(MultiImageViewFactory&& other) = delete; // move assignment
23 
27  static std::shared_ptr<MultiImageView> create();
28 
34  static std::shared_ptr<MultiImageView> create(std::initializer_list<std::shared_ptr<ImageView>> init);
35 
43  static std::shared_ptr<MultiImageView> createFromList(std::shared_ptr<ImageView>* listImages, size_t count);
44 
56  static std::shared_ptr<MultiImageView> unstack(std::shared_ptr<ImageView> imageView, size_t idxDimensionUnstack);
57 
70  static std::shared_ptr<MultiImageView> unstack(std::shared_ptr<ImageView> imageView, ImageDimension dimension);
80  static std::shared_ptr<MultiImageView> deinterlace(std::shared_ptr<ImageView> imageView);
81 };
82 
83 } // end namespace iolink