IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseImageZSubStrip3dSplit.h
1 // BaseImageZSubStrip3dSplit.h:
3 // -------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_BASEIMAGEZSUBSTRIP3DSPLIT_H__
16 #define __IPSDKIMAGEPROCESSING_BASEIMAGEZSUBSTRIP3DSPLIT_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::BaseImageZSubStrip3dSplit<InputDataType,OutputDataType>::_stripParsingAllocationType' : class 'ipsdk::image::eStripParsingAllocationType' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseImageZSubStrip3dSplit<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 ~BaseImageZSubStrip3dSplit() = 0;
45 
46 // methods
47 public:
50  {
52  }
53 
58  const image::eStripAllocationType& getStripAllocationType() const;
59 
60 protected:
63  virtual BoolResult processAttribute(processor::BaseProcessor& processor,
64  const boost::shared_ptr<OutputDataType>& pImageZStrip3d) = 0;
65 
71  void initBase(const boost::shared_ptr<InputDataType>& pImage,
72  const image::eStripAllocationType& stripAllocationType,
73  ipUInt64 zOffset,
74  ipUInt64 nbZPlans);
75 
76 private:
80  BoolResult processAttribute(processor::BaseProcessor& processor,
81  const ipUInt64 elementsStartIndex,
82  const ipUInt64 nbElements,
83  const core::BaseRequestOrigin& requestOrigin);
84 
85 // attributes
86 private:
88  image::eStripAllocationType _stripAllocationType;
89 
90  ipUInt64 _zOffset;
91  ipUInt64 _nbZPlans;
92 };
93 
96 
97 } // end of namespace imaproc
98 } // end of namespace ipsdk
99 
100 #pragma warning (pop)
101 
102 #endif // __IPSDKIMAGEPROCESSING_BASEIMAGEZSUBSTRIP3DSPLIT_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
eImageStripSplitType getImageStripSplitType() const
retrieve image strip split operation type
Definition: BaseImageZSubStrip3dSplit.h:49
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
Base class for split operation generating image z strips 3d from a subset of contiguous z-plans...
Definition: BaseImageZSubStrip3dSplit.h:32
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
OutputDataType OutputType
output data type for split operation
Definition: BaseImageZSubStrip3dSplit.h:37
Split operation generating sequence image 3d strip with splitting along Z axis on a subset of contigu...
Definition: ImageStripSplitTypes.h:57
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