IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseKernelXYZAttribute.h
1 // BaseKernelXYZAttribute.h:
3 // -------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_BASEKERNELXYZATTRIBUTE_H__
16 #define __IPSDKIMAGEPROCESSING_BASEKERNELXYZATTRIBUTE_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::BaseKernelXYZAttribute::_pKernel' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseKernelXYZAttribute'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
23 #include <IPSDKImageProcessing/Attribute/Kernel/BaseKernelAttribute.h>
24 
25 namespace ipsdk {
26 namespace imaproc {
27 
30 
32 {
33  // declare serial class
35 
36 // predefined public types
37 public:
40 
43 
44 protected:
47 
48 public:
50  virtual ~BaseKernelXYZAttribute() = 0;
51 
52 // methods
53 public:
55  eKernelType getKernelType() const;
56 
60  const ValueType& getKernel() const;
61 
65  const StorageType& getStorage() const;
66 
67 protected:
71  void initBase(const StorageType& pKernel);
72 
74  void clearDerived();
75 
76 // attributes
77 protected:
80 };
81 
84 
85 inline eKernelType
87 {
88  return eKernelType::eKT_XYZ;
89 }
90 
93 
94 } // end of namespace imaproc
95 } // end of namespace ipsdk
96 
97 #pragma warning (pop)
98 
99 #endif // __IPSDKIMAGEPROCESSING_BASEKERNELXYZATTRIBUTE_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::shared_ptr< const KernelXYZ > KernelXYZConstPtr
shared pointer to KernelXYZ
Definition: KernelTypes.h:56
eKernelType getKernelType() const
retrieve kernel attribute type
Definition: BaseKernelXYZAttribute.h:86
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:97
eKernelType
Enumerate describing kernel type.
Definition: KernelTypes.h:34
StorageType _pKernel
kernel associated to attribute
Definition: BaseKernelXYZAttribute.h:79
3d kernel type spanning x, y and z direction
Definition: KernelTypes.h:38
KernelXYZ ValueType
value type associated to object
Definition: BaseKernelXYZAttribute.h:39
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
Base class for XYZ kernel attributes.
Definition: BaseKernelXYZAttribute.h:31
KernelXYZConstPtr StorageType
storage type associated to object
Definition: BaseKernelXYZAttribute.h:42
Base class for kernel attributes.
Definition: BaseKernelAttribute.h:29
Class encapsulating a 3d kernel spanning along x, y and z axis.
Definition: KernelXYZ.h:34