IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
KernelAttributeHdrMacros.h
Go to the documentation of this file.
1 // KernelAttributeHdrMacros.h:
3 // ---------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_KERNELATTRIBUTEHDRMACROS_H__
16 #define __IPSDKIMAGEPROCESSING_KERNELATTRIBUTEHDRMACROS_H__
17 
19 #include <IPSDKImageProcessing/Attribute/Kernel/KernelXY/BaseMandatoryKernelXYAttribute.h>
20 #include <IPSDKImageProcessing/Attribute/Kernel/KernelXY/BaseOptionalKernelXYAttribute.h>
21 #include <IPSDKImageProcessing/Attribute/Kernel/KernelXYZ/BaseMandatoryKernelXYZAttribute.h>
22 #include <IPSDKImageProcessing/Attribute/Kernel/KernelXYZ/BaseOptionalKernelXYZAttribute.h>
24 
27 
30 #define IPSDK_DECLARE_KERNEL_ATTRIBUTE_BODY(libraryName, className, baseClassName, RuleString) \
31  IPSDK_DECLARE_SERIAL_WITHOUT_COPY(libraryName, className); \
32  IPSDK_DECLARE_TOOLTIP(); \
33  IPSDK_DECLARE_ATTRIBUTE_BASE_BODY(libraryName, className, RuleString); \
34 public: \
35  typedef baseClassName BaseKernelAttributeClassType; \
36 protected: \
37  className(); \
38 public: \
39  ~className(); \
40  void init(const StorageType& pKernel);
41 
44 #define IPSDK_DECLARE_KERNEL_ATTRIBUTE(libraryName, className, baseClassName, RuleString) \
45 class IPSDK_LIB_API(libraryName) className : public baseClassName { \
46  IPSDK_DECLARE_KERNEL_ATTRIBUTE_BODY(libraryName, className, baseClassName, RuleString) \
47 };
48 
50 // Mandatory attributes
52 
55 #define IPSDK_DECLARE_INPUT_KERNEL_XY_ATTRIBUTE(libraryName, className, RuleString) \
56  IPSDK_DECLARE_KERNEL_ATTRIBUTE(libraryName, className, \
57  ipsdk::imaproc::BaseMandatoryKernelXYAttribute, \
58  RuleString)
59 
62 #define IPSDK_DECLARE_INPUT_KERNEL_XYZ_ATTRIBUTE(libraryName, className, RuleString) \
63  IPSDK_DECLARE_KERNEL_ATTRIBUTE(libraryName, className, \
64  ipsdk::imaproc::BaseMandatoryKernelXYZAttribute, \
65  RuleString)
66 
68 // Optional attributes
70 
73 #define IPSDK_DECLARE_INPUT_OPTIONAL_KERNEL_XY_ATTRIBUTE(libraryName, className, RuleString) \
74  IPSDK_DECLARE_KERNEL_ATTRIBUTE(libraryName, className, \
75  ipsdk::imaproc::BaseOptionalKernelXYAttribute, \
76  RuleString)
77 
80 #define IPSDK_DECLARE_INPUT_OPTIONAL_KERNEL_XYZ_ATTRIBUTE(libraryName, className, RuleString) \
81  IPSDK_DECLARE_KERNEL_ATTRIBUTE(libraryName, className, \
82  ipsdk::imaproc::BaseOptionalKernelXYZAttribute, \
83  RuleString)
84 
87 
88 #endif // __IPSDKIMAGEPROCESSING_KERNELATTRIBUTEHDRMACROS_H__
Header part of macros set for attribute class declaration.
Operators used to enable rules on kernels.