IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
HeterogeneousImageGeometry.h
1 // HeterogeneousImageGeometry.h:
3 // -----------------------------
4 //
16 
17 #ifndef __IPSDKIMAGE_HETEROGENEOUSIMAGEGEOMETRY_H__
18 #define __IPSDKIMAGE_HETEROGENEOUSIMAGEGEOMETRY_H__
19 
20 // suppression warnings
21 // warning C4251: 'ipsdk::image::HeterogeneousImageGeometry::_imageBufferTypeVector' : class 'std::vector<_Ty>' needs to have dll-interface to be used by clients of class 'ipsdk::image::HeterogeneousImageGeometry'
22 #pragma warning (push)
23 #pragma warning (disable : 4251)
24 
26 #include <IPSDKImage/Geometry/BaseImageGeometry.h>
27 
28 namespace ipsdk {
29 namespace image {
30 
33 
35 {
36  // declare serial class
38 
39 public:
45 
46 // methods
47 public:
49  eImageGeometryType getImageGeometryType() const;
50 
56  void init(const VolumeGeometry& volumeGeometry,
57  const ColorGeometry& colorGeometry,
58  const TemporalGeometry& temporalGeometry,
59  const ipUInt64 sizeX,
60  const ipUInt64 sizeY,
61  const ImageBufferTypeVector& imageBufferTypeVector);
62 
65  const eImageBufferType& getBufferType(const ipUInt64 tPlanIdx) const;
66 
69  const ImageBufferTypeVector& getBufferTypeColl() const;
70 
75  void resize(const VolumeGeometry& volumeGeometry,
76  const ColorGeometry& colorGeometry,
77  const TemporalGeometry& temporalGeometry,
78  const ipUInt64 sizeX,
79  const ipUInt64 sizeY,
80  const eImageBufferType& imageBufferType);
81 
86  void resize(const VolumeGeometry& volumeGeometry,
87  const ColorGeometry& colorGeometry,
88  const TemporalGeometry& temporalGeometry,
89  const ipUInt64 sizeX,
90  const ipUInt64 sizeY,
91  const ImageBufferTypeVector& imageBufferTypeVector);
92 
95  void setImageBufferType(const eImageBufferType& imageBufferType);
96 
102  void setImageBufferType(const ImageBufferTypeVector& imageBufferTypeVector);
103 
106  void setImageBufferType(const ipUInt64 tPlanIdx,
107  const eImageBufferType& imageBufferType);
108 
109 protected:
111  void clearDerived();
112 
113 // attributes
114 protected:
117 };
118 
121 
122 inline eImageGeometryType
124 {
126 }
127 
130 
131 } // end of namespace image
132 } // end of namespace ipsdk
133 
134 #pragma warning (pop)
135 
136 #endif // __IPSDKIMAGE_HETEROGENEOUSIMAGEGEOMETRY_H__
#define IPSDK_DECLARE_SERIAL_WITH_COPY(libraryName, className)
macro enabling serialization on class
Definition: SerializationHdrMacro.h:73
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
eImageGeometryType getImageGeometryType() const
retrieve image buffer type
Definition: HeterogeneousImageGeometry.h:123
Heterogeneous image geometry (sequence components are associated to different buffer types) ...
Definition: ImageGeometryTypes.h:46
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
std::vector< eImageBufferType > ImageBufferTypeVector
collection of buffer types
Definition: ImageGeometryTypes.h:63
eImageGeometryType
Image geometry type.
Definition: ImageGeometryTypes.h:42
Base class for image geometry.
Definition: BaseImageGeometry.h:38
ImageBufferTypeVector _imageBufferTypeVector
collection of buffer types for each temporal plans
Definition: HeterogeneousImageGeometry.h:116
Image geometry associated to heterogeneous image buffer types through image plans (sequence case) ...
Definition: HeterogeneousImageGeometry.h:34
Definition of import/export macro for library.
#define IPSDKIMAGE_API
Import/Export macro for library IPSDKImage.
Definition: IPSDKImageExports.h:27
Class encapsulating volume geometryThis class allows to define geometry volume size and type (2d or 3...
Definition: VolumeGeometry.h:34
Class encapsulating color geometryThis class allows to define geometry color size and type (grey...
Definition: ColorGeometry.h:35
Class encapsulating temporal geometryThis class allows to define geometry temporal size and type (sin...
Definition: TemporalGeometry.h:35
eImageBufferType
types associated to image buffers
Definition: ImageTypes.h:78