IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
MeasureInfoTypes.h
Go to the documentation of this file.
1 // MeasureInfoTypes.h:
3 // -------------------
4 //
15 
16 #ifndef __IPSDKBASESHAPEANALYSIS_MEASUREINFOTYPES_H__
17 #define __IPSDKBASESHAPEANALYSIS_MEASUREINFOTYPES_H__
18 
22 #include <boost/shared_ptr.hpp>
23 #include <boost/weak_ptr.hpp>
24 #include <boost/optional.hpp>
25 #include <map>
26 
27 namespace ipsdk {
28 namespace shape {
29 namespace analysis {
30 
31 class BaseMeasureInfo;
32 class MeasureInfoSet;
33 class MeasureInfoFactory;
34 
37 
41 
43  (eMPP_Generic)
47 )
48 
52 
53  (eMVP_2d)
54  (eMVP_3d)
55  (eMVP_2d3d)
56 )
57 
61 
63  (eMNT_Default)
64 )
65 
69 
74 )
75 
79 
80  (eMUF_NoUnit)
83  (eMUF_AreaUnit)
86 )
87 
90 
94 template <eMsrProcessingPolicy::domain msrProcessingPolicy>
96 
98 template <> struct MsrProcessingVolumePolicy<eMsrProcessingPolicy::eMPP_Indivisible> {static const eMsrVolumePolicy::domain g_msrVolumePolicy = eMsrVolumePolicy::eMVP_2d3d;};
99 template <> struct MsrProcessingVolumePolicy<eMsrProcessingPolicy::eMPP_Generic> {static const eMsrVolumePolicy::domain g_msrVolumePolicy = eMsrVolumePolicy::eMVP_2d3d;};
100 template <> struct MsrProcessingVolumePolicy<eMsrProcessingPolicy::eMPP_Geometry2d> {static const eMsrVolumePolicy::domain g_msrVolumePolicy = eMsrVolumePolicy::eMVP_2d;};
101 template <> struct MsrProcessingVolumePolicy<eMsrProcessingPolicy::eMPP_Geometry3d> {static const eMsrVolumePolicy::domain g_msrVolumePolicy = eMsrVolumePolicy::eMVP_3d;};
102 template <> struct MsrProcessingVolumePolicy<eMsrProcessingPolicy::eMPP_Intensity> {static const eMsrVolumePolicy::domain g_msrVolumePolicy = eMsrVolumePolicy::eMVP_2d3d;};
107 
109 typedef boost::shared_ptr<BaseMeasureInfo> MeasureInfoPtr;
112 typedef boost::shared_ptr<const BaseMeasureInfo> MeasureInfoConstPtr;
113 
115 typedef boost::weak_ptr<BaseMeasureInfo> MeasureInfoWeakPtr;
116 
118 typedef boost::weak_ptr<const BaseMeasureInfo> MeasureInfoConstWeakPtr;
119 
121 typedef std::map<std::string, MeasureInfoPtr> MeasureInfoColl;
122 
124 typedef std::map<std::string, MeasureInfoWeakPtr> MeasureInfoWeakPtrColl;
127 typedef boost::shared_ptr<MeasureInfoSet> MeasureInfoSetPtr;
128 
130 typedef boost::shared_ptr<const MeasureInfoSet> MeasureInfoSetConstPtr;
131 
133 typedef MeasureInfoPtr (*MsrInfoCreator)();
134 
136 typedef std::map<std::string, std::string> AliasMap;
137 
139 struct MeasureId
140 {
142  std::string _defaultName;
143 
146 
149 };
150 
152 typedef boost::optional<MeasureId> OptMeasureId;
153 
155 typedef std::map<std::string, OptMeasureId> DependencyMap;
156 
158 typedef boost::shared_ptr<DependencyMap> DependencyMapPtr;
159 
161 typedef boost::shared_ptr<const DependencyMap> DependencyMapConstPtr;
162 
165 
166 } // end of namespace analysis
167 } // end of namespace shape
168 } // end of namespace ipsdk
170 #endif // __IPSDKBASESHAPEANALYSIS_MEASUREINFOTYPES_H__
measure can only be used in 3d case
Definition: MeasureInfoTypes.h:64
generic measure using no input data for processing and requesting a single pass processing ...
Definition: MeasureInfoTypes.h:44
std::map< std::string, MeasureInfoWeakPtr > MeasureInfoWeakPtrColl
collection of weak pointer to shape measure information object
Definition: MeasureInfoTypes.h:154
geometry measure using shape 3d data for processing
Definition: MeasureInfoTypes.h:50
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 BaseMeasureInfo > MeasureInfoConstPtr
shared pointer to const shape measure information object
Definition: MeasureInfoTypes.h:142
boost::shared_ptr< const BaseDataItem > DataItemConstPtr
shared pointer to const DataItem
Definition: DataItemTypes.h:149
std::string _defaultName
default name associated to measure
Definition: MeasureInfoTypes.h:172
boost::weak_ptr< BaseMeasureInfo > MeasureInfoWeakPtr
weak pointer to shape measure information object
Definition: MeasureInfoTypes.h:145
boost::shared_ptr< DependencyMap > DependencyMapPtr
shared pointer to dependency map object
Definition: MeasureInfoTypes.h:188
structure allowing to retrieve a measure volume policy given a processing measure policy ...
Definition: MeasureInfoTypes.h:125
measure requires boundary approximation data from shape
Definition: MeasureInfoTypes.h:92
measure requires row intersection data from shape
Definition: MeasureInfoTypes.h:90
eMsrVolumePolicy
Enumerate describing measure volume policy.
Definition: MeasureInfoTypes.h:60
boost::weak_ptr< const BaseMeasureInfo > MeasureInfoConstWeakPtr
weak pointer to const shape measure information object
Definition: MeasureInfoTypes.h:148
measure result can be interpreted as an angular measurement, its unit is defined as radian ...
Definition: MeasureInfoTypes.h:114
std::map< std::string, MeasureInfoPtr > MeasureInfoColl
collection of shared pointer to shape measure information object
Definition: MeasureInfoTypes.h:151
boost::optional< MeasureId > OptMeasureId
optional structure allowing to identify a measure
Definition: MeasureInfoTypes.h:182
MeasureConfigConstPtr _pConfig
primary configuration associated to measure
Definition: MeasureInfoTypes.h:175
boost::shared_ptr< const DependencyMap > DependencyMapConstPtr
shared pointer to const dependency map object
Definition: MeasureInfoTypes.h:191
default measure name
Definition: MeasureInfoTypes.h:78
eMsrUnitFormat
Enumerate describing unit format associated to measure.
Definition: MeasureInfoTypes.h:102
eMsrShapeRequirements
Enumerate describing shape data requirement for measure computation.
Definition: MeasureInfoTypes.h:86
eMsrProcessingPolicy
Enumerate describing measure processing policy.
Definition: MeasureInfoTypes.h:42
geometry measure using shape 2d data for processing
Definition: MeasureInfoTypes.h:48
structure allowing to identify a measure
Definition: MeasureInfoTypes.h:169
std::map< std::string, std::string > AliasMap
map associating a string to an other (an alias map)
Definition: MeasureInfoTypes.h:166
measure unit is associated to a custom format
Definition: MeasureInfoTypes.h:106
measure result can be interpreted as a length measurement, its unit is retrieved from calibration uni...
Definition: MeasureInfoTypes.h:108
generic measure using no input data for processing
Definition: MeasureInfoTypes.h:46
measure can only be used in 2d case
Definition: MeasureInfoTypes.h:62
Predefined types for measure primary configuration.
measure requires row intersection and boundary approximation data from shape
Definition: MeasureInfoTypes.h:94
geometry measure using image data for processing
Definition: MeasureInfoTypes.h:52
measure is not associated to any unit
Definition: MeasureInfoTypes.h:104
MeasureInfoPtr(* MsrInfoCreator)()
creation function for shared measure information objects
Definition: MeasureInfoTypes.h:163
std::map< std::string, OptMeasureId > DependencyMap
collection of measure dependencies
Definition: MeasureInfoTypes.h:185
boost::shared_ptr< MeasureInfoSet > MeasureInfoSetPtr
shared pointer to shape measure information set
Definition: MeasureInfoTypes.h:157
measure name attributed by user
Definition: MeasureInfoTypes.h:76
Predefined types for data items.
Predefined macros for enumerates management.
measure do not need any data from shape
Definition: MeasureInfoTypes.h:88
measure can be used in 2d and 3d cases
Definition: MeasureInfoTypes.h:66
#define IPSDK_ENUM(enumTypeStr, enumSeq)
macro allowing to declare an enumerate for library
Definition: EnumMacros.h:26
DataItemConstPtr _pParams
specific parameters associated to measure
Definition: MeasureInfoTypes.h:178
measure result can be interpreted as an area measurement, its unit is retrieved from calibration unit...
Definition: MeasureInfoTypes.h:110
measure result can be interpreted as a volume measurement, its unit is retrieved from calibration uni...
Definition: MeasureInfoTypes.h:112
eMsrNameType
Enumerate describing measure name type.
Definition: MeasureInfoTypes.h:74
boost::shared_ptr< const MeasureInfoSet > MeasureInfoSetConstPtr
shared pointer to const shape measure information set
Definition: MeasureInfoTypes.h:160
boost::shared_ptr< BaseMeasureInfo > MeasureInfoPtr
shared pointer to shape measure information object
Definition: MeasureInfoTypes.h:125