IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
OutputImageTile3d.h
1 // OutputImageTile3d.h:
3 // --------------------
4 //
14 
15 #ifndef __IPSDKIMAGE_OUTPUTIMAGETILE3D_H__
16 #define __IPSDKIMAGE_OUTPUTIMAGETILE3D_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 input 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 
77  BoolResult writeToImage();
79 
80 protected:
90  void init(const ipUInt64 cPlanIdx,
91  const ipUInt64 tPlanIdx,
92  const ipUInt64 tileStartOffsetX,
93  const ipUInt64 tileStartOffsetY,
94  const ipUInt64 tileStartOffsetZ,
95  const ipUInt64 tileSizeX,
96  const ipUInt64 tileSizeY,
97  const ipUInt64 tileSizeZ,
98  const PlanStorageColl1d& volumeColl,
99  const DataIdentifierConstPtr& pImageIdentifier,
100  const DataItemMapConstPtr& pImageHeader);
101 
104  void createSubTile(const ipUInt64 zPlanIdx,
105  const ipUInt64 cPlanIdx,
106  const ipUInt64 tPlanIdx,
107  const tile::ImageTileInfo3d& imageTileInfo3d,
108  const PlanStoragePtr& pPlanStorage,
109  const DataIdentifierConstPtr& pImageIdentifier,
110  const DataItemMapConstPtr& pImageHeader,
111  ImageTile2dPtr& pImageTile2d) const;
112 
115  void createSubTile(const ipUInt64 zPlanIdx,
116  const ipUInt64 cPlanIdx,
117  const ipUInt64 tPlanIdx,
118  const tile::ImageTileInfo3d& imageTileInfo3d,
119  const eImageBufferType& imageBufferType,
120  const DataIdentifierConstPtr& pImageIdentifier,
121  const DataItemMapConstPtr& pImageHeader,
122  ImageTile2dPtr& pImageTile2d) const;
123 
124 // attributes
125 protected:
126 
127 };
128 
131 
132 } // end of namespace image
133 } // end of namespace ipsdk
134 
135 #endif // __IPSDKIMAGE_OUTPUTIMAGETILE3D_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::shared_ptr< BaseImageTile2d > ImageTile2dPtr
Definition: ImageTileTypes.h:146
T * getBuffer(const ipUInt64 zPlanIdx, const ipUInt64 rowIdx)
retrieve tile row buffer for a given plan and row index
Definition: OutputImageTile3d.h:59
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_OUTPUT_DATA()
macro allowing to declare an output data
Definition: DataStatusHdrMacros.h:113
#define IPSDK_DECLARE_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on class
Definition: SerializationHdrMacro.h:79
Definition: ImageTileTypes.h:117
Output class for 3d image tiles.
Definition: OutputImageTile3d.h:26
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