IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseImageStripSplit.h
1 // BaseImageStripSplit.h:
3 // ----------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_BASEIMAGESTRIPSPLIT_H__
16 #define __IPSDKIMAGEPROCESSING_BASEIMAGESTRIPSPLIT_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::BaseImageStripSplit<InputDataType>::_pImage' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseImageStripSplit<InputDataType>'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
25 #include <IPSDKBaseProcessing/DataSplit/Dynamic/BaseDynamicSplit.h>
27 
28 namespace ipsdk {
29 namespace imaproc {
30 
33 
34 template <typename InputDataType>
36 {
37 // predefined public types
38 public:
40  typedef InputDataType InputType;
41 
42 public:
46  virtual ~BaseImageStripSplit() = 0;
48 
49 // methods
50 public:
53  {
55  }
56 
59  {
61  }
62 
64  virtual eImageStripSplitType getImageStripSplitType() const = 0;
65 
69  const image::BaseImage& getImage() const;
70 
71 protected:
81  void initSplitted(const boost::shared_ptr<InputDataType>& pImage,
82  const processor::ElementsLocationInfo& elementsLocationInfo,
83  const ipUInt64 nbMinEltsPerSplit = 1,
84  const ipUInt64 nbMaxEltsPerSplit = NumericLimits<ipUInt64>::max());
85 
91  void initUnSplitted(const boost::shared_ptr<InputDataType>& pImage,
92  const processor::ElementsLocationInfo& elementsLocationInfo);
93 
97  const boost::shared_ptr<InputDataType>& getImagePtr() const;
98 
99 // attributes
100 private:
102  boost::shared_ptr<InputDataType> _pImage;
103 };
104 
107 
108 } // end of namespace imaproc
109 } // end of namespace ipsdk
110 
111 #pragma warning (pop)
112 
113 #endif // __IPSDKIMAGEPROCESSING_BASEIMAGESTRIPSPLIT_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
eSplitDynamicType
Enumerate describing dynamic split operation type.
Definition: DynamicSplitTypes.h:36
Predefined types for image strip split operations.
InputDataType InputType
input data type for split operation
Definition: BaseImageStripSplit.h:40
Definition: NumericLimits.h:27
Definition of import/export macro for library.
processor::eSplitDynamicType getSplitDynamicType() const
retrieve dynamic split operation type
Definition: BaseImageStripSplit.h:52
Base class for data dynamic split objets used for data dispatch.
Definition: BaseDynamicSplit.h:31
Split operation of an image into strips.
Definition: ImageSplitTypes.h:37
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
Predefined types for image strips management.
eImageSplitType
Enumerate describing image split operation type.
Definition: ImageSplitTypes.h:33
eImageStripSplitType
Enumerate describing image strip split type.
Definition: ImageStripSplitTypes.h:33
eImageSplitType getImageSplitType() const
retrieve image split operation type
Definition: BaseImageStripSplit.h:58
Base class for images data type.
Definition: BaseImage.h:43
Base class for image strip split operations for data dispatch.
Definition: BaseImageStripSplit.h:35
Class allowing to store elements location informations.
Definition: ElementsLocationInfo.h:32