IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
TileCollAttributeHdrMacros.h
Go to the documentation of this file.
1 // TileCollAttributeHdrMacros.h:
3 // -----------------------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_TILECOLLATTRIBUTEHDRMACROS_H__
17 #define __IPSDKIMAGEPROCESSING_TILECOLLATTRIBUTEHDRMACROS_H__
18 
21 
24 
28 #define IPSDK_DECLARE_TILECOLL_ATTRIBUTE_BODY(libraryName, className, baseClassName, RuleString) \
29  IPSDK_DECLARE_SERIAL_WITHOUT_COPY(libraryName, className); \
30  IPSDK_DECLARE_TOOLTIP(); \
31  IPSDK_DECLARE_ATTRIBUTE_BASE_BODY(libraryName, className, RuleString); \
32 public: \
33  typedef baseClassName BaseTileCollAttributeClassType; \
34 protected: \
35  className(); \
36 public: \
37  ~className();
38 
39 
43 #define IPSDK_DECLARE_TILECOLL_ATTRIBUTE(libraryName, className, baseClassName, RuleString) \
44 class IPSDK_LIB_API(libraryName) className : public baseClassName { \
45  IPSDK_DECLARE_TILECOLL_ATTRIBUTE_BODY(libraryName, className, baseClassName, RuleString)
46 
48 // Mandatory attributes
50 
54 #define IPSDK_DECLARE_INPUT_TILECOLL_ATTRIBUTE(tileCollType, libraryName, className, RuleString) \
55  IPSDK_DECLARE_TILECOLL_ATTRIBUTE(libraryName, className, \
56  BOOST_PP_CAT(BOOST_PP_CAT(ipsdk::imaproc::BaseInput, \
57  BOOST_PP_CAT(IPSDK_BASECLASSNAME_, tileCollType)), \
58  Attribute), \
59  RuleString); \
60  IPSDK_DECLARE_MANDATORY_DATA(); \
61 };
62 
66 #define IPSDK_DECLARE_INOUT_TILECOLL_ATTRIBUTE(tileCollType, libraryName, className, RuleString) \
67  IPSDK_DECLARE_TILECOLL_ATTRIBUTE(libraryName, className, \
68  BOOST_PP_CAT(BOOST_PP_CAT(ipsdk::imaproc::BaseInOut, \
69  BOOST_PP_CAT(IPSDK_BASECLASSNAME_, tileCollType)), \
70  Attribute), \
71  RuleString); \
72  IPSDK_DECLARE_MANDATORY_DATA(); \
73 };
74 
78 #define IPSDK_DECLARE_OUTPUT_TILECOLL_ATTRIBUTE(tileCollType, libraryName, className, RuleString) \
79  IPSDK_DECLARE_TILECOLL_ATTRIBUTE(libraryName, className, \
80  BOOST_PP_CAT(BOOST_PP_CAT(ipsdk::imaproc::BaseOutput, \
81  BOOST_PP_CAT(IPSDK_BASECLASSNAME_, tileCollType)), \
82  Attribute), \
83  RuleString); \
84  IPSDK_DECLARE_MANDATORY_DATA(); \
85 };
86 
88 // Optional attributes
90 
94 #define IPSDK_DECLARE_INPUT_OPTIONAL_TILECOLL_ATTRIBUTE(tileCollType, libraryName, className, RuleString) \
95  IPSDK_DECLARE_TILECOLL_ATTRIBUTE(libraryName, className, \
96  BOOST_PP_CAT(BOOST_PP_CAT(ipsdk::imaproc::BaseInput, \
97  BOOST_PP_CAT(IPSDK_BASECLASSNAME_, tileCollType)), \
98  Attribute), \
99  RuleString); \
100  IPSDK_DECLARE_OPTIONAL_DATA(); \
101 };
102 
106 #define IPSDK_DECLARE_INOUT_OPTIONAL_TILECOLL_ATTRIBUTE(tileCollType, libraryName, className, RuleString) \
107  IPSDK_DECLARE_TILECOLL_ATTRIBUTE(libraryName, className, \
108  BOOST_PP_CAT(BOOST_PP_CAT(ipsdk::imaproc::BaseInOut, \
109  BOOST_PP_CAT(IPSDK_BASECLASSNAME_, tileCollType)), \
110  Attribute), \
111  RuleString); \
112  IPSDK_DECLARE_OPTIONAL_DATA(); \
113 };
114 
118 #define IPSDK_DECLARE_OUTPUT_OPTIONAL_TILECOLL_ATTRIBUTE(tileCollType, libraryName, className, RuleString) \
119  IPSDK_DECLARE_TILECOLL_ATTRIBUTE(libraryName, className, \
120  BOOST_PP_CAT(BOOST_PP_CAT(ipsdk::imaproc::BaseOutput, \
121  BOOST_PP_CAT(IPSDK_BASECLASSNAME_, tileCollType)), \
122  Attribute), \
123  RuleString); \
124  IPSDK_DECLARE_OPTIONAL_DATA(); \
125 };
126 
129 
130 #endif // __IPSDKIMAGEPROCESSING_TILECOLLATTRIBUTEHDRMACROS_H__
Header part of macros set for attribute class declaration.
Operators used to enable rules on attributes associated to collection of image tiles.