IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseLineXStrip2dWithKernelParser.h
1 // BaseLineXStrip2dWithKernelParser.h:
3 // -----------------------------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_BASELINEXSTRIP2DWITHKERNELPARSER_H__
17 #define __IPSDKIMAGEPROCESSING_BASELINEXSTRIP2DWITHKERNELPARSER_H__
18 
19 // suppression warnings
20 // warning C4661: 'void ipsdk::imaproc::BaseLineXStrip2dWithKernelParser<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 ~BaseLineXStrip2dWithKernelParser() = 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& getImageXStrip2dWithKernel() 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 
158 // attributes
159 protected:
163 
166 
169 
172 
175 
178 
181 };
182 
185 
186 } // end of namespace imaproc
187 } // end of namespace ipsdk
188 
189 #pragma warning (pop)
190 
191 #endif // __IPSDKIMAGEPROCESSING_BASELINEXSTRIP2DWITHKERNELPARSER_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
FragHybridBufferPtr _pInitialDataBuffer
buffer used to store initial data to process
Definition: BaseLineXStrip2dWithKernelParser.h:174
boost::shared_ptr< FragHybridBuffer > FragHybridBufferPtr
shared pointer to FragHybridBuffer
Definition: BufferTypes.h:82
Base class for x strip 2d parsed line by line and associated to a kernel.
Definition: BaseLineXStrip2dWithKernelParser.h:37
image::eStripParsingDirection _stripParsingDirection
strip parsing direction
Definition: BaseLineXStrip2dWithKernelParser.h:168
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
FragHybridBufferPtr _pCurDataBuffer
pointer to buffer associated to data currently processed
Definition: BaseLineXStrip2dWithKernelParser.h:171
const T * getBuffer(const ipUInt64 knlRowIdx) const
retrieve buffer associated to current operation
Definition: BaseLineXStrip2dWithKernelParser.h:136
StorageType _pImageXStrip2dWithKernel
shared pointer to x strip 2d with kernel
Definition: BaseLineXStrip2dWithKernelParser.h:165
Predefined types for buffer manipulations.
eStripParserType
Enumerate describing strip parser type.
Definition: StripParserTypes.h:30
FragHybridBufferPtr _pMainDataBuffer
buffer used to store main data to process
Definition: BaseLineXStrip2dWithKernelParser.h:177
Definition of import/export macro for library.
BaseStripAttributeClassType::StorageType StorageType
storage type associated to object
Definition: BaseLineXStrip2dWithKernelParser.h:48
image::Border2dPolicyPtr _pBorder2dPolicy
border policy associated to object
Definition: BaseLineXStrip2dWithKernelParser.h:162
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
#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.
FragHybridBufferPtr _pFinalDataBuffer
buffer used to store final data to process
Definition: BaseLineXStrip2dWithKernelParser.h:180
eStripParserType getStripParserType() const
retrieve strip parser type
Definition: BaseLineXStrip2dWithKernelParser.h:60
BaseStripAttributeClassType::ValueType ValueType
value type associated to object
Definition: BaseLineXStrip2dWithKernelParser.h:45
eStripParsingDirection
Enumerate describing strip parsing direction.
Definition: ImageStripTypes.h:72
Base class for objects allowing to parse strip attribute data.
Definition: BaseStripParser.h:27
X strip 2d with kernel parser allowing line by line strip parsing.
Definition: StripParserTypes.h:34