IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseImageYStrip2dSplit.h
1 // BaseImageYStrip2dSplit.h:
3 // -------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_BASEIMAGEYSTRIP2DSPLIT_H__
16 #define __IPSDKIMAGEPROCESSING_BASEIMAGEYSTRIP2DSPLIT_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::BaseImageYStrip2dSplit<InputDataType,OutputDataType>::_stripParsingDirection' : class 'ipsdk::image::eStripParsingDirection' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseImageYStrip2dSplit<InputDataType,OutputDataType>'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
23 #include <IPSDKImageProcessing/DataSplit/Strip/BaseImageStripSplit.h>
24 
25 namespace ipsdk {
26 namespace imaproc {
27 
30 
31 template <typename InputDataType, typename OutputDataType>
33 {
34 // predefined public types
35 public:
37  typedef OutputDataType OutputType;
38 
39 public:
43  virtual ~BaseImageYStrip2dSplit() = 0;
45 
46 // methods
47 public:
50  {
52  }
53 
58  const image::eStripAllocationType& getStripAllocationType() const;
59 
64  const image::eStripParsingDirection& getStripParsingDirection() const;
65 
70  const image::eStripParsingDirection& getLineParsingDirection() const;
71 
72 protected:
75  virtual BoolResult processAttribute(processor::BaseProcessor& processor,
76  const boost::shared_ptr<OutputDataType>& pImageYStrip2d) = 0;
77 
83  void initBase(const boost::shared_ptr<InputDataType>& pImage,
84  const image::eStripAllocationType& stripAllocationType,
85  const image::eStripParsingDirection& stripParsingDirection);
86 
92  void initBase(const boost::shared_ptr<InputDataType>& pImage,
93  const image::eStripAllocationType& stripAllocationType,
94  const image::eStripParsingDirection& stripParsingDirection,
95  const image::eStripParsingDirection& lineParsingDirection);
96 
97 private:
101  BoolResult processAttribute(processor::BaseProcessor& processor,
102  const ipUInt64 elementsStartIndex,
103  const ipUInt64 nbElements,
104  const core::BaseRequestOrigin& requestOrigin);
105 
106 // attributes
107 private:
109  image::eStripParsingDirection _stripParsingDirection;
110 
113  image::eStripParsingDirection _lineParsingDirection;
114 
116  image::eStripAllocationType _stripAllocationType;
117 };
118 
121 
122 } // end of namespace imaproc
123 } // end of namespace ipsdk
124 
125 #pragma warning (pop)
126 
127 #endif // __IPSDKIMAGEPROCESSING_BASEIMAGEYSTRIP2DSPLIT_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
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
Base class for request origin description.
Definition: BaseRequestOrigin.h:28
Split operation generating image 2d strip with splitting along Y axis.
Definition: ImageStripSplitTypes.h:37
eStripParsingDirection
Enumerate describing strip parsing direction.
Definition: ImageStripTypes.h:72
eImageStripSplitType
Enumerate describing image strip split type.
Definition: ImageStripSplitTypes.h:33
Base class for split operation generating image y strips 2d.
Definition: BaseImageYStrip2dSplit.h:32
eImageStripSplitType getImageStripSplitType() const
retrieve image strip split operation type
Definition: BaseImageYStrip2dSplit.h:49
Base class for image strip split operations for data dispatch.
Definition: BaseImageStripSplit.h:35
OutputDataType OutputType
output data type for split operation
Definition: BaseImageYStrip2dSplit.h:37