IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseImageAttribute.h
1 // BaseImageAttribute.h:
3 // ---------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_BASEIMAGEATTRIBUTE_H__
16 #define __IPSDKIMAGEPROCESSING_BASEIMAGEATTRIBUTE_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::BaseImageAttribute::_pImage' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseImageAttribute'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
24 #include <IPSDKImageProcessing/Attribute/BaseImageProcessingAttribute.h>
25 
26 namespace ipsdk {
27 namespace imaproc {
28 
31 
33 {
34  // declare dynamic class
36 
37 // predefined public types
38 public:
40  static const eImageProcessingAttributeType::domain g_imageProcessingAttributeType = eImageProcessingAttributeType::eIPAT_Image;
41 
42 // constructor and destructor
43 protected:
46 public:
48  virtual ~BaseImageAttribute() = 0;
49 
50 // methods
51 public:
53  eImageProcessingAttributeType getImageProcessingAttributeType() const;
54 
58  const image::eImageBufferType& getImageBufferType() const;
59 
63  const image::BaseImage& getImage() const;
64 
68  image::ImageConstPtr getImagePtr() const;
69 
70 protected:
74  void initBase(const image::ImagePtr& pImage);
75 
80  image::ImageConstPtr accessImagePtr() const;
81  image::ImagePtr accessImagePtr();
83 
87  image::BaseImage& accessImage();
88 
90  void clearDerived();
91 
92 // attributes
93 private:
95  image::ImagePtr _pImage;
96 };
97 
100 
103 {
105 }
106 
109 
110 } // end of namespace imaproc
111 } // end of namespace ipsdk
112 
113 #pragma warning (pop)
114 
115 #endif // __IPSDKIMAGEPROCESSING_BASEIMAGEATTRIBUTE_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Base class for image attributes.
Definition: BaseImageAttribute.h:32
Base class for image processing attributes.
Definition: BaseImageProcessingAttribute.h:28
boost::shared_ptr< BaseImage > ImagePtr
Definition: ImageTypes.h:139
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:97
Definition of import/export macro for library.
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
eImageProcessingAttributeType
Enumerate describing image attributes type.
Definition: ImageProcessingAttributeTypes.h:33
boost::shared_ptr< const BaseImage > ImageConstPtr
Definition: ImageTypes.h:140
static const eImageProcessingAttributeType::domain g_imageProcessingAttributeType
image processing attribute type
Definition: BaseImageAttribute.h:40
Base class for images data type.
Definition: BaseImage.h:43
eImageProcessingAttributeType getImageProcessingAttributeType() const
retrieve image attribute type
Definition: BaseImageAttribute.h:102
Attribute associated to an image.
Definition: ImageProcessingAttributeTypes.h:43
eImageBufferType
types associated to image buffers
Definition: ImageTypes.h:78