IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
MeasureInfoFactory.h
1 // MeasureInfoFactory.h:
3 // ---------------------
4 //
15 
16 #ifndef __IPSDKBASESHAPEANALYSIS_MEASUREINFOFACTORY_H__
17 #define __IPSDKBASESHAPEANALYSIS_MEASUREINFOFACTORY_H__
18 
19 // suppression warnings
20 // warning C4275: non dll-interface class 'boost::noncopyable_::noncopyable' used as base for dll-interface class 'ipsdk::shape::analysis::MeasureInfoFactory'
21 // warning C4251: 'ipsdk::shape::analysis::MeasureInfoFactory::_factoryMap' : class 'std::map<_Kty,_Ty>' needs to have dll-interface to be used by clients of class 'ipsdk::shape::analysis::MeasureInfoFactory'
22 #pragma warning (push)
23 #pragma warning (disable : 4275 4251)
24 
29 #include <IPSDKUtil/Tools/ProcessingResult.h>
30 #include <boost/noncopyable.hpp>
31 
32 namespace ipsdk {
33 namespace shape {
34 namespace analysis {
35 
38 
39 class IPSDKBASESHAPEANALYSIS_API MeasureInfoFactory : public boost::noncopyable
40 {
41 public:
43  static MeasureInfoFactory& getInstance();
44 
45 protected:
51 
52 // methods
53 public:
55  bool isRegistredMsrInfo(const std::string& measureDefaultName) const;
56 
62  void registerMsrInfo(const std::string& measureDefaultName,
63  MsrInfoCreator msrInfoCreator);
64 
68  void unRegisterMsrInfo(const std::string& measureDefaultName);
69 
72  void getRegistredMsrColl(StringVector& registredMsrColl) const;
73 
79  BoolResult createMsrInfo(const std::string& measureDefaultName,
80  const std::string& measureName,
81  const bool b2dMsrMode,
82  const GeometricCalibrationConstPtr& pGlobalGeometricCalibration,
83  const MeasureConfigConstPtr& pMeasureConfig,
84  const DataItemConstPtr& pMeasureParams,
85  MeasureInfoPtr& pMeasureInfo) const;
86 
87 // attributes
88 protected:
90  typedef std::map<std::string, MsrInfoCreator> FactoryMap;
91 
94 };
95 
98 
99 } // end of namespace analysis
100 } // end of namespace shape
101 } // end of namespace ipsdk
102 
103 #pragma warning (pop)
104 
105 #endif // __IPSDKBASESHAPEANALYSIS_MEASUREINFOFACTORY_H__
PYIPSDKBASE_API bool isRegistredMsrInfo(const std::string &measureDefaultName)
test if a given measure information is already registred
Predefined types for geometric calibration management.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::shared_ptr< const MeasureConfig > MeasureConfigConstPtr
shared pointer to const MeasureConfig object
Definition: MeasureConfigTypes.h:89
boost::shared_ptr< const BaseDataItem > DataItemConstPtr
shared pointer to const DataItem
Definition: DataItemTypes.h:149
boost::shared_ptr< const ipsdk::GeometricCalibration > GeometricCalibrationConstPtr
shared pointer to const ipsdk::GeometricCalibration
Definition: GeometricCalibrationTypes.h:31
Definition of import/export macro for library.
#define IPSDKBASESHAPEANALYSIS_API
Import/Export macro for library IPSDKBaseShapeAnalysis.
Definition: IPSDKBaseShapeAnalysisExports.h:25
Factory singleton allowing dynamic creation of registred measure information class.
Definition: MeasureInfoFactory.h:39
Predefined types for shape analysis measurement informations management.
PYIPSDKBASE_API ipsdk::StringVector getRegistredMsrColl()
Predefined base collection types for library.
std::map< std::string, MsrInfoCreator > FactoryMap
typedef for string associated to measure information object creation function
Definition: MeasureInfoFactory.h:90
FactoryMap _factoryMap
map storing string to creation function association
Definition: MeasureInfoFactory.h:93
MeasureInfoPtr(* MsrInfoCreator)()
creation function for shared measure information objects
Definition: MeasureInfoTypes.h:163
std::vector< std::string > StringVector
stl vector collections
Definition: BaseCollections.h:38
boost::shared_ptr< BaseMeasureInfo > MeasureInfoPtr
shared pointer to shape measure information object
Definition: MeasureInfoTypes.h:125