IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseImageZStrip3dWithKernel.h
1 // BaseImageZStrip3dWithKernel.h:
3 // ------------------------------
4 //
15 
16 #ifndef __IPSDKIMAGE_BASEIMAGEZSTRIP3DWITHKERNEL_H__
17 #define __IPSDKIMAGE_BASEIMAGEZSTRIP3DWITHKERNEL_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::image::BaseImageZStrip3dWithKernel::_pStartingStrip' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::image::BaseImageZStrip3dWithKernel'
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_Z3dWithKernel;
42 
43 public:
47  virtual ~BaseImageZStrip3dWithKernel() = 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 
81  ipUInt64 getKernelSizeZ() const;
82 
86  ipUInt64 getStartingKernelSizeX() const;
87 
91  ipUInt64 getEndingKernelSizeX() const;
92 
96  ipUInt64 getStartingKernelSizeY() const;
97 
101  ipUInt64 getEndingKernelSizeY() const;
102 
106  ipUInt64 getStartingKernelSizeZ() const;
107 
111  ipUInt64 getEndingKernelSizeZ() const;
113 
114  //-----------------------------------------
117  //-----------------------------------------
118 
122  const eStripParsingDirection& getStripParsingDirection() const;
123 
127  ipUInt64 getSizeX() const;
128 
132  ipUInt64 getSizeY() const;
133 
137  ipUInt64 getStripStartOffsetZ() const;
138 
142  ipUInt64 getStripSizeZ() const;
143 
146  ipUInt64 getImageSizeZ() const;
147 
151  const ipUInt64 getFullStripSize() const;
152 
155  const ipUInt64 getPlanStripSize() const;
156 
159  const ipUInt64 getStripNbPlans() const;
161 
162  //----------------------------------------
165  //----------------------------------------
166 
171  ipUInt64 getStartingSizeZ() const;
172 
177  ipUInt64 getNbMissingStartingPlans() const;
178 
183  ipUInt64 getEndingSizeZ() const;
184 
189  ipUInt64 getNbMissingEndingPlans() const;
191 
192  //--------------------
195  //--------------------
196 
200  ipUInt64 getCPlanIdx() const;
201 
205  ipUInt64 getTPlanIdx() const;
207 
208  //---------------------------
211  //---------------------------
212 
216  ImageZStrip3dConstPtr getStartingStripPtr() const;
217 
221  ImageZStrip3dConstPtr getMainStripPtr() const;
222 
226  ImageZStrip3dConstPtr getEndingStripPtr() const;
228 
229 protected:
239  void initBase(const ipUInt64 startingKernelSizeX,
240  const ipUInt64 endingKernelSizeX,
241  const ipUInt64 startingKernelSizeY,
242  const ipUInt64 endingKernelSizeY,
243  const ipUInt64 startingKernelSizeZ,
244  const ipUInt64 endingKernelSizeZ,
245  const ImageZStrip3dPtr& pStartingStrip,
246  const ImageZStrip3dPtr& pMainStrip,
247  const ImageZStrip3dPtr& pEndingStrip,
248  const DataIdentifierConstPtr& pImageIdentifier,
249  const DataItemMapConstPtr& pImageHeader);
250 
252  bool isBufferInitDerived() const;
253 
255  BoolResult initBufferDerived();
256 
258  void clearBufferDerived();
259 
261  eDataAccessMode retrieveAccessMode() const;
262 
263  //-----------------------------------
266  //-----------------------------------
267 
270  BoolResult readDataDerived() const;
271 
274  BoolResult writeDataDerived();
276 
278  void clearDerived();
279 
280 // attributes
281 private:
283  ipUInt64 _startingKernelSizeX;
284 
286  ipUInt64 _endingKernelSizeX;
287 
289  ipUInt64 _startingKernelSizeY;
290 
292  ipUInt64 _endingKernelSizeY;
293 
295  ipUInt64 _startingKernelSizeZ;
296 
298  ipUInt64 _endingKernelSizeZ;
299 
302  ImageZStrip3dPtr _pStartingStrip;
303 
305  ImageZStrip3dPtr _pMainStrip;
306 
309  ImageZStrip3dPtr _pEndingStrip;
310 };
311 
314 
315 inline eImageStripType
317 {
318  return g_imageStripType;
319 }
320 
323 
324 } // end of namespace image
325 } // end of namespace ipsdk
326 
327 #pragma warning (pop)
328 
329 #endif // __IPSDKIMAGE_BASEIMAGEZSTRIP3DWITHKERNEL_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
eDataAccessMode
Enumerate describing access mode for an image fragment data.
Definition: ImageFragmentTypes.h:45
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
boost::shared_ptr< BaseImageZStrip3d > ImageZStrip3dPtr
Definition: ImageStripTypes.h:147
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:97
static const eImageStripType::domain g_imageStripType
image strip type
Definition: BaseImageZStrip3dWithKernel.h:41
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
eImageStripType getImageStripType() const
retrieve image strip type
Definition: BaseImageZStrip3dWithKernel.h:316
#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 3d strip with splitting along Z axis associated to a kernel
Definition: ImageStripTypes.h:60
Base class for image 3d strip with splitting along Z axis associated to a kernel. ...
Definition: BaseImageZStrip3dWithKernel.h:33
eImageStripType
Enumerate describing image strip type.
Definition: ImageStripTypes.h:42
boost::shared_ptr< const BaseImageZStrip3d > ImageZStrip3dConstPtr
Definition: ImageStripTypes.h:148
eImageBufferType
types associated to image buffers
Definition: ImageTypes.h:78