IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ValuedBorder3d.h
1 // ValuedBorder3d.h:
3 // -----------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_VALUEDBORDER3D_H__
17 #define __IPSDKIMAGEPROCESSING_VALUEDBORDER3D_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::imaproc::ValuedBorder3d<T>::_pMainBorderRow' : class 'boost::scoped_array<T>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::ValuedBorder3d<T>'
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
24 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineZStrip3dWithKernel/Border/BaseBorder3d.h>
25 #include <boost/scoped_array.hpp>
26 
27 namespace ipsdk {
28 namespace imaproc {
29 
32 
33 template <typename T>
35 {
36 public:
40  ~ValuedBorder3d();
42 
43 // methods
44 public:
46  image::eBorder3dType getBorderType() const;
47 
50  void setFillValue(const T fillValue);
51  T getFillValue() const;
53 
58  void prepareInitialBorderColumns(const Parser3dInfo<T>& info,
59  const ipUInt64 stripPlanIdx,
60  const ipUInt64 stripRowIdx,
61  T* pRowData);
62 
67  void prepareFinalBorderColumns(const Parser3dInfo<T>& info,
68  const ipUInt64 stripPlanIdx,
69  const ipUInt64 stripRowIdx,
70  T* pRowData);
71 
76  void prepareInitialBorderRow(const Parser3dInfo<T>& info,
77  const ipUInt64 stripPlanIdx,
78  const ipUInt64 stripRowIdx,
79  T* pRowData);
80 
85  void prepareMainBorderRow(const Parser3dInfo<T>& info,
86  const ipUInt64 stripPlanIdx,
87  const ipUInt64 stripRowIdx,
88  T*& pRowData);
89 
94  void prepareFinalBorderRow(const Parser3dInfo<T>& info,
95  const ipUInt64 stripPlanIdx,
96  const ipUInt64 stripRowIdx,
97  T* pRowData);
98 
99 // attributes
100 protected:
104 
106  boost::scoped_array<T> _pMainBorderRow;
107 };
108 
111 
112 template <typename T>
115 {
117 }
118 
119 template <typename T>
120 inline void
122 {
123  _fillValue = fillValue;
124 }
125 
126 template <typename T>
127 inline T
129 {
130  return _fillValue;
131 }
132 
135 
136 } // end of namespace imaproc
137 } // end of namespace ipsdk
138 
139 #pragma warning (pop)
140 
141 #endif // __IPSDKIMAGEPROCESSING_VALUEDBORDER3D_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
void setFillValue(const T fillValue)
access to fill value used for border extension operation
Definition: ValuedBorder3d.h:121
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
T _fillValue
fill value used for border extension operation
Definition: ValuedBorder3d.h:103
boost::scoped_array< T > _pMainBorderRow
scoped array used to store starting and ending main border rows
Definition: ValuedBorder3d.h:106
eBorder3dType
Enumerate describing image data preparator 3d border type.
Definition: Border3dPolicyTypes.h:35
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
image::eBorder3dType getBorderType() const
retrieve border type
Definition: ValuedBorder3d.h:114
Information structure for z strip 3d with kernel data parsing.
Definition: BaseBorder3d.h:34
T getFillValue() const
access to fill value used for border extension operation
Definition: ValuedBorder3d.h:128
Border values set to a constant given value.
Definition: Border3dPolicyTypes.h:37
Object allowing to set border values to a constant given value during a kernel algorithm processing...
Definition: ValuedBorder3d.h:34
Base class for objects allowing to prepare y strip 3d borders during a kernel algorithm processing...
Definition: BaseBorder3d.h:40