IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
LineZStrip3dWithKernelParser.h
1 // LineZStrip3dWithKernelParser.h:
3 // -------------------------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_LINEZSTRIP3DWITHKERNELPARSER_H__
17 #define __IPSDKIMAGEPROCESSING_LINEZSTRIP3DWITHKERNELPARSER_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::imaproc::LineZStrip3dWithKernelParser<T,BaseStripAttributeClassType>::_pBorder3d' : class 'boost::shared_ptr<ipsdk::imaproc::BaseBorder3d<T>>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::LineZStrip3dWithKernelParser<T,BaseStripAttributeClassType>'
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
24 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineZStrip3dWithKernel/BaseLineZStrip3dWithKernelParser.h>
25 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineZStrip3dWithKernel/Info/Parser3dInfo.h>
26 #include <deque>
27 
28 namespace ipsdk {
29 namespace imaproc {
30 
31 template <typename T>
32 class BaseBorder3d;
33 template <typename T>
35 
38 
39 template <typename T, typename BaseStripAttributeClassType>
41 {
42 // predefined public types
43 public:
45  typedef boost::shared_ptr<BaseBorder3d<T> > Border3dPtr;
46 
47 public:
53 
54 // methods
55 public:
60  ipUInt64 getBufferSize() const;
61 
62 private:
70  const void* accessBuffer(const ipUInt64 knlPlanIdx,
71  const ipUInt64 knlRowIdx) const;
72 
74  void initDataDerived(const ipUInt64 nbInitData,
75  const ipUInt64 nbMainData,
76  const ipUInt64 nbFinalData,
77  const ipUInt64 nbRealFinalData,
78  const ipReal64 unAlignedValue);
79 
82  void prepareDataDerived(const ipUInt64 elementIdx);
83 
85  void updateToInitDataDerived();
86 
88  void updateToMainDataDerived();
89 
91  void updateToFinalDataDerived();
92 
94  void createBorder3d();
95 
97  void clearDerived();
98 
99 // attributes
100 protected:
103 
106 
109 
112 
114  typedef boost::shared_ptr<YStrip2dData<T> > YStrip2dDataPtr;
115 
117  typedef std::deque<YStrip2dDataPtr> YStrip2dDataColl;
118 
120  typedef boost::shared_ptr<YStrip2dDataColl> YStrip2dDataCollPtr;
121 
125 };
126 
129 
130 } // end of namespace imaproc
131 } // end of namespace ipsdk
132 
133 #pragma warning (pop)
134 
135 #endif // __IPSDKIMAGEPROCESSING_LINEZSTRIP3DWITHKERNELPARSER_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
YStrip2dDataCollPtr _pYStrip2dDataColl
Definition: LineZStrip3dWithKernelParser.h:124
Concrete class for z strip 3d parsed line by line and associated to a kernel.
Definition: LineZStrip3dWithKernelParser.h:40
ipUInt64 _curStripPlanIdx
index of current strip plan index
Definition: LineZStrip3dWithKernelParser.h:108
Parser3dInfo< T > _info
information structure for processing
Definition: LineZStrip3dWithKernelParser.h:102
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Border3dPtr _pBorder3d
border manager associated to object
Definition: LineZStrip3dWithKernelParser.h:105
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
boost::shared_ptr< YStrip2dDataColl > YStrip2dDataCollPtr
shared pointer to collection of y strip 2d data
Definition: LineZStrip3dWithKernelParser.h:120
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
boost::shared_ptr< YStrip2dData< T > > YStrip2dDataPtr
shared pointer to y strip 2d data
Definition: LineZStrip3dWithKernelParser.h:114
Information structure for z strip 3d with kernel data parsing.
Definition: BaseBorder3d.h:34
std::deque< YStrip2dDataPtr > YStrip2dDataColl
collection of y strip 2d data shared pointer
Definition: LineZStrip3dWithKernelParser.h:117
boost::shared_ptr< BaseBorder3d< T > > Border3dPtr
shared pointer to BaseBorder3d
Definition: LineZStrip3dWithKernelParser.h:45
Base class for z strip 3d parsed line by line and associated to a kernel.
Definition: BaseLineZStrip3dWithKernelParser.h:36
ipUInt64 _curStripRowIdx
index of current strip row index
Definition: LineZStrip3dWithKernelParser.h:111
Class encapsulating y strip 2d data used to process plans associated to z strip 3d with kernel...
Definition: LineZStrip3dWithKernelParser.h:34