IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseBorderXStrip2d.h
1 // BaseBorderXStrip2d.h:
3 // ---------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_BASEBORDERXSTRIP2D_H__
17 #define __IPSDKIMAGEPROCESSING_BASEBORDERXSTRIP2D_H__
18 
19 // suppression warnings
20 // warning C4275: non dll-interface class 'boost::noncopyable_::noncopyable' used as base for dll-interface class 'ipsdk::imaproc::BaseBorderXStrip2d<T>'
21 #pragma warning (push)
22 #pragma warning (disable : 4275)
23 
26 #include <IPSDKUtil/BaseTypes.h>
28 #include <boost/noncopyable.hpp>
29 
30 namespace ipsdk {
31 namespace imaproc {
32 
33 template <typename T>
35 
38 
39 template <typename T>
40 class IPSDKIMAGEPROCESSING_API BaseBorderXStrip2d : public boost::noncopyable
41 {
42 public:
46  virtual ~BaseBorderXStrip2d() = 0;
48 
49 // methods
50 public:
52  virtual image::eBorder2dType getBorderType() const = 0;
53 
58  virtual void prepareInitialBorderColumns(const LineXStrip2dWithKernelParserInfo<T>& info,
59  const ipUInt64 stripRowIdx,
60  T* pRowData) = 0;
61 
66  virtual void prepareFinalBorderColumns(const LineXStrip2dWithKernelParserInfo<T>& info,
67  const ipUInt64 stripRowIdx,
68  T* pRowData) = 0;
69 
74  virtual void prepareInitialBorderRow(const LineXStrip2dWithKernelParserInfo<T>& info,
75  const ipUInt64 stripRowIdx,
76  T* pRowData) = 0;
77 
82  virtual void prepareMainBorderRow(const LineXStrip2dWithKernelParserInfo<T>& info,
83  const ipUInt64 stripRowIdx,
84  T*& pRowData) = 0;
85 
90  virtual void prepareFinalBorderRow(const LineXStrip2dWithKernelParserInfo<T>& info,
91  const ipUInt64 stripRowIdx,
92  T* pRowData) = 0;
93 
94 // attributes
95 protected:
96 
97 };
98 
101 
102 } // end of namespace imaproc
103 } // end of namespace ipsdk
104 
105 #pragma warning (pop)
106 
107 #endif // __IPSDKIMAGEPROCESSING_BASEBORDERXSTRIP2D_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Predefined types for buffer manipulations.
Definition of import/export macro for library.
Base class for objects allowing to prepare x strip 2d borders during a kernel algorithm processing...
Definition: BaseBorderXStrip2d.h:40
Base types for multiplatform compatibility.
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
Predefined types for border 2d policy management.
Information structure for x strip 2d with kernel data parsing.
Definition: BaseBorderXStrip2d.h:34
eBorder2dType
Enumerate describing image data preparator 2d border type.
Definition: Border2dPolicyTypes.h:35