16 #ifndef __IPSDKIMAGEPROCESSING_BORDERPOLICYATTRIBUTEHDRMACROS_H__ 17 #define __IPSDKIMAGEPROCESSING_BORDERPOLICYATTRIBUTEHDRMACROS_H__ 21 #include <IPSDKImageProcessing/Attribute/BorderPolicy/BaseBorder2dPolicyAttribute.h> 22 #include <IPSDKImageProcessing/Attribute/BorderPolicy/BaseBorder3dPolicyAttribute.h> 24 #include <boost/thread/lock_guard.hpp> 25 #include <boost/smart_ptr/make_shared_object.hpp> 32 #define IPSDK_DECLARE_BORDER_POLICY_ATTRIBUTE_BODY(libraryName, className, baseClassName, RuleString) \ 33 IPSDK_DECLARE_SERIAL_WITHOUT_COPY(libraryName, className) \ 34 IPSDK_DECLARE_TOOLTIP() \ 35 IPSDK_DECLARE_ATTRIBUTE_BASE_BODY(libraryName, className, RuleString) \ 37 typedef baseClassName BaseBorderPolicyAttributeClassType; \ 43 void init(const ValueType& borderPolicy); \ 44 void init(const StorageType& pBorderPolicy); 52 #define IPSDK_DECLARE_INPUT_BORDER2D_POLICY_ATTRIBUTE(libraryName, className, RuleString) \ 53 class IPSDK_LIB_API(libraryName) className : \ 54 public ipsdk::imaproc::BaseBorder2dPolicyAttribute { \ 55 IPSDK_DECLARE_BORDER_POLICY_ATTRIBUTE_BODY(libraryName, className, \ 56 ipsdk::imaproc::BaseBorder2dPolicyAttribute, \ 58 IPSDK_DECLARE_MANDATORY_DATA(); \ 63 #define IPSDK_DECLARE_INPUT_BORDER3D_POLICY_ATTRIBUTE(libraryName, className, RuleString) \ 64 class IPSDK_LIB_API(libraryName) className : \ 65 public ipsdk::imaproc::BaseBorder3dPolicyAttribute { \ 66 IPSDK_DECLARE_BORDER_POLICY_ATTRIBUTE_BODY(libraryName, className, \ 67 ipsdk::imaproc::BaseBorder3dPolicyAttribute, \ 69 IPSDK_DECLARE_MANDATORY_DATA(); \ 79 #define IPSDK_DECLARE_INPUT_OPTIONAL_BORDER2D_POLICY_ATTRIBUTE(libraryName, className, \ 80 RuleString, defaultValue) \ 81 class IPSDK_LIB_API(libraryName) className : \ 82 public ipsdk::imaproc::BaseBorder2dPolicyAttribute { \ 83 IPSDK_DECLARE_BORDER_POLICY_ATTRIBUTE_BODY(libraryName, className, \ 84 ipsdk::imaproc::BaseBorder2dPolicyAttribute, \ 86 IPSDK_DECLARE_OPTIONAL_DATA(); \ 88 inline const ValueType& getDefaultValue() const \ 90 return *retrieveDefaultValue(); \ 93 static inline StorageType retrieveDefaultValue() \ 95 boost::lock_guard<boost::mutex> lock(getMutex()); \ 96 static StorageType pDefaultValue = defaultValue; \ 97 return pDefaultValue; \ 104 #define IPSDK_DECLARE_INPUT_OPTIONAL_BORDER3D_POLICY_ATTRIBUTE(libraryName, className, \ 105 RuleString, defaultValue) \ 106 class IPSDK_LIB_API(libraryName) className : \ 107 public ipsdk::imaproc::BaseBorder3dPolicyAttribute { \ 108 IPSDK_DECLARE_BORDER_POLICY_ATTRIBUTE_BODY(libraryName, className, \ 109 ipsdk::imaproc::BaseBorder3dPolicyAttribute, \ 111 IPSDK_DECLARE_OPTIONAL_DATA(); \ 113 inline const ValueType& getDefaultValue() const \ 115 return *retrieveDefaultValue(); \ 118 static inline StorageType retrieveDefaultValue() \ 120 boost::lock_guard<boost::mutex> lock(getMutex()); \ 121 static StorageType pDefaultValue = defaultValue; \ 122 return pDefaultValue; \ 129 #endif // __IPSDKIMAGEPROCESSING_BORDERPOLICYATTRIBUTEHDRMACROS_H__ Base operators used to combined rules.
Definition of import/export macro for library.
Header part of macros set for attribute class declaration.