15 #ifndef __IPSDKIMAGEPROCESSING_STRIPPARSERINFOHDRMACROS_H__ 16 #define __IPSDKIMAGEPROCESSING_STRIPPARSERINFOHDRMACROS_H__ 19 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineXStrip2d/LineXStrip2dParser.h> 20 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineXStrip2dWithKernel/LineXStrip2dWithKernelParser.h> 21 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineYStrip2d/LineYStrip2dParser.h> 22 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineYStripColor2d/LineYStripUserColor2dParser.h> 23 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineYStripColor2d/LineYStripRgbColor2dParser.h> 24 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineYStripSeq2d/LineYStripSeq2dParser.h> 25 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineYStrip2dWithKernel/LineYStrip2dWithKernelParser.h> 26 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineZStrip3d/LineZStrip3dParser.h> 27 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineZStrip3dWithKernel/LineZStrip3dWithKernelParser.h> 28 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineZStripColor3d/LineZStripRgbColor3dParser.h> 29 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineZStripColor3d/LineZStripUserColor3dParser.h> 30 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/RawYStrip2d/RawYStrip2dParser.h> 31 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/RawYStrip3d/RawYStrip3dParser.h> 32 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/RawYStripColor2d/RawYStripRgbColor2dParser.h> 33 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/RawYStripColor2d/RawYStripUserColor2dParser.h> 34 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/RawYStripSeq2d/RawYStripSeq2dParser.h> 35 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/RawZStrip3d/RawZStrip3dParser.h> 36 #include <boost/make_shared.hpp> 40 template <
typename StripParserMode,
typename BaseStripAttributeClassType,
typename DelayImpl = BaseStripAttributeClassType>
50 #define IPSDK_STRIP_PARSER_INFO(StripParserMode, BaseStripAttributeClass, BaseParserClass, ConcreteParserClass) \ 51 class BaseStripAttributeClass; \ 52 template <typename DelayImpl> \ 53 struct StripParserInfo<StripParserMode, BaseStripAttributeClass, DelayImpl> \ 55 typedef boost::shared_ptr<DelayImpl> AttributePtr; \ 56 typedef BaseParserClass<DelayImpl> BaseParserType; \ 57 typedef boost::shared_ptr<BaseParserType> ParserTypePtr; \ 58 static ParserTypePtr createParser(const AttributePtr& pAttribute) \ 60 ParserTypePtr pParser; \ 61 switch (pAttribute->getImageBufferType().value()) \ 63 case ipsdk::image::eImageBufferType::eIBT_UInt8 : { \ 64 typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_UInt8>::type DataType; \ 65 typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \ 66 pParser = boost::make_shared<ParserType>(); \ 67 pParser->init(pAttribute->getStorage()); \ 70 case ipsdk::image::eImageBufferType::eIBT_Int8 : { \ 71 typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Int8>::type DataType; \ 72 typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \ 73 pParser = boost::make_shared<ParserType>(); \ 74 pParser->init(pAttribute->getStorage()); \ 77 case ipsdk::image::eImageBufferType::eIBT_UInt16 : { \ 78 typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_UInt16>::type DataType; \ 79 typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \ 80 pParser = boost::make_shared<ParserType>(); \ 81 pParser->init(pAttribute->getStorage()); \ 84 case ipsdk::image::eImageBufferType::eIBT_Int16 : { \ 85 typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Int16>::type DataType; \ 86 typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \ 87 pParser = boost::make_shared<ParserType>(); \ 88 pParser->init(pAttribute->getStorage()); \ 91 case ipsdk::image::eImageBufferType::eIBT_UInt32 : { \ 92 typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_UInt32>::type DataType; \ 93 typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \ 94 pParser = boost::make_shared<ParserType>(); \ 95 pParser->init(pAttribute->getStorage()); \ 98 case ipsdk::image::eImageBufferType::eIBT_Int32 : { \ 99 typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Int32>::type DataType; \ 100 typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \ 101 pParser = boost::make_shared<ParserType>(); \ 102 pParser->init(pAttribute->getStorage()); \ 105 case ipsdk::image::eImageBufferType::eIBT_Real32 : { \ 106 typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Real32>::type DataType; \ 107 typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \ 108 pParser = boost::make_shared<ParserType>(); \ 109 pParser->init(pAttribute->getStorage()); \ 112 case ipsdk::image::eImageBufferType::eIBT_Binary : { \ 113 typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Binary>::type DataType; \ 114 typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \ 115 pParser = boost::make_shared<ParserType>(); \ 116 pParser->init(pAttribute->getStorage()); \ 119 case ipsdk::image::eImageBufferType::eIBT_Label16 : { \ 120 typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Label16>::type DataType; \ 121 typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \ 122 pParser = boost::make_shared<ParserType>(); \ 123 pParser->init(pAttribute->getStorage()); \ 126 case ipsdk::image::eImageBufferType::eIBT_Label32 : { \ 127 typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Label32>::type DataType; \ 128 typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \ 129 pParser = boost::make_shared<ParserType>(); \ 130 pParser->init(pAttribute->getStorage()); \ 133 case ipsdk::image::eImageBufferType::eIBT_Label8 : { \ 134 typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Label8>::type DataType; \ 135 typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \ 136 pParser = boost::make_shared<ParserType>(); \ 137 pParser->init(pAttribute->getStorage()); \ 153 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputXStrip2dAttribute, BaseLineXStrip2dParser, LineXStrip2dParser);
154 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutXStrip2dAttribute, BaseLineXStrip2dParser, LineXStrip2dParser);
155 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputXStrip2dAttribute, BaseLineXStrip2dParser, LineXStrip2dParser);
160 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputXStrip2dWithKernelAttribute, BaseLineXStrip2dWithKernelParser, LineXStrip2dWithKernelParser);
161 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutXStrip2dWithKernelAttribute, BaseLineXStrip2dWithKernelParser, LineXStrip2dWithKernelParser);
162 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputXStrip2dWithKernelAttribute, BaseLineXStrip2dWithKernelParser, LineXStrip2dWithKernelParser);
167 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInputYStrip2dAttribute, BaseRawYStrip2dParser, RawYStrip2dParser);
168 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInOutYStrip2dAttribute, BaseRawYStrip2dParser, RawYStrip2dParser);
169 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseOutputYStrip2dAttribute, BaseRawYStrip2dParser, RawYStrip2dParser);
174 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputYStrip2dAttribute, BaseLineYStrip2dParser, LineYStrip2dParser);
175 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutYStrip2dAttribute, BaseLineYStrip2dParser, LineYStrip2dParser);
176 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputYStrip2dAttribute, BaseLineYStrip2dParser, LineYStrip2dParser);
181 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputYStrip2dWithKernelAttribute, BaseLineYStrip2dWithKernelParser, LineYStrip2dWithKernelParser);
182 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutYStrip2dWithKernelAttribute, BaseLineYStrip2dWithKernelParser, LineYStrip2dWithKernelParser);
183 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputYStrip2dWithKernelAttribute, BaseLineYStrip2dWithKernelParser, LineYStrip2dWithKernelParser);
188 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInputYStrip3dAttribute, BaseRawYStrip3dParser, RawYStrip3dParser);
189 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInOutYStrip3dAttribute, BaseRawYStrip3dParser, RawYStrip3dParser);
190 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseOutputYStrip3dAttribute, BaseRawYStrip3dParser, RawYStrip3dParser);
195 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputYStripColor2dAttribute, BaseLineYStripUserColor2dParser, LineYStripUserColor2dParser);
196 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutYStripColor2dAttribute, BaseLineYStripUserColor2dParser, LineYStripUserColor2dParser);
197 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputYStripColor2dAttribute, BaseLineYStripUserColor2dParser, LineYStripUserColor2dParser);
202 IPSDK_STRIP_PARSER_INFO(RgbLineStripParserMode, BaseInputYStripColor2dAttribute, BaseLineYStripRgbColor2dParser, LineYStripRgbColor2dParser);
203 IPSDK_STRIP_PARSER_INFO(RgbLineStripParserMode, BaseInOutYStripColor2dAttribute, BaseLineYStripRgbColor2dParser, LineYStripRgbColor2dParser);
204 IPSDK_STRIP_PARSER_INFO(RgbLineStripParserMode, BaseOutputYStripColor2dAttribute, BaseLineYStripRgbColor2dParser, LineYStripRgbColor2dParser);
209 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInputYStripColor2dAttribute, BaseRawYStripUserColor2dParser, RawYStripUserColor2dParser);
210 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInOutYStripColor2dAttribute, BaseRawYStripUserColor2dParser, RawYStripUserColor2dParser);
211 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseOutputYStripColor2dAttribute, BaseRawYStripUserColor2dParser, RawYStripUserColor2dParser);
216 IPSDK_STRIP_PARSER_INFO(RgbRawStripParserMode, BaseInputYStripColor2dAttribute, BaseRawYStripRgbColor2dParser, RawYStripRgbColor2dParser);
217 IPSDK_STRIP_PARSER_INFO(RgbRawStripParserMode, BaseInOutYStripColor2dAttribute, BaseRawYStripRgbColor2dParser, RawYStripRgbColor2dParser);
218 IPSDK_STRIP_PARSER_INFO(RgbRawStripParserMode, BaseOutputYStripColor2dAttribute, BaseRawYStripRgbColor2dParser, RawYStripRgbColor2dParser);
223 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputYStripSeq2dAttribute, BaseLineYStripSeq2dParser, LineYStripSeq2dParser);
224 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutYStripSeq2dAttribute, BaseLineYStripSeq2dParser, LineYStripSeq2dParser);
225 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputYStripSeq2dAttribute, BaseLineYStripSeq2dParser, LineYStripSeq2dParser);
229 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInputYStripSeq2dAttribute, BaseRawYStripSeq2dParser, RawYStripSeq2dParser);
230 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInOutYStripSeq2dAttribute, BaseRawYStripSeq2dParser, RawYStripSeq2dParser);
231 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseOutputYStripSeq2dAttribute, BaseRawYStripSeq2dParser, RawYStripSeq2dParser);
236 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInputZStrip3dAttribute, BaseRawZStrip3dParser, RawZStrip3dParser);
237 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInOutZStrip3dAttribute, BaseRawZStrip3dParser, RawZStrip3dParser);
238 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseOutputZStrip3dAttribute, BaseRawZStrip3dParser, RawZStrip3dParser);
243 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputZStrip3dAttribute, BaseLineZStrip3dParser, LineZStrip3dParser);
244 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutZStrip3dAttribute, BaseLineZStrip3dParser, LineZStrip3dParser);
245 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputZStrip3dAttribute, BaseLineZStrip3dParser, LineZStrip3dParser);
250 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputZStripColor3dAttribute, BaseLineZStripUserColor3dParser, LineZStripUserColor3dParser);
251 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutZStripColor3dAttribute, BaseLineZStripUserColor3dParser, LineZStripUserColor3dParser);
252 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputZStripColor3dAttribute, BaseLineZStripUserColor3dParser, LineZStripUserColor3dParser);
257 IPSDK_STRIP_PARSER_INFO(RgbLineStripParserMode, BaseInputZStripColor3dAttribute, BaseLineZStripRgbColor3dParser, LineZStripRgbColor3dParser);
258 IPSDK_STRIP_PARSER_INFO(RgbLineStripParserMode, BaseInOutZStripColor3dAttribute, BaseLineZStripRgbColor3dParser, LineZStripRgbColor3dParser);
259 IPSDK_STRIP_PARSER_INFO(RgbLineStripParserMode, BaseOutputZStripColor3dAttribute, BaseLineZStripRgbColor3dParser, LineZStripRgbColor3dParser);
264 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputZStrip3dWithKernelAttribute, BaseLineZStrip3dWithKernelParser, LineZStrip3dWithKernelParser);
265 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutZStrip3dWithKernelAttribute, BaseLineZStrip3dWithKernelParser, LineZStrip3dWithKernelParser);
266 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputZStrip3dWithKernelAttribute, BaseLineZStrip3dWithKernelParser, LineZStrip3dWithKernelParser);
275 #endif // __IPSDKIMAGEPROCESSING_STRIPPARSERINFOHDRMACROS_H__ Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
#define IPSDK_STRIP_PARSER_INFO(StripParserMode, BaseStripAttributeClass, BaseParserClass, ConcreteParserClass)
[Internal] macro allowing to define a strip parser information structure
Definition: StripParserInfoHdrMacros.h:50
Definition: StripParserInfoHdrMacros.h:41
Definition of structures allowing to set strip parser mode.