IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseLineYStrip2dWithKernelParser.h
1 // BaseLineYStrip2dWithKernelParser.h:
3 // -----------------------------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_BASELINEYSTRIP2DWITHKERNELPARSER_H__
17 #define __IPSDKIMAGEPROCESSING_BASELINEYSTRIP2DWITHKERNELPARSER_H__
18 
19 // suppression warnings
20 // warning C4661: 'void ipsdk::imaproc::BaseLineYStrip2dWithKernelParser<BaseStripAttributeClassType>::init(const boost::shared_ptr<T> &)' : no suitable definition provided for explicit template instantiation request
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
25 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/BaseStripParser.h>
29 
30 namespace ipsdk {
31 namespace imaproc {
32 
35 
36 template <typename BaseStripAttributeClassType>
38 {
39 // predefined public types
40 public:
42  static const eIOStatus::domain g_attributeIO = BaseStripAttributeClassType::g_dataIOStatus;
43 
45  typedef typename BaseStripAttributeClassType::ValueType ValueType;
46 
48  typedef typename BaseStripAttributeClassType::StorageType StorageType;
49 
50 public:
54  virtual ~BaseLineYStrip2dWithKernelParser() = 0;
56 
57 // methods
58 public:
61  {
63  }
64 
70  void init(const StorageType& pImageYStrip2dWithKernel);
71 
75  void setBorder2dPolicy(const image::Border2dPolicy& border2dPolicy);
76 
79  const image::Border2dPolicy& getBorder2dPolicy() const;
80 
84  const ValueType& getImageYStrip2dWithKernel() const;
85 
86  //---------------------------
89  //---------------------------
90 
95  ipUInt64 getKernelSizeX() const;
96 
101  ipUInt64 getKernelSizeY() const;
102 
106  ipUInt64 getStartingKernelSizeX() const;
107 
111  ipUInt64 getEndingKernelSizeX() const;
112 
116  ipUInt64 getStartingKernelSizeY() const;
117 
121  ipUInt64 getEndingKernelSizeY() const;
123 
128  ipUInt64 getBufferSize() const;
129 
135  template <typename T>
136  const T* getBuffer(const ipUInt64 knlRowIdx) const
137  {
138  return static_cast<const T*>(accessBuffer(knlRowIdx));
139  }
140 
141 private:
147  const void* accessBuffer(const ipUInt64 knlRowIdx) const;
148 
150  void updateToInitDataDerived();
151 
153  void updateToMainDataDerived();
154 
156  void updateToFinalDataDerived();
157 
159  void clearDerived();
160 
161 // attributes
162 protected:
166 
169 
172 
175 
178 
181 
184 };
185 
188 
189 } // end of namespace imaproc
190 } // end of namespace ipsdk
191 
192 #pragma warning (pop)
193 
194 #endif // __IPSDKIMAGEPROCESSING_BASELINEYSTRIP2DWITHKERNELPARSER_H__
FragHybridBufferPtr _pFinalDataBuffer
buffer used to store final data to process
Definition: BaseLineYStrip2dWithKernelParser.h:183
FragHybridBufferPtr _pMainDataBuffer
buffer used to store main data to process
Definition: BaseLineYStrip2dWithKernelParser.h:180
FragHybridBufferPtr _pInitialDataBuffer
buffer used to store initial data to process
Definition: BaseLineYStrip2dWithKernelParser.h:177
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
BaseStripAttributeClassType::StorageType StorageType
storage type associated to object
Definition: BaseLineYStrip2dWithKernelParser.h:48
boost::shared_ptr< FragHybridBuffer > FragHybridBufferPtr
shared pointer to FragHybridBuffer
Definition: BufferTypes.h:82
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
eStripParserType getStripParserType() const
retrieve strip parser type
Definition: BaseLineYStrip2dWithKernelParser.h:60
Y strip 2d with kernel parser allowing line by line strip parsing.
Definition: StripParserTypes.h:38
Predefined types for buffer manipulations.
eStripParserType
Enumerate describing strip parser type.
Definition: StripParserTypes.h:30
const T * getBuffer(const ipUInt64 knlRowIdx) const
retrieve buffer associated to current operation
Definition: BaseLineYStrip2dWithKernelParser.h:136
Definition of import/export macro for library.
boost::shared_ptr< Border2dPolicy > Border2dPolicyPtr
shared pointer to Border2dPolicy
Definition: Border2dPolicyTypes.h:71
Class used to define policy for 2d strip borders management during a kernel algorithm processing...
Definition: Border2dPolicy.h:34
BaseStripAttributeClassType::ValueType ValueType
value type associated to object
Definition: BaseLineYStrip2dWithKernelParser.h:45
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
Predefined types for image strips management.
Predefined types for border 2d policy management.
image::Border2dPolicyPtr _pBorder2dPolicy
border policy associated to object
Definition: BaseLineYStrip2dWithKernelParser.h:165
Base class for y strip 2d parsed line by line and associated to a kernel.
Definition: BaseLineYStrip2dWithKernelParser.h:37
eStripParsingDirection
Enumerate describing strip parsing direction.
Definition: ImageStripTypes.h:72
Base class for objects allowing to parse strip attribute data.
Definition: BaseStripParser.h:27
FragHybridBufferPtr _pCurDataBuffer
pointer to buffer associated to data currently processed
Definition: BaseLineYStrip2dWithKernelParser.h:174
StorageType _pImageYStrip2dWithKernel
shared pointer to y strip 2d with kernel
Definition: BaseLineYStrip2dWithKernelParser.h:168
image::eStripParsingDirection _stripParsingDirection
strip parsing direction
Definition: BaseLineYStrip2dWithKernelParser.h:171