IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseCompleteImage.h
1 // BaseCompleteImage.h:
3 // --------------------
4 //
14 
15 #ifndef __IPSDKIMAGE_BASECOMPLETEIMAGE_H__
16 #define __IPSDKIMAGE_BASECOMPLETEIMAGE_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::image::BaseCompleteImage::_pIdentifier' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::image::BaseCompleteImage'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
23 #include <IPSDKImage/Image/BaseImage.h>
25 
26 namespace ipsdk {
27 namespace image {
28 
29 class ImagePlanGeometry;
30 
33 
35 {
36  // declare serial class
38 
39 // predefined public types
40 public:
42  static const eImageBaseType::domain g_imageBaseType = eImageBaseType::eIBT_Complete;
43 
44 protected:
47 
48 public:
50  virtual ~BaseCompleteImage() = 0;
51 
52 // methods
53 public:
55  eImageBaseType getImageBaseType() const;
56 
58  virtual eImageType getImageType() const = 0;
59 
60  //------------------------
63  //------------------------
64 
67  void setName(const std::string& imageName);
69 
70  //--------------------
73  //--------------------
74 
79  BaseDataItem& getHeaderItem(const std::string& key);
80 
86  void addHeaderItem(const std::string& key,
87  const DataItemPtr& pItem);
88 
93  void removeHeaderItem(const std::string& key);
94 
97  void clearHeader();
99 
104  virtual BoolResult resize(const BaseImageGeometry& geometry) = 0;
105 
106 protected:
109  BoolResult initBase(const ImageGeometryPtr& pGeometry,
110  const PlanStorageColl3d& imagePlans);
111 
113  DataIdentifierConstPtr getIdentifier() const;
114 
116  virtual void clearDerived();
117 
118 // attributes
119 protected:
122 
125 };
126 
129 
130 inline eImageBaseType
132 {
133  return g_imageBaseType;
134 }
135 
138 
139 } // end of namespace image
140 } // end of namespace ipsdk
141 
142 #pragma warning (pop)
143 
144 #endif // __IPSDKIMAGE_BASECOMPLETEIMAGE_H__
eImageBaseType
Enumerate describing image base type.
Definition: ImageTypes.h:46
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
DataItemMapPtr _pHeader
image header
Definition: BaseCompleteImage.h:124
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:97
Base class for image geometry.
Definition: BaseImageGeometry.h:38
boost::shared_ptr< DataIdentifier > DataIdentifierPtr
shared pointer to data identifier
Definition: DataIdentifierTypes.h:22
boost::shared_ptr< DataItemMap > DataItemMapPtr
shared pointer to DataItemMap
Definition: DataItemTypes.h:167
boost::shared_ptr< BaseDataItem > DataItemPtr
shared pointer to DataItem
Definition: DataItemTypes.h:146
IPSDKIMAGE_API ImageGeometryPtr geometry(const eImageBufferType &imageBufferType, const ipUInt64 sizeX, const ipUInt64 sizeY, const VolumeGeometry &volumeGeometry, const ColorGeometry &colorGeometry, const TemporalGeometry &temporalGeometry)
create an image geometry
static const eImageBaseType::domain g_imageBaseType
type associated to attribute
Definition: BaseCompleteImage.h:42
eImageType
Enumerate describing image type.
Definition: ImageTypes.h:58
Predefined types for image geometry management.
std::vector< PlanStorageColl2d > PlanStorageColl3d
Definition: ImageTypes.h:196
#define IPSDKIMAGE_API
Import/Export macro for library IPSDKImage.
Definition: IPSDKImageExports.h:27
boost::shared_ptr< const DataIdentifier > DataIdentifierConstPtr
shared pointer to const data identifier
Definition: DataIdentifierTypes.h:31
Base class for images data type.
Definition: BaseImage.h:43
complete image
Definition: ImageTypes.h:48
DataIdentifierPtr _pIdentifier
image identifier
Definition: BaseCompleteImage.h:121
boost::shared_ptr< BaseImageGeometry > ImageGeometryPtr
shared pointer to image geometry
Definition: ImageGeometryTypes.h:55
Base class for data items.
Definition: BaseDataItem.h:27
eImageBaseType getImageBaseType() const
retrieve image type
Definition: BaseCompleteImage.h:131
Base class for complete images.
Definition: BaseCompleteImage.h:34