IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseImageYStripColor2dSplit.h
1 // BaseImageYStripColor2dSplit.h:
3 // ------------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_BASEIMAGEYSTRIPCOLOR2DSPLIT_H__
16 #define __IPSDKIMAGEPROCESSING_BASEIMAGEYSTRIPCOLOR2DSPLIT_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::BaseImageYStripColor2dSplit<InputDataType,OutputDataType>::_stripParsingDirection' : class 'ipsdk::image::eStripParsingDirection' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseImageYStripColor2dSplit<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 ~BaseImageYStripColor2dSplit() = 0;
45 
46 // methods
47 public:
50  {
52  }
53 
58  const image::eStripAllocationType& getStripAllocationType() const;
59 
64  const image::eStripParsingDirection& getStripParsingDirection() const;
65 
66 protected:
69  virtual BoolResult processAttribute(processor::BaseProcessor& processor,
70  const boost::shared_ptr<OutputDataType>& pImageYStripColor2d) = 0;
71 
77  void initBase(const boost::shared_ptr<InputDataType>& pImage,
78  const image::eStripAllocationType& stripAllocationType,
79  const image::eStripParsingDirection& stripParsingDirection,
80  const bool bAllowGreyColorGeometry);
81 
82 private:
86  BoolResult processAttribute(processor::BaseProcessor& processor,
87  const ipUInt64 elementsStartIndex,
88  const ipUInt64 nbElements,
89  const core::BaseRequestOrigin& requestOrigin);
90 
91 // attributes
92 private:
94  image::eStripParsingDirection _stripParsingDirection;
95 
97  image::eStripAllocationType _stripAllocationType;
98 
100  bool _bAllowGreyColorGeometry;
101 };
102 
105 
106 } // end of namespace imaproc
107 } // end of namespace ipsdk
108 
109 #pragma warning (pop)
110 
111 #endif // __IPSDKIMAGEPROCESSING_BASEIMAGEYSTRIPCOLOR2DSPLIT_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Base class for split operation generating color image y strips 2d.
Definition: BaseImageYStripColor2dSplit.h:32
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
OutputDataType OutputType
output data type for split operation
Definition: BaseImageYStripColor2dSplit.h:37
Split operation generating color image 2d strip with splitting along Y axis.
Definition: ImageStripSplitTypes.h:45
Base class for request origin description.
Definition: BaseRequestOrigin.h:28
eStripParsingDirection
Enumerate describing strip parsing direction.
Definition: ImageStripTypes.h:72
eImageStripSplitType
Enumerate describing image strip split type.
Definition: ImageStripSplitTypes.h:33
eImageStripSplitType getImageStripSplitType() const
retrieve image strip split operation type
Definition: BaseImageYStripColor2dSplit.h:49
Base class for image strip split operations for data dispatch.
Definition: BaseImageStripSplit.h:35