IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
UnrollCylinderImgLvl3.h
1 // UnrollCylinderImgLvl3.h:
3 // --------------------------------
4 //
14 
15 #ifndef __IPSDKIPLGEOMETRICTRANSFORM_UNROLLCYLINDERIMGLVL3_H__
16 #define __IPSDKIPLGEOMETRICTRANSFORM_UNROLLCYLINDERIMGLVL3_H__
17 
20 
21 // Attributes headers
22 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InCenter2d.h>
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptCylinderUnrollingIntegrationParams.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptTheta0.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InRadius.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InInterpolationPolicy.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Strip/ZStrip3d/InZStrip3d.h>
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Strip/YStrip2d/OutYStrip2d.h>
29 
30 #include <boost/scoped_array.hpp>
31 
32 namespace ipsdk {
33 namespace imaproc {
34 namespace gtrans {
35 
38 
39 // declare processing algorithm
40 IPSDK_DECLARE_PROCESSING_ALGORITHM(IPSDKIPLGeometricTransform, UnrollCylinderImg,
42  (((ipsdk)(imaproc)(attr))(InZStrip3d))
43  (((ipsdk)(imaproc)(attr))(InInterpolationPolicy))
44  (((ipsdk)(imaproc)(attr))(InRadius))
45  (((ipsdk)(imaproc)(attr))(InOptTheta0))
46  (((ipsdk)(imaproc)(attr))(InCenter2d))
47  (((ipsdk)(imaproc)(attr))(InOptCylinderUnrollingIntegrationParams))
48  (((ipsdk)(imaproc)(attr))(OutYStrip2d)))
49 
50  // implementation of image processing data identifier retrieval method
51  // for function selector usage
52  IPSDK_DECLARE_ALGORITHM_FUNCTION_SELECTOR(((STRIP)(InZStrip3d)));
53 
54  // declaration of parsed data during processing
56 
57 // methods
58 public:
59 
60 protected:
61  template <typename BufType, attr::eInterpolationPolicy::domain IS>
62  ipsdk::BoolResult processFunctionNullThickness(const ipsdk::processor::ProcessingInfo& info);
63 
64  template <typename BufType, attr::eInterpolationPolicy::domain IS, attr::eCylinderUnrollingIntegrationType::domain IntegrationType>
65  ipsdk::BoolResult processFunctionNonNullThickness(const ipsdk::processor::ProcessingInfo& info);
66 
67  template <typename BufType, attr::eInterpolationPolicy::domain IS>
68  ipsdk::BoolResult processFunction(const ipsdk::processor::ProcessingInfo& info);
69 
71  template <typename BufType, ipsdk::eInstructionSet::domain IS>
72  ipsdk::BoolResult genericProcessFunction(const ipsdk::processor::ProcessingInfo& info);
73 
74 // attributes
75 protected:
76  boost::scoped_array<ipReal64> _tabX;
77  boost::scoped_array<ipReal64> _tabY;
78 };
79 
82 
83 } // end of namespace gtrans
84 } // end of namespace imaproc
85 } // end of namespace ipsdk
86 
87 #endif // __IPSDKIPLGEOMETRICTRANSFORM_UNROLLCYLINDERIMGLVL3_H__
#define IPSDK_DECLARE_ALGORITHM_NOPARSED_DATA()
IPSDKBASEPROCESSING_API RulePtr none()
Definition of import/export macro for library.
#define IPSDK_DECLARE_PROCESSING_ALGORITHM(libraryName, algoName, RuleString, attributeSeq)
#define IPSDK_DECLARE_ALGORITHM_FUNCTION_SELECTOR(dataTypeSeq)