IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseBorder3d.h
1 // BaseBorder3d.h:
3 // ---------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_BASEBORDER3D_H__
17 #define __IPSDKIMAGEPROCESSING_BASEBORDER3D_H__
18 
19 // suppression warnings
20 // warning C4275: non dll-interface class 'boost::noncopyable_::noncopyable' used as base for dll-interface class 'ipsdk::imaproc::BaseBorder3d<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>
34 struct Parser3dInfo;
35 
38 
39 template <typename T>
40 class IPSDKIMAGEPROCESSING_API BaseBorder3d : public boost::noncopyable
41 {
42 public:
45  BaseBorder3d();
46  virtual ~BaseBorder3d() = 0;
48 
49 // methods
50 public:
52  virtual image::eBorder3dType getBorderType() const = 0;
53 
58  virtual void prepareInitialBorderColumns(const Parser3dInfo<T>& info,
59  const ipUInt64 stripPlanIdx,
60  const ipUInt64 stripRowIdx,
61  T* pRowData) = 0;
62 
67  virtual void prepareFinalBorderColumns(const Parser3dInfo<T>& info,
68  const ipUInt64 stripPlanIdx,
69  const ipUInt64 stripRowIdx,
70  T* pRowData) = 0;
71 
76  virtual void prepareInitialBorderRow(const Parser3dInfo<T>& info,
77  const ipUInt64 stripPlanIdx,
78  const ipUInt64 stripRowIdx,
79  T* pRowData) = 0;
80 
85  virtual void prepareMainBorderRow(const Parser3dInfo<T>& info,
86  const ipUInt64 stripPlanIdx,
87  const ipUInt64 stripRowIdx,
88  T*& pRowData) = 0;
89 
94  virtual void prepareFinalBorderRow(const Parser3dInfo<T>& info,
95  const ipUInt64 stripPlanIdx,
96  const ipUInt64 stripRowIdx,
97  T* pRowData) = 0;
98 
99 // attributes
100 protected:
101 
102 };
103 
106 
107 } // end of namespace imaproc
108 } // end of namespace ipsdk
109 
110 #pragma warning (pop)
111 
112 #endif // __IPSDKIMAGEPROCESSING_BASEBORDER3D_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.
eBorder3dType
Enumerate describing image data preparator 3d border type.
Definition: Border3dPolicyTypes.h:35
Base types for multiplatform compatibility.
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
Predefined types for border 3d policy management.
Information structure for z strip 3d with kernel data parsing.
Definition: BaseBorder3d.h:34
Base class for objects allowing to prepare y strip 3d borders during a kernel algorithm processing...
Definition: BaseBorder3d.h:40