IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseStaticImageZStrip3dSplit.h
1 // BaseStaticImageZStrip3dSplit.h:
3 // -------------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_BASESTATICIMAGEZSTRIP3DSPLIT_H__
16 #define __IPSDKIMAGEPROCESSING_BASESTATICIMAGEZSTRIP3DSPLIT_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::BaseStaticImageZStrip3dSplit<InputDataType,OutputDataType>::_stripParsingDirection' : class 'ipsdk::image::eStripParsingDirection' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseStaticImageZStrip3dSplit<InputDataType,OutputDataType>'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
23 #include <IPSDKImageProcessing/DataSplit/StaticStrip/BaseStaticImageStripSplit.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 ~BaseStaticImageZStrip3dSplit() = 0;
46 
47 // methods
48 public:
51  {
53  }
54 
55 protected:
58  virtual BoolResult processAttribute(processor::BaseProcessor& processor,
59  const boost::shared_ptr<OutputDataType>& pImageZStrip3d) = 0;
60 
67  void initBase(const boost::shared_ptr<InputDataType>& pImage,
68  const ElementsRangeColl& planElementInfoColl,
69  const image::eStripAllocationType& stripAllocationType,
70  const image::eStripParsingDirection& stripParsingDirection);
71 
72 private:
76  BoolResult processAttribute(processor::BaseProcessor& processor,
77  const ipUInt32 elementIdx,
78  const core::BaseRequestOrigin& requestOrigin);
79 
80 // attributes
81 protected:
84 
87 
91 };
92 
95 
96 } // end of namespace imaproc
97 } // end of namespace ipsdk
98 
99 #pragma warning (pop)
100 
101 #endif // __IPSDKIMAGEPROCESSING_BASESTATICIMAGEZSTRIP3DSPLIT_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
std::vector< ElementsRange > ElementsRangeColl
collection of strip split element informations
Definition: StaticImageStripSplitTypes.h:49
eStaticImageStripSplitType
Enumerate describing static image sstrip split type.
Definition: StaticImageStripSplitTypes.h:35
OutputDataType OutputType
output data type for split operation
Definition: BaseStaticImageZStrip3dSplit.h:38
Base class for processor class.
Definition: BaseProcessor.h:43
eStripAllocationType
Enumerate describing image strip allocation policy.
Definition: ImageStripTypes.h:88
ElementsRangeColl _planElementInfoColl
Definition: BaseStaticImageZStrip3dSplit.h:90
eStaticImageStripSplitType getStaticImageStripSplitType() const
retrieve static image strip split operation type
Definition: BaseStaticImageZStrip3dSplit.h:50
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
Base class for static split operation generating image z strips 3d.
Definition: BaseStaticImageZStrip3dSplit.h:33
Base class for static image strip split operations for data dispatch.
Definition: BaseStaticImageStripSplit.h:36
Predefined base collection types for library.
Base class for request origin description.
Definition: BaseRequestOrigin.h:28
image::eStripParsingDirection _stripParsingDirection
strip parsing direction associated to attribute
Definition: BaseStaticImageZStrip3dSplit.h:83
eStripParsingDirection
Enumerate describing strip parsing direction.
Definition: ImageStripTypes.h:72
Static split operation generating image 3d strip with splitting along Z axis.
Definition: StaticImageStripSplitTypes.h:39
image::eStripAllocationType _stripAllocationType
flag indicating whether splitted strip allocation should be forced
Definition: BaseStaticImageZStrip3dSplit.h:86
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53