IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseImageYStrip2dWithKernel.h
1 // BaseImageYStrip2dWithKernel.h:
3 // ------------------------------
4 //
15 
16 #ifndef __IPSDKIMAGE_BASEIMAGEYSTRIP2DWITHKERNEL_H__
17 #define __IPSDKIMAGE_BASEIMAGEYSTRIP2DWITHKERNEL_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::image::BaseImageYStrip2dWithKernel::_pStartingStrip' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::image::BaseImageYStrip2dWithKernel'
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
24 #include <IPSDKImage/Fragment/Strip/BaseImageStrip.h>
25 #include <IPSDKBaseData/Buffer/HybridBuffer.h>
26 
27 namespace ipsdk {
28 namespace image {
29 
32 
34 {
35  // declare serial class
37 
38 // predefined public types
39 public:
41  static const eImageStripType::domain g_imageStripType = eImageStripType::eIST_Y2dWithKernel;
42 
43 public:
47  virtual ~BaseImageYStrip2dWithKernel() = 0;
49 
50 // methods
51 public:
53  eImageStripType getImageStripType() const;
54 
58  const eImageBufferType& getBufferType() const;
59 
60  //---------------------------
63  //---------------------------
64 
69  ipUInt64 getKernelSizeX() const;
70 
75  ipUInt64 getKernelSizeY() const;
76 
80  ipUInt64 getStartingKernelSizeX() const;
81 
85  ipUInt64 getEndingKernelSizeX() const;
86 
90  ipUInt64 getStartingKernelSizeY() const;
91 
95  ipUInt64 getEndingKernelSizeY() const;
97 
98  //-----------------------------------------
101  //-----------------------------------------
102 
105  const eStripParsingDirection& getStripParsingDirection() const;
106 
110  ipUInt64 getSizeX() const;
111 
115  ipUInt64 getStripStartOffsetY() const;
116 
120  ipUInt64 getStripSizeY() const;
121 
124  ipUInt64 getImageSizeY() const;
125 
129  const ipUInt64 getFullStripSize() const;
130 
133  const ipUInt64 getPlanStripSize() const;
134 
137  const ipUInt64 getStripNbPlans() const;
139 
140  //----------------------------------------
143  //----------------------------------------
144 
149  ipUInt64 getStartingSizeY() const;
150 
155  ipUInt64 getNbMissingStartingRows() const;
156 
161  ipUInt64 getEndingSizeY() const;
162 
167  ipUInt64 getNbMissingEndingRows() const;
169 
170  //--------------------
173  //--------------------
174 
178  ipUInt64 getZPlanIdx() const;
179 
183  ipUInt64 getCPlanIdx() const;
184 
188  ipUInt64 getTPlanIdx() const;
190 
191  //---------------------------
194  //---------------------------
195 
199  ImageYStrip2dConstPtr getStartingStripPtr() const;
200 
204  ImageYStrip2dConstPtr getMainStripPtr() const;
205 
209  ImageYStrip2dConstPtr getEndingStripPtr() const;
211 
212 protected:
222  void initBase(const ipUInt64 startingKernelSizeX,
223  const ipUInt64 endingKernelSizeX,
224  const ipUInt64 startingKernelSizeY,
225  const ipUInt64 endingKernelSizeY,
226  const ImageYStrip2dPtr& pStartingStrip,
227  const ImageYStrip2dPtr& pMainStrip,
228  const ImageYStrip2dPtr& pEndingStrip,
229  const DataIdentifierConstPtr& pImageIdentifier,
230  const DataItemMapConstPtr& pImageHeader);
231 
233  bool isBufferInitDerived() const;
234 
236  BoolResult initBufferDerived();
237 
239  void clearBufferDerived();
240 
242  eDataAccessMode retrieveAccessMode() const;
243 
244  //-----------------------------------
247  //-----------------------------------
248 
251  BoolResult readDataDerived() const;
252 
255  BoolResult writeDataDerived();
257 
259  void clearDerived();
260 
261 // attributes
262 private:
264  ipUInt64 _startingKernelSizeX;
265 
267  ipUInt64 _endingKernelSizeX;
268 
270  ipUInt64 _startingKernelSizeY;
271 
273  ipUInt64 _endingKernelSizeY;
274 
277  ImageYStrip2dPtr _pStartingStrip;
278 
280  ImageYStrip2dPtr _pMainStrip;
281 
284  ImageYStrip2dPtr _pEndingStrip;
285 };
286 
289 
290 inline eImageStripType
292 {
293  return g_imageStripType;
294 }
295 
298 
299 } // end of namespace image
300 } // end of namespace ipsdk
301 
302 #pragma warning (pop)
303 
304 #endif // __IPSDKIMAGE_BASEIMAGEYSTRIP2DWITHKERNEL_H__
Base class for image 2d strip with splitting along Y axis associated to a kernel. ...
Definition: BaseImageYStrip2dWithKernel.h:33
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
eImageStripType getImageStripType() const
retrieve image strip type
Definition: BaseImageYStrip2dWithKernel.h:291
boost::shared_ptr< const BaseImageYStrip2d > ImageYStrip2dConstPtr
Definition: ImageStripTypes.h:118
eDataAccessMode
Enumerate describing access mode for an image fragment data.
Definition: ImageFragmentTypes.h:45
static const eImageStripType::domain g_imageStripType
image strip type
Definition: BaseImageYStrip2dWithKernel.h:41
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:97
Base class for image strip fragments.
Definition: BaseImageStrip.h:34
boost::shared_ptr< const DataItemMap > DataItemMapConstPtr
shared pointer to const DataItemMap
Definition: DataItemTypes.h:170
#define IPSDKIMAGE_API
Import/Export macro for library IPSDKImage.
Definition: IPSDKImageExports.h:27
eStripParsingDirection
Enumerate describing strip parsing direction.
Definition: ImageStripTypes.h:72
boost::shared_ptr< const DataIdentifier > DataIdentifierConstPtr
shared pointer to const data identifier
Definition: DataIdentifierTypes.h:31
image 2d strip with splitting along Y axis associated to a kernel
Definition: ImageStripTypes.h:50
boost::shared_ptr< BaseImageYStrip2d > ImageYStrip2dPtr
Definition: ImageStripTypes.h:117
eImageStripType
Enumerate describing image strip type.
Definition: ImageStripTypes.h:42
eImageBufferType
types associated to image buffers
Definition: ImageTypes.h:78