15 #ifndef __IPSDKGEOMETRY_GEOMETRYENTITY2DHDRMACROS_H__ 16 #define __IPSDKGEOMETRY_GEOMETRYENTITY2DHDRMACROS_H__ 20 #include <boost/preprocessor/seq/for_each.hpp> 27 #define IPSDK_ENUMERATE_GEOMETRY_TRANSFORM_2D_MACRO(s, _, TransformType) \ 32 #define IPSDK_ENUMERATE_GEOMETRY_TRANSFORM_2D_VISITORS() \ 33 BOOST_PP_SEQ_FOR_EACH(IPSDK_ENUMERATE_GEOMETRY_TRANSFORM_2D_MACRO, _, \ 34 IPSDK_GEOMETRY_TRANSFORM_2D); 41 #define IPSDK_ENUMERATE_GEOMETRY_MEASURE_2D_MACRO(s, _, MeasureInfo) \ 42 class BOOST_PP_SEQ_ELEM(0, MeasureInfo); 46 #define IPSDK_ENUMERATE_GEOMETRY_MEASURE_2D_VISITORS() \ 47 BOOST_PP_SEQ_FOR_EACH(IPSDK_ENUMERATE_GEOMETRY_MEASURE_2D_MACRO, _, \ 48 IPSDK_GEOMETRY_MEASURE_2D); 56 #define IPSDK_DECLARE_ABSTRACT_GEOMETRY_TRANSFORM_2D_VISITOR_MACRO(s, _, TransformType) \ 57 friend class TransformType; \ 58 virtual bool visitInSitu(const TransformType& transform) = 0; \ 59 virtual ipsdk::geom::GeometryEntity2dPtr visitNonInSitu(const TransformType& transform) const = 0; 64 #define IPSDK_DECLARE_ABSTRACT_GEOMETRY_TRANSFORM_2D_VISITORS() \ 66 BOOST_PP_SEQ_FOR_EACH(IPSDK_DECLARE_ABSTRACT_GEOMETRY_TRANSFORM_2D_VISITOR_MACRO, _, \ 67 IPSDK_GEOMETRY_TRANSFORM_2D); 75 #define IPSDK_DECLARE_ABSTRACT_GEOMETRY_MEASURE_2D_VISITOR_MACRO(s, _, MeasureInfo) \ 76 friend BOOST_PP_SEQ_ELEM(0, MeasureInfo); \ 77 virtual bool visit(const BOOST_PP_SEQ_ELEM(0, MeasureInfo)& measure, \ 78 BOOST_PP_SEQ_ELEM(1, MeasureInfo)& result) const = 0; 83 #define IPSDK_DECLARE_ABSTRACT_GEOMETRY_MEASURE_2D_VISITORS() \ 85 BOOST_PP_SEQ_FOR_EACH(IPSDK_DECLARE_ABSTRACT_GEOMETRY_MEASURE_2D_VISITOR_MACRO, _, \ 86 IPSDK_GEOMETRY_MEASURE_2D); 94 #define IPSDK_DECLARE_GEOMETRY_TRANSFORM_2D_VISITOR_MACRO(s, _, TransformType) \ 95 friend class TransformType; \ 96 bool visitInSitu(const TransformType& transform); \ 97 ipsdk::geom::GeometryEntity2dPtr visitNonInSitu(const TransformType& transform) const; 102 #define IPSDK_DECLARE_GEOMETRY_TRANSFORM_2D_VISITORS() \ 104 BOOST_PP_SEQ_FOR_EACH(IPSDK_DECLARE_GEOMETRY_TRANSFORM_2D_VISITOR_MACRO, _, \ 105 IPSDK_GEOMETRY_TRANSFORM_2D); 113 #define IPSDK_DECLARE_GEOMETRY_MEASURE_2D_VISITOR_MACRO(s, _, MeasureInfo) \ 114 friend BOOST_PP_SEQ_ELEM(0, MeasureInfo); \ 115 bool visit(const BOOST_PP_SEQ_ELEM(0, MeasureInfo)& measure, \ 116 BOOST_PP_SEQ_ELEM(1, MeasureInfo)& result) const; 121 #define IPSDK_DECLARE_GEOMETRY_MEASURE_2D_VISITORS() \ 123 BOOST_PP_SEQ_FOR_EACH(IPSDK_DECLARE_GEOMETRY_MEASURE_2D_VISITOR_MACRO, _, \ 124 IPSDK_GEOMETRY_MEASURE_2D); 131 #define IPSDK_DECLARE_GEOMETRY_ENTITY_2D(libraryName, className) \ 132 IPSDK_DECLARE_SERIAL_WITH_COPY(libraryName, className) \ 133 IPSDK_DECLARE_GEOMETRY_TRANSFORM_2D_VISITORS() \ 134 IPSDK_DECLARE_GEOMETRY_MEASURE_2D_VISITORS() 139 #endif // __IPSDKGEOMETRY_GEOMETRYENTITY2DHDRMACROS_H__ Predefined macros for geometry transform 2d management.
Predefined macros for geometry measurement 2d management.