IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseCustomCheckedImageProperty.h
1 // BaseCustomCheckedImageProperty.h:
3 // ---------------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_BASECUSTOMCHECKEDIMAGEPROPERTY_H__
16 #define __IPSDKIMAGEPROCESSING_BASECUSTOMCHECKEDIMAGEPROPERTY_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::BaseCustomCheckedImageProperty::_pInputAttribute' : class 'boost::weak_ptr<const ipsdk::imaproc::BaseImageAttribute>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseCustomCheckedImageProperty'
20 // warning C4275: interface non dll class 'boost::noncopyable_::noncopyable' utilisée comme base d'une interface dll class 'ipsdk::imaproc::BaseCustomCheckedImageProperty'
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 #pragma warning (disable : 4275)
24 
27 #include <boost/noncopyable.hpp>
28 
29 namespace ipsdk {
30 namespace imaproc {
31 
34 
36 {
37 public:
41  virtual ~BaseCustomCheckedImageProperty() = 0;
43 
44 // methods
45 public:
47  bool isInit() const;
48 
54  virtual bool areChecksDisable() const;
55 
59  bool isChecked(const eCheckableImageProperty& checkableImageProperty) const;
60 
64  virtual ImageBufferTypeColl getAllowedImageBufferTypes() const;
65 
70  virtual ipUInt64 getSizeX() const;
71  virtual ipUInt64 getSizeY() const;
73 
78  virtual image::VolumeGeometry getVolumeGeometry() const;
79  ipUInt64 getSizeZ() const;
80  bool is2d() const;
81  bool is3d() const;
83 
88  virtual image::ColorGeometry getColorGeometry() const;
89  ipUInt64 getSizeC() const;
90  bool isGreyLevel() const;
91  bool isColor() const;
93 
98  virtual image::TemporalGeometry getTemporalGeometry() const;
99  ipUInt64 getSizeT() const;
100  bool isSingleGeometry() const;
101  bool isSequenceGeometry() const;
103 
104 protected:
107  void initBase(const ImageAttributeConstWeakPtr& pInputAttribute = ImageAttributeConstWeakPtr());
108 
112  void enableCheck(const eCheckableImageProperty& checkableImageProperty);
113 
117  bool isInputImageSet() const;
118 
122  const image::BaseImage& getInputImage() const;
123 
124 // attributes
125 private:
127  bool _bInit;
128 
130  ImageAttributeConstWeakPtr _pInputAttribute;
131 
133  CheckedImageProperty _checkedImageProperty;
134 };
135 
138 
139 inline bool
141 {
142  return _bInit;
143 }
144 
147 
148 } // end of namespace imaproc
149 } // end of namespace ipsdk
150 
151 #pragma warning (pop)
152 
153 #endif // __IPSDKIMAGEPROCESSING_BASECUSTOMCHECKEDIMAGEPROPERTY_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::weak_ptr< const BaseImageAttribute > ImageAttributeConstWeakPtr
Definition: ImageAttributeTypes.h:38
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
eCheckableImageProperty
enumerate describing checkable image property
Definition: CustomCheckedImagePropertyTypes.h:36
Definition of import/export macro for library.
IPSDKIMAGEPROCESSING_API processor::RulePtr isColor(const ImageAttributeConstWeakPtr &pAttribute)
functions allowing to check image color type
bool isInit() const
check for object initialization
Definition: BaseCustomCheckedImageProperty.h:140
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
Base class for custom checked image properties.
Definition: BaseCustomCheckedImageProperty.h:35
Class encapsulating volume geometryThis class allows to define geometry volume size and type (2d or 3...
Definition: VolumeGeometry.h:34
IPSDKIMAGEPROCESSING_API processor::RulePtr is2d(const ImageAttributeConstWeakPtr &pAttribute)
functions allowing to check image volume type
Class encapsulating color geometryThis class allows to define geometry color size and type (grey...
Definition: ColorGeometry.h:35
Base class for images data type.
Definition: BaseImage.h:43
std::set< image::eImageBufferType > ImageBufferTypeColl
collection of image buffer types
Definition: ImageBufferTypeAttributeTypes.h:50
Class encapsulating temporal geometryThis class allows to define geometry temporal size and type (sin...
Definition: TemporalGeometry.h:35
std::set< eCheckableImageProperty > CheckedImageProperty
collection of flags associated to checkable image properties
Definition: CustomCheckedImagePropertyTypes.h:56
IPSDKIMAGEPROCESSING_API processor::RulePtr is3d(const ImageAttributeConstWeakPtr &pAttribute)
functions allowing to check image volume type