IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ValuedBorderXStrip2d.h
1 // ValuedBorderXStrip2d.h:
3 // -----------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_VALUEDBORDERXSTRIP2D_H__
17 #define __IPSDKIMAGEPROCESSING_VALUEDBORDERXSTRIP2D_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::imaproc::ValuedBorderXStrip2d<T>::_pMainBorderRow' : class 'boost::scoped_array<T>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::ValuedBorderXStrip2d<T>'
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
24 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineXStrip2dWithKernel/Border/BaseBorderXStrip2d.h>
25 #include <boost/scoped_array.hpp>
26 
27 namespace ipsdk {
28 namespace imaproc {
29 
32 
33 template <typename T>
35 {
36 public:
42 
43 // methods
44 public:
46  image::eBorder2dType getBorderType() const;
47 
50  void setFillValue(const T fillValue);
51  T getFillValue() const;
53 
58  void prepareInitialBorderColumns(const LineXStrip2dWithKernelParserInfo<T>& info,
59  const ipUInt64 stripRowIdx,
60  T* pRowData);
61 
66  void prepareFinalBorderColumns(const LineXStrip2dWithKernelParserInfo<T>& info,
67  const ipUInt64 stripRowIdx,
68  T* pRowData);
69 
74  void prepareInitialBorderRow(const LineXStrip2dWithKernelParserInfo<T>& info,
75  const ipUInt64 stripRowIdx,
76  T* pRowData);
77 
82  void prepareMainBorderRow(const LineXStrip2dWithKernelParserInfo<T>& info,
83  const ipUInt64 stripRowIdx,
84  T*& pRowData);
85 
90  void prepareFinalBorderRow(const LineXStrip2dWithKernelParserInfo<T>& info,
91  const ipUInt64 stripRowIdx,
92  T* pRowData);
93 
94 // attributes
95 protected:
99 
101  boost::scoped_array<T> _pMainBorderRow;
102 };
103 
106 
107 template <typename T>
110 {
112 }
113 
114 template <typename T>
115 inline void
117 {
118  _fillValue = fillValue;
119 }
120 
121 template <typename T>
122 inline T
124 {
125  return _fillValue;
126 }
127 
130 
131 } // end of namespace imaproc
132 } // end of namespace ipsdk
133 
134 #pragma warning (pop)
135 
136 #endif // __IPSDKIMAGEPROCESSING_VALUEDBORDERXSTRIP2D_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Base class for objects allowing to prepare x strip 2d borders during a kernel algorithm processing...
Definition: BaseBorderXStrip2d.h:40
Object allowing to set border values to a constant given value during a kernel algorithm processing...
Definition: ValuedBorderXStrip2d.h:34
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
void setFillValue(const T fillValue)
access to fill value used for border extension operation
Definition: ValuedBorderXStrip2d.h:116
Information structure for x strip 2d with kernel data parsing.
Definition: BaseBorderXStrip2d.h:34
Border values set to a constant given value.
Definition: Border2dPolicyTypes.h:37
T _fillValue
fill value used for border extension operation
Definition: ValuedBorderXStrip2d.h:98
boost::scoped_array< T > _pMainBorderRow
scoped array used to store starting and ending main border rows
Definition: ValuedBorderXStrip2d.h:101
eBorder2dType
Enumerate describing image data preparator 2d border type.
Definition: Border2dPolicyTypes.h:35
T getFillValue() const
access to fill value used for border extension operation
Definition: ValuedBorderXStrip2d.h:123
image::eBorder2dType getBorderType() const
retrieve border type
Definition: ValuedBorderXStrip2d.h:109