IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseImageYSubStrip2dSplit.h
1 // BaseImageYSubStrip2dSplit.h:
3 // -------------------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_BASEIMAGEYSUBSTRIP2DSPLIT_H__
17 #define __IPSDKIMAGEPROCESSING_BASEIMAGEYSUBSTRIP2DSPLIT_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::imaproc::BaseImageYSubStrip2dSplit<InputDataType,OutputDataType>::_stripParsingAllocationType' : class 'ipsdk::image::eStripParsingAllocationType' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseImageYSubStrip2dSplit<InputDataType,OutputDataType>'
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
24 #include <IPSDKImageProcessing/DataSplit/Strip/BaseImageStripSplit.h>
25 
26 namespace ipsdk {
27 namespace imaproc {
28 
31 
32 template <typename InputDataType, typename OutputDataType>
34 {
35 // predefined public types
36 public:
38  typedef OutputDataType OutputType;
39 
40 public:
44  virtual ~BaseImageYSubStrip2dSplit() = 0;
46 
47 // methods
48 public:
51  {
53  }
54 
59  const image::eStripAllocationType& getStripAllocationType() const;
60 
61 protected:
64  virtual BoolResult processAttribute(processor::BaseProcessor& processor,
65  const boost::shared_ptr<OutputDataType>& pImageYStrip2d) = 0;
66 
72  void initBase(const boost::shared_ptr<InputDataType>& pImage,
73  const image::eStripAllocationType& stripAllocationType,
74  ipUInt64 yOffset,
75  ipUInt64 nbRows);
76 
77 private:
81  BoolResult processAttribute(processor::BaseProcessor& processor,
82  const ipUInt64 elementsStartIndex,
83  const ipUInt64 nbElements,
84  const core::BaseRequestOrigin& requestOrigin);
85 
86 // attributes
87 private:
88 
90  image::eStripAllocationType _stripAllocationType;
91 
92  ipUInt64 _yOffset;
93  ipUInt64 _nbRows;
94 };
95 
98 
99 } // end of namespace imaproc
100 } // end of namespace ipsdk
101 
102 #pragma warning (pop)
103 
104 #endif // __IPSDKIMAGEPROCESSING_BASEIMAGEYSUBSTRIP2DSPLIT_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Base class for processor class.
Definition: BaseProcessor.h:43
eStripAllocationType
Enumerate describing image strip allocation policy.
Definition: ImageStripTypes.h:88
eImageStripSplitType getImageStripSplitType() const
retrieve image strip split operation type
Definition: BaseImageYSubStrip2dSplit.h:50
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
Base class for split operation generating image y strips 2d from a subset of contiguous rows...
Definition: BaseImageYSubStrip2dSplit.h:33
OutputDataType OutputType
output data type for split operation
Definition: BaseImageYSubStrip2dSplit.h:38
Split operation generating sequence image 2d strip with splitting along Y axis on a subset of contigu...
Definition: ImageStripSplitTypes.h:49
Base class for request origin description.
Definition: BaseRequestOrigin.h:28
eImageStripSplitType
Enumerate describing image strip split type.
Definition: ImageStripSplitTypes.h:33
Base class for image strip split operations for data dispatch.
Definition: BaseImageStripSplit.h:35