IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
YStrip2dData.h
1 // YStrip2dData.h:
3 // ---------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_YSTRIP2DDATA_H__
17 #define __IPSDKIMAGEPROCESSING_YSTRIP2DDATA_H__
18 
19 // suppression warnings
20 // warning C4275: non dll-interface class 'boost::noncopyable_::noncopyable' used as base for dll-interface class 'ipsdk::imaproc::YStrip2dData<T>'
21 // warning C4251: 'ipsdk::imaproc::YStrip2dData<T>::_pCurDataBuffer' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::YStrip2dData<T>'
22 #pragma warning (push)
23 #pragma warning (disable : 4275 4251)
24 
28 #include <IPSDKUtil/BaseTypes.h>
29 #include <boost/noncopyable.hpp>
30 
31 namespace ipsdk {
32 namespace imaproc {
33 
34 template <typename T>
35 class BaseBorder3d;
36 template <typename T>
37 struct Parser3dInfo;
38 
41 
42 template <typename T>
43 class IPSDKIMAGEPROCESSING_API YStrip2dData : public boost::noncopyable
44 {
45 // predefined public types
46 public:
48  typedef boost::shared_ptr<BaseBorder3d<T> > Border3dPtr;
49 
50 public:
53  YStrip2dData();
54  ~YStrip2dData();
56 
57 // methods
58 public:
60  bool isInit() const;
61 
63  void init(const Parser3dInfo<T>& info,
64  const Border3dPtr& pBorder3d);
65 
69  void setPlanData(const Parser3dInfo<T>& info,
70  const ipUInt64 stripPlanIdx);
71 
75  bool isPlanDataSet() const;
76 
78  inline void updateToInitialData()
79  {
80  _pCurDataBuffer = _pInitialColBuffer.get();
81  }
82 
84  inline void updateToMainData()
85  {
86  _pCurDataBuffer = _pMainColBuffer.get();
87  }
88 
90  inline void updateToFinalData()
91  {
92  _pCurDataBuffer = _pFinalColBuffer.get();
93  }
94 
99  ipUInt64 getBufferSize() const;
100 
106  const void* getSafeBuffer(const ipUInt64 rowIdx) const;
107 
111  const void* getBuffer(const ipUInt64 rowIdx) const;
112 
113 // attributes
114 protected:
117 
120 
123 
126 
129 
131  bool _bInit;
132 };
133 
136 
137 template <typename T>
138 inline bool
140 {
141  return _bInit;
142 }
143 
146 
147 } // end of namespace imaproc
148 } // end of namespace ipsdk
149 
150 #pragma warning (pop)
151 
152 #endif // __IPSDKIMAGEPROCESSING_YSTRIP2DDATA_H__
FragHybridBufferPtr _pFinalColBuffer
buffer used to store final columns of data to process
Definition: YStrip2dData.h:125
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
FragHybridBufferPtr _pInitialColBuffer
buffer used to store initial columns of data to process
Definition: YStrip2dData.h:119
boost::shared_ptr< FragHybridBuffer > FragHybridBufferPtr
shared pointer to FragHybridBuffer
Definition: BufferTypes.h:82
bool _bInit
object initialization flag
Definition: YStrip2dData.h:131
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
bool isInit() const
check for object initialization
Definition: YStrip2dData.h:139
Predefined types for buffer manipulations.
Border3dPtr _pBorder3d
object allowing to manage processed strip borders
Definition: YStrip2dData.h:128
Definition of import/export macro for library.
Class allowing to encapsulate an hybrid form of fragment buffer.
Definition: FragHybridBuffer.h:53
void updateToFinalData()
update processed data to final data
Definition: YStrip2dData.h:90
FragHybridBuffer * _pCurDataBuffer
pointer to buffer associated to data currently processed
Definition: YStrip2dData.h:116
Base types for multiplatform compatibility.
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
Predefined types for image strips management.
void updateToMainData()
update processed data to main data
Definition: YStrip2dData.h:84
Information structure for z strip 3d with kernel data parsing.
Definition: BaseBorder3d.h:34
FragHybridBufferPtr _pMainColBuffer
buffer used to store main columns of data to process
Definition: YStrip2dData.h:122
Class encapsulating y strip 2d data used to process plans associated to z strip 3d with kernel...
Definition: LineZStrip3dWithKernelParser.h:34
void updateToInitialData()
update processed data to initial data
Definition: YStrip2dData.h:78
boost::shared_ptr< BaseBorder3d< T > > Border3dPtr
associated boder preparator shared pointer type
Definition: YStrip2dData.h:48