IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseImageZStrip3dSplit.h
1 // BaseImageZStrip3dSplit.h:
3 // -------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_BASEIMAGEZSTRIP3DSPLIT_H__
16 #define __IPSDKIMAGEPROCESSING_BASEIMAGEZSTRIP3DSPLIT_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::BaseImageZStrip3dSplit<InputDataType,OutputDataType>::_stripParsingDirection' : class 'ipsdk::image::eStripParsingDirection' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseImageZStrip3dSplit<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 ~BaseImageZStrip3dSplit() = 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>& pImageZStrip3d) = 0;
71 
77  void initBase(const boost::shared_ptr<InputDataType>& pImage,
78  const image::eStripAllocationType& stripAllocationType,
79  const image::eStripParsingDirection& stripParsingDirection);
80 
81 private:
85  BoolResult processAttribute(processor::BaseProcessor& processor,
86  const ipUInt64 elementsStartIndex,
87  const ipUInt64 nbElements,
88  const core::BaseRequestOrigin& requestOrigin);
89 
90 // attributes
91 private:
93  image::eStripParsingDirection _stripParsingDirection;
94 
96  image::eStripAllocationType _stripAllocationType;
97 };
98 
101 
102 } // end of namespace imaproc
103 } // end of namespace ipsdk
104 
105 #pragma warning (pop)
106 
107 #endif // __IPSDKIMAGEPROCESSING_BASEIMAGEZSTRIP3DSPLIT_H__
Split operation generating image 3d strip with splitting along Z axis.
Definition: ImageStripSplitTypes.h:51
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
eImageStripSplitType getImageStripSplitType() const
retrieve image strip split operation type
Definition: BaseImageZStrip3dSplit.h:49
Base class for split operation generating image z strips 3d.
Definition: BaseImageZStrip3dSplit.h:32
OutputDataType OutputType
output data type for split operation
Definition: BaseImageZStrip3dSplit.h:37
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
Base class for image strip split operations for data dispatch.
Definition: BaseImageStripSplit.h:35