IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ShapeAnalysis3dLvl1.h
1 // ShapeAnalysis3dLvl1.h:
3 // ----------------------
4 //
14 
15 #ifndef __IPSDKIPLSHAPEANALYSIS_SHAPEANALYSIS3DLVL1_H__
16 #define __IPSDKIPLSHAPEANALYSIS_SHAPEANALYSIS3DLVL1_H__
17 
23 #include <IPSDKBaseShapeAnalysis/Measure/MeasureSet.h>
24 #include <boost/bind.hpp>
25 
26 // Attributes headers
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/MeasureInfoSet/InMeasureInfoSet3d.h>
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/GeometryEntityColl/InPILabelsShape3d.h>
29 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Attribute/GeometryEntityColl/InOptPILabelsShape3d2.h>
30 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Attribute/GeometryEntityColl/InOptPILabelsShape3d3.h>
31 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Attribute/GeometryEntityColl/InOptPILabelsShape3d4.h>
32 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Attribute/Image/InOptGreyMsrImg3d1.h>
33 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Attribute/Image/InOptGreyMsrImg3d2.h>
34 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Attribute/Image/InOptGreyMsrImg3d3.h>
35 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Attribute/Image/InOptGreyMsrImg3d4.h>
36 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/MeasureSet/OutPIMeasureSet.h>
37 
38 namespace ipsdk {
39 namespace imaproc {
40 namespace shape {
41 namespace analysis {
42 
45 
46 // declare processor class
47 IPSDK_DECLARE_LVL1_PROCESSOR(ASYNC1, IPSDKIPLShapeAnalysis, ShapeAnalysis3d,
48  ipsdk::imaproc::matchOther(_pInPILabelsShape3d, _pOutPIMeasureSet) &&
49  validateMeasureRequirements(_pInMeasureInfoSet3d,
50  _pInPILabelsShape3d, _pInOptPILabelsShape3d2, _pInOptPILabelsShape3d3, _pInOptPILabelsShape3d4,
51  _pInOptGreyMsrImg3d1, _pInOptGreyMsrImg3d2, _pInOptGreyMsrImg3d3, _pInOptGreyMsrImg3d4),
52  (((ipsdk)(imaproc)(attr))(InMeasureInfoSet3d))
53  (((ipsdk)(imaproc)(attr))(InPILabelsShape3d))
54  (((ipsdk)(imaproc)(shape)(analysis))(InOptPILabelsShape3d2))
55  (((ipsdk)(imaproc)(shape)(analysis))(InOptPILabelsShape3d3))
56  (((ipsdk)(imaproc)(shape)(analysis))(InOptPILabelsShape3d4))
57  (((ipsdk)(imaproc)(shape)(analysis))(InOptGreyMsrImg3d1))
58  (((ipsdk)(imaproc)(shape)(analysis))(InOptGreyMsrImg3d2))
59  (((ipsdk)(imaproc)(shape)(analysis))(InOptGreyMsrImg3d3))
60  (((ipsdk)(imaproc)(shape)(analysis))(InOptGreyMsrImg3d4))
61  (((ipsdk)(imaproc)(attr))(OutPIMeasureSet)(fromOther)(_pInPILabelsShape3d)(boost::function<OutPIMeasureSet::PlanStorageType ()>(boost::bind(&ipsdk::imaproc::createMeasureSetFromInfo, _pInMeasureInfoSet3d)))))
62 
63 // methods
64 public:
65 
66 protected:
67 
68 // attributes
69 protected:
70 
71 };
72 
75 
76 } // end of namespace analysis
77 } // end of namespace shape
78 } // end of namespace imaproc
79 } // end of namespace ipsdk
80 
81 #endif // __IPSDKIPLSHAPEANALYSIS_SHAPEANALYSIS3DLVL1_H__
#define IPSDK_DECLARE_LVL1_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
Definition of import/export macro for library.
processor::RulePtr validateMeasureRequirements(const ShapeMeasureInfoSetAttributeConstPtr &pInMeasureInfoSet2d, const boost::shared_ptr< attr::InPILabelsShape2d > &pInPILabelsShape2d, const boost::shared_ptr< InOptPILabelsShape2d2 > &pInOptPILabelsShape2d2, const boost::shared_ptr< InOptPILabelsShape2d3 > &pInOptPILabelsShape2d3, const boost::shared_ptr< InOptPILabelsShape2d4 > &pInOptPILabelsShape2d4, const ImageAttributeConstPtr &pInOptGreyMsrImg1, const ImageAttributeConstPtr &pInOptGreyMsrImg2, const ImageAttributeConstPtr &pInOptGreyMsrImg3, const ImageAttributeConstPtr &pInOptGreyMsrImg4)
rule allowing to check that input parameters provided for shape analysis satisfy requirements of meas...
IPSDKIMAGEPROCESSING_API ipsdk::shape::analysis::MeasureSetPtr createMeasureSetFromInfo(const ShapeMeasureInfoSetAttributeConstWeakPtr &pInputShapeMeasureInfoSetAttribute)
Utility functions for shape analysis parameters check.