IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
InOutImageTile3d.h
1 // InOutImageTile3d.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKIMAGE_INOUTIMAGETILE3D_H__
16 #define __IPSDKIMAGE_INOUTIMAGETILE3D_H__
17 
18 #include <IPSDKImage/Fragment/Tile/Tile3d/BaseImageTile3d.h>
19 
20 namespace ipsdk {
21 namespace image {
22 
25 
27 {
28  // declare serial class
30 
31  // declare in/out data
33 
34  // friend class for protected members access
35  friend struct ImageTileExtractor;
36 
37 // predefined public types
38 public:
39  // Image support type
40  typedef BaseImage ImageType;
41 
42 public:
48 
49 // methods
50 public:
58  template <typename T>
59  T* getBuffer(const ipUInt64 zPlanIdx, const ipUInt64 rowIdx)
60  {
61  return static_cast<T*>(accessBuffer(zPlanIdx, rowIdx));
62  }
63 
64  //-----------------------------------
67  //-----------------------------------
68 
75  BoolResult readFromImage() const;
76 
85  BoolResult writeToImage();
87 
88 protected:
98  void init(const ipUInt64 cPlanIdx,
99  const ipUInt64 tPlanIdx,
100  const ipUInt64 tileStartOffsetX,
101  const ipUInt64 tileStartOffsetY,
102  const ipUInt64 tileStartOffsetZ,
103  const ipUInt64 tileSizeX,
104  const ipUInt64 tileSizeY,
105  const ipUInt64 tileSizeZ,
106  const PlanStorageColl1d& volumeColl,
107  const DataIdentifierConstPtr& pImageIdentifier,
108  const DataItemMapConstPtr& pImageHeader);
109 
112  void createSubTile(const ipUInt64 zPlanIdx,
113  const ipUInt64 cPlanIdx,
114  const ipUInt64 tPlanIdx,
115  const tile::ImageTileInfo3d& imageTileInfo3d,
116  const PlanStoragePtr& pPlanStorage,
117  const DataIdentifierConstPtr& pImageIdentifier,
118  const DataItemMapConstPtr& pImageHeader,
119  ImageTile2dPtr& pImageTile2d) const;
120 
123  void createSubTile(const ipUInt64 zPlanIdx,
124  const ipUInt64 cPlanIdx,
125  const ipUInt64 tPlanIdx,
126  const tile::ImageTileInfo3d& imageTileInfo3d,
127  const eImageBufferType& imageBufferType,
128  const DataIdentifierConstPtr& pImageIdentifier,
129  const DataItemMapConstPtr& pImageHeader,
130  ImageTile2dPtr& pImageTile2d) const;
131 
132 // attributes
133 protected:
134 
135 };
136 
139 
140 } // end of namespace image
141 } // end of namespace ipsdk
142 
143 #endif // __IPSDKIMAGE_INOUTIMAGETILE3D_H__
T * getBuffer(const ipUInt64 zPlanIdx, const ipUInt64 rowIdx)
retrieve tile row buffer for a given plan and row index
Definition: InOutImageTile3d.h:59
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::shared_ptr< BaseImageTile2d > ImageTile2dPtr
Definition: ImageTileTypes.h:146
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Structure used to extract image tiles from an image.
Definition: ImageTileExtractor.h:33
#define IPSDK_DECLARE_INOUT_DATA()
macro allowing to declare an in/out data
Definition: DataStatusHdrMacros.h:120
Input and output class for 3d image tiles.
Definition: InOutImageTile3d.h:26
#define IPSDK_DECLARE_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on class
Definition: SerializationHdrMacro.h:79
Definition: ImageTileTypes.h:117
boost::shared_ptr< const DataItemMap > DataItemMapConstPtr
shared pointer to const DataItemMap
Definition: DataItemTypes.h:170
Base class for 3d image tiles.
Definition: BaseImageTile3d.h:32
#define IPSDKIMAGE_API
Import/Export macro for library IPSDKImage.
Definition: IPSDKImageExports.h:27
boost::shared_ptr< BasePlanStorage > PlanStoragePtr
shared pointer to image plan storage
Definition: PlanStorageTypes.h:55
boost::shared_ptr< const DataIdentifier > DataIdentifierConstPtr
shared pointer to const data identifier
Definition: DataIdentifierTypes.h:31
std::vector< PlanStoragePtr > PlanStorageColl1d
Definition: ImageTypes.h:184
Base class for images data type.
Definition: BaseImage.h:43
eImageBufferType
types associated to image buffers
Definition: ImageTypes.h:78