IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseLineZStrip3dWithKernelParser.h
1 // BaseLineZStrip3dWithKernelParser.h:
3 // -----------------------------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_BASELINEZSTRIP3DWITHKERNELPARSER_H__
17 #define __IPSDKIMAGEPROCESSING_BASELINEZSTRIP3DWITHKERNELPARSER_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::imaproc::BaseLineZStrip3dWithKernelParser<BaseStripAttributeClassType>::_pBorder3dPolicy' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseLineZStrip3dWithKernelParser<BaseStripAttributeClassType>'
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
25 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/BaseStripParser.h>
28 
29 namespace ipsdk {
30 namespace imaproc {
31 
34 
35 template <typename BaseStripAttributeClassType>
37 {
38 // predefined public types
39 public:
41  static const eIOStatus::domain g_attributeIO = BaseStripAttributeClassType::g_dataIOStatus;
42 
44  typedef typename BaseStripAttributeClassType::ValueType ValueType;
45 
47  typedef typename BaseStripAttributeClassType::StorageType StorageType;
48 
49 public:
53  virtual ~BaseLineZStrip3dWithKernelParser() = 0;
55 
56 // methods
57 public:
60  {
62  }
63 
69  void init(const StorageType& pImageZStrip3dWithKernel);
70 
74  void setBorder3dPolicy(const image::Border3dPolicy& border3dPolicy);
75 
78  const image::Border3dPolicy& getBorder3dPolicy() const;
79 
83  const ValueType& getImageZStrip3dWithKernel() const;
84 
85  //---------------------------
88  //---------------------------
89 
94  ipUInt64 getKernelSizeX() const;
95 
100  ipUInt64 getKernelSizeY() const;
101 
106  ipUInt64 getKernelSizeZ() const;
107 
111  ipUInt64 getStartingKernelSizeX() const;
112 
116  ipUInt64 getEndingKernelSizeX() const;
117 
121  ipUInt64 getStartingKernelSizeY() const;
122 
126  ipUInt64 getEndingKernelSizeY() const;
127 
131  ipUInt64 getStartingKernelSizeZ() const;
132 
136  ipUInt64 getEndingKernelSizeZ() const;
138 
143  virtual ipUInt64 getBufferSize() const = 0;
144 
152  template <typename T>
153  const T* getBuffer(const ipUInt64 knlPlanIdx,
154  const ipUInt64 knlRowIdx) const
155  {
156  return static_cast<const T*>(accessBuffer(knlPlanIdx, knlRowIdx));
157  }
158 
159 protected:
167  virtual const void* accessBuffer(const ipUInt64 knlPlanIdx,
168  const ipUInt64 knlRowIdx) const = 0;
169 
171  virtual void clearDerived();
172 
173 // attributes
174 protected:
178 
181 
184 };
185 
188 
189 } // end of namespace imaproc
190 } // end of namespace ipsdk
191 
192 #pragma warning (pop)
193 
194 #endif // __IPSDKIMAGEPROCESSING_BASELINEZSTRIP3DWITHKERNELPARSER_H__
boost::shared_ptr< Border3dPolicy > Border3dPolicyPtr
shared pointer to Border3dPolicy
Definition: Border3dPolicyTypes.h:66
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
image::eStripParsingDirection _stripParsingDirection
strip parsing direction
Definition: BaseLineZStrip3dWithKernelParser.h:183
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
eStripParserType
Enumerate describing strip parser type.
Definition: StripParserTypes.h:30
Definition of import/export macro for library.
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
Predefined types for border 3d policy management.
Predefined types for image strips management.
Z strip 3d with kernel parser allowing line by line strip parsing.
Definition: StripParserTypes.h:48
BaseStripAttributeClassType::StorageType StorageType
storage type associated to object
Definition: BaseLineZStrip3dWithKernelParser.h:47
image::Border3dPolicyPtr _pBorder3dPolicy
border policy associated to object
Definition: BaseLineZStrip3dWithKernelParser.h:177
StorageType _pImageZStrip3dWithKernel
shared pointer to z strip 3d with kernel
Definition: BaseLineZStrip3dWithKernelParser.h:180
eStripParsingDirection
Enumerate describing strip parsing direction.
Definition: ImageStripTypes.h:72
Base class for z strip 3d parsed line by line and associated to a kernel.
Definition: BaseLineZStrip3dWithKernelParser.h:36
Class used to define policy for 3d strip borders management during a kernel algorithm processing...
Definition: Border3dPolicy.h:34
Base class for objects allowing to parse strip attribute data.
Definition: BaseStripParser.h:27
BaseStripAttributeClassType::ValueType ValueType
value type associated to object
Definition: BaseLineZStrip3dWithKernelParser.h:44
const T * getBuffer(const ipUInt64 knlPlanIdx, const ipUInt64 knlRowIdx) const
retrieve buffer associated to current operation
Definition: BaseLineZStrip3dWithKernelParser.h:153
eStripParserType getStripParserType() const
retrieve strip parser type
Definition: BaseLineZStrip3dWithKernelParser.h:59