IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseImageTileCollSplit.h
1 // BaseImageTileCollSplit.h:
3 // -------------------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_BASEIMAGETILECOLLSPLIT_H__
17 #define __IPSDKIMAGEPROCESSING_BASEIMAGETILECOLLSPLIT_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::imaproc::BaseImageTileCollSplit<const ipsdk::image::BaseImage>::_pImage' : class 'boost::shared_ptr<const ipsdk::image::BaseImage>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseImageTileCollSplit<const ipsdk::image::BaseImage>'
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
26 #include <IPSDKBaseProcessing/DataSplit/Dynamic/BaseDynamicSplit.h>
28 
29 namespace ipsdk {
30 namespace imaproc {
31 
34 
35 template <typename InputImageType>
37 {
38 public:
42  virtual ~BaseImageTileCollSplit() = 0;
44 
45 // methods
46 public:
48  inline processor::eSplitDynamicType getSplitDynamicType() const;
49 
51  inline eImageSplitType getImageSplitType() const;
52 
54  virtual eImageTileCollSplitType getImageTileCollSplitType() const = 0;
55 
59  const image::BaseImage& getImage() const;
60 
61 protected:
71  void initBase(const boost::shared_ptr<InputImageType>& pImage,
72  const processor::ElementsLocationInfo& elementsLocationInfo,
73  const ipUInt64 nbMinEltsPerSplit = 1,
74  const ipUInt64 nbMaxEltsPerSplit = NumericLimits<ipUInt64>::max());
75 
79  const boost::shared_ptr<InputImageType>& getImagePtr() const;
80 
81 // attributes
82 private:
84  boost::shared_ptr<InputImageType> _pImage;
85 };
86 
89 
90 template <typename InputDataType>
93 {
95 }
96 
97 template <typename InputDataType>
98 inline eImageSplitType
100 {
102 }
103 
106 
107 } // end of namespace imaproc
108 } // end of namespace ipsdk
109 
110 #pragma warning (pop)
111 
112 #endif // __IPSDKIMAGEPROCESSING_BASEIMAGETILECOLLSPLIT_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Split operation of an image into collection of tiles.
Definition: ImageSplitTypes.h:41
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
eImageSplitType getImageSplitType() const
retrieve image split operation type
Definition: BaseImageTileCollSplit.h:99
eSplitDynamicType
Enumerate describing dynamic split operation type.
Definition: DynamicSplitTypes.h:36
processor::eSplitDynamicType getSplitDynamicType() const
retrieve dynamic split operation type
Definition: BaseImageTileCollSplit.h:92
Definition: NumericLimits.h:27
Definition of import/export macro for library.
Base class for data dynamic split objets used for data dispatch.
Definition: BaseDynamicSplit.h:31
eImageTileCollSplitType
Enumerate describing image tile collection split type.
Definition: ImageTileCollSplitTypes.h:34
Dynamic split operation type for image processing elements.
Definition: DynamicSplitTypes.h:46
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
eImageSplitType
Enumerate describing image split operation type.
Definition: ImageSplitTypes.h:33
Predefined types for image tile collection split operations.
Predefined types for image tile management.
Base class for images data type.
Definition: BaseImage.h:43
Class allowing to store elements location informations.
Definition: ElementsLocationInfo.h:32
Base class for image tile collection split operations for data dispatch.
Definition: BaseImageTileCollSplit.h:36