IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseImageXStrip2dWithKernel.h
1 // BaseImageXStrip2dWithKernel.h:
3 // ------------------------------
4 //
15 
16 #ifndef __IPSDKIMAGE_BASEIMAGEXSTRIP2DWITHKERNEL_H__
17 #define __IPSDKIMAGE_BASEIMAGEXSTRIP2DWITHKERNEL_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::image::BaseImageXStrip2dWithKernel::_pStartingStrip' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::image::BaseImageXStrip2dWithKernel'
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
24 #include <IPSDKImage/Fragment/Strip/BaseImageStrip.h>
25 #include <IPSDKBaseData/Buffer/FragHybridBuffer.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_X2dWithKernel;
42 
43 public:
47  virtual ~BaseImageXStrip2dWithKernel() = 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 getSizeY() const;
111 
115  ipUInt64 getStripStartOffsetX() const;
116 
120  ipUInt64 getStripSizeX() const;
121 
124  ipUInt64 getImageSizeX() 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 getStartingSizeX() const;
150 
155  ipUInt64 getNbMissingStartingCols() const;
156 
161  ipUInt64 getEndingSizeX() const;
162 
167  ipUInt64 getNbMissingEndingCols() const;
169 
170  //--------------------
173  //--------------------
174 
178  ipUInt64 getZPlanIdx() const;
179 
183  ipUInt64 getCPlanIdx() const;
184 
188  ipUInt64 getTPlanIdx() const;
190 
191  //---------------------------
194  //---------------------------
195 
199  ImageXStrip2dConstPtr getStartingStripPtr() const;
200 
204  ImageXStrip2dConstPtr getMainStripPtr() const;
205 
209  ImageXStrip2dConstPtr 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 ImageXStrip2dPtr& pStartingStrip,
227  const ImageXStrip2dPtr& pMainStrip,
228  const ImageXStrip2dPtr& 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  ImageXStrip2dPtr _pStartingStrip;
278 
280  ImageXStrip2dPtr _pMainStrip;
281 
284  ImageXStrip2dPtr _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_BASEIMAGEXSTRIP2DWITHKERNEL_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
image 2d strip with splitting along X axis associated to a kernel
Definition: ImageStripTypes.h:48
eDataAccessMode
Enumerate describing access mode for an image fragment data.
Definition: ImageFragmentTypes.h:45
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
eImageStripType getImageStripType() const
retrieve image strip type
Definition: BaseImageXStrip2dWithKernel.h:291
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:97
boost::shared_ptr< BaseImageXStrip2d > ImageXStrip2dPtr
Definition: ImageStripTypes.h:111
static const eImageStripType::domain g_imageStripType
image strip type
Definition: BaseImageXStrip2dWithKernel.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
#define IPSDKIMAGE_API
Import/Export macro for library IPSDKImage.
Definition: IPSDKImageExports.h:27
boost::shared_ptr< const BaseImageXStrip2d > ImageXStrip2dConstPtr
Definition: ImageStripTypes.h:112
Base class for image 2d strip with splitting along X axis associated to a kernel. ...
Definition: BaseImageXStrip2dWithKernel.h:33
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
eImageStripType
Enumerate describing image strip type.
Definition: ImageStripTypes.h:42
eImageBufferType
types associated to image buffers
Definition: ImageTypes.h:78