IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
FormulaTypes.h
Go to the documentation of this file.
1 // FormulaTypes.h:
3 // ---------------
4 //
14 
15 #ifndef __IPSDKBASESHAPEANALYSIS_FORMULATYPES_H__
16 #define __IPSDKBASESHAPEANALYSIS_FORMULATYPES_H__
17 
19 #include <IPSDKUtil/Tools/ProcessingResult.h>
20 #include <IPSDKUtil/BaseTypes.h>
21 #include <boost/shared_ptr.hpp>
22 #include <boost/variant/variant.hpp>
23 #include <boost/function.hpp>
24 #include <vector>
25 #include <map>
26 
27 namespace ipsdk {
28 namespace shape {
29 namespace analysis {
30 
31 class FormulaManager;
32 
35 
40 
41  // unary arithmetical operators
44 
45  // unary logical operators
46  (eMFOT_Not)
47 
48  // binary arithmetical operators
50  (eMFOT_Minus)
52  (eMFOT_Divide)
54 
55  // binary logical operators
56  (eMFOT_And)
58  (eMFOT_Equal)
60  (eMFOT_Greater)
62  (eMFOT_Lower)
64 )
65 
66 
73 
74  (eMFUAFT_Abs)
75  (eMFUAFT_Sqrt)
76  (eMFUAFT_Exp)
77  (eMFUAFT_Log)
78 
79  (eMFUAFT_Cos)
80  (eMFUAFT_Sin)
81  (eMFUAFT_Tan)
82 
83  (eMFUAFT_ACos)
84  (eMFUAFT_ASin)
86 
88  (eMFUAFT_SinH)
90 )
91 
96 
98 )
99 
104 
106  (eMFGAFT_Max)
108  (eMFGAFT_Mean)
110  (eMFGAFT_StdDev)
112  (eMFGAFT_NormL1)
113  (eMFGAFT_NormL2)
114 )
115 
122 )
123 
128 
129  (eMFTLFT_If)
130 )
134 
139 
140  // image size
142  (eMFR_ImageSizeY)
144 
145  // image center
150  // plan grey level extrema
151  (eMFR_PlanMinGL)
152  (eMFR_PlanMaxGL)
153 )
154 
157 
162 
164  (eMFRT_Logic)
165 
168 )
172 
177 
179  (eMES_Success)
180 
182  (eMES_Warning)
186 )
196 
197 typedef boost::variant<ipBool, ipReal64> FormulaResult;
198 
205 
206 struct ImageConstantId
207 {
209  eMsrFormulaReserved _csteId;
210 
212  boost::optional<ipUInt32> _colorIndex;
213 };
214 
221 
222 struct FormulaVariableId
223 {
225  std::string _varName;
226 
228  boost::optional<ipUInt32> _colorIndex;
231  boost::optional<ipUInt32> _arrayIndex;
232 };
238 
239 typedef boost::shared_ptr<ipReal64> VariableValuePtr;
240 
247 struct ImageConstant
248 {
251 
254 };
258 typedef std::map<ImageConstantId, VariableValuePtr> ConstantMap;
259 
265 
266 struct FormulaVariable
267 {
270 
273 };
277 typedef std::map<FormulaVariableId, VariableValuePtr> VariableMap;
278 
284 
286 {
289 
292 };
293 
301 {
304 
307 };
308 
309 
313 
314 typedef boost::variant<ipBool,
324  > FormulaItem;
325 
327 typedef std::vector<FormulaItem> FormulaItemColl;
328 
331 
334 typedef boost::shared_ptr<FormulaManager> FormulaManagerPtr;
335 
338 
340 typedef boost::function1<bool, const ipUInt32> ResultsAccessor;
341 
343 typedef std::vector<ResultsAccessor> ResultsAccessorColl;
344 
346 typedef std::vector<ResultsAccessorColl> ColorResultsAccessorColl;
347 
350 
351 } // end of namespace analysis
352 } // end of namespace shape
353 } // end of namespace ipsdk
354 
355 #endif // __IPSDKBASESHAPEANALYSIS_FORMULATYPES_H__
Class allowing to encapsulate a typed process result associated to a string description.
Definition: ProcessingResult.h:28
Exponential value [example : &#39;exp(value)&#39;].
Definition: FormulaTypes.h:91
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Hyperbolic tangent value [example : &#39;tanH(value)&#39;].
Definition: FormulaTypes.h:111
std::map< FormulaVariableId, VariableValuePtr > VariableMap
map associating a formula variable id to its value
Definition: FormulaTypes.h:326
Image center X [example : &#39;ImageCenterX&#39;].
Definition: FormulaTypes.h:191
std::vector< FormulaItem > FormulaItemColl
collection of formula item
Definition: FormulaTypes.h:376
Addition unary operator [example : &#39;+value&#39;].
Definition: FormulaTypes.h:43
boost::shared_ptr< FormulaManager > FormulaManagerPtr
shared pointer to formula manager
Definition: FormulaTypes.h:383
Measure formula is associated to an arithmetical result.
Definition: FormulaTypes.h:215
Sinus value of an angle (in radian) [example : &#39;sin(value)&#39;].
Definition: FormulaTypes.h:97
Logical or binary operator [example : &#39;value1 || value2&#39;].
Definition: FormulaTypes.h:61
Maximum value computation [example : &#39;max(value1, value2, value3, ...)&#39;].
Definition: FormulaTypes.h:135
Power binary operator [example : &#39;value1 ^ value2&#39;].
Definition: FormulaTypes.h:57
boost::shared_ptr< ipReal64 > VariableValuePtr
shared pointer to value associated to a variable
Definition: FormulaTypes.h:288
L1 norm (ie. absolute value norm) computation [example : &#39;normL1(value1, value2, value3, ...)&#39;].
Definition: FormulaTypes.h:147
Minimum value computation [example : &#39;min(value1, value2, value3, ...)&#39;].
Definition: FormulaTypes.h:133
Lower comparison operator [example : &#39;value1 < value2&#39;].
Definition: FormulaTypes.h:71
std::string _varName
name of variable
Definition: FormulaTypes.h:274
Tangent value of an angle (in radian) [example : &#39;tan(value)&#39;].
Definition: FormulaTypes.h:99
Square root value [example : &#39;sqrt(value)&#39;].
Definition: FormulaTypes.h:89
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
Image center Z [example : &#39;ImageCenterZ&#39;].
Definition: FormulaTypes.h:195
Image size Z [example : &#39;ImageSizeZ&#39;].
Definition: FormulaTypes.h:189
eMsrFormulaGenericArithmeticFunctionType
Enumerate describing measure formula generic arithmetical function type.
Definition: FormulaTypes.h:131
Hyperbolic sinus value [example : &#39;sinH(value)&#39;].
Definition: FormulaTypes.h:109
Arc Cosinus value [example : &#39;acos(value)&#39;].
Definition: FormulaTypes.h:101
boost::variant< ipBool, ipReal64 > FormulaResult
formula result (floating point or logical result)
Definition: FormulaTypes.h:246
VariableValuePtr _pValue
value associated to variable
Definition: FormulaTypes.h:321
Definition: DataItemNodeHdrMacrosDetails.h:48
std::vector< ResultsAccessor > ResultsAccessorColl
collection of accessors for measure results
Definition: FormulaTypes.h:392
eMsrFormulaGenericArithmeticFunctionType _functionType
formula generic arithmetic function type identifier
Definition: FormulaTypes.h:337
eMsrFormulaReserved
enumerate describing formula reserved variable
Definition: FormulaTypes.h:183
Distance value computation [example : &#39;distance(x0, x1, y0, y1, ...)&#39;, with a list of arguments forme...
Definition: FormulaTypes.h:160
eMsrFormulaResultType
Enumerate describing measure formula result type.
Definition: FormulaTypes.h:211
FormulaVariableId _id
variable identifier
Definition: FormulaTypes.h:318
Formula identifier for image constant optionally associated to a color index .
Definition: FormulaTypes.h:255
Arc Sinus value [example : &#39;asin(value)&#39;].
Definition: FormulaTypes.h:103
Cosinus value of an angle (in radian) [example : &#39;cos(value)&#39;].
Definition: FormulaTypes.h:95
Measure formula evaluation is successful with warnings.
Definition: FormulaTypes.h:231
Subtraction unary operator [example : &#39;-value&#39;].
Definition: FormulaTypes.h:45
ipUInt32 _nbOperands
number of associated operands
Definition: FormulaTypes.h:355
Base types for multiplatform compatibility.
eMsrFormulaBinaryArithmeticFunctionType
Enumerate describing measure formula binary arithmetical function type.
Definition: FormulaTypes.h:120
Logical not unary operator [example : &#39;!value&#39;].
Definition: FormulaTypes.h:47
eMsrFormulaTernaryLogicFunctionType
Enumerate describing measure formula ternary logical function type.
Definition: FormulaTypes.h:169
Equal comparison operator [example : &#39;value1 == value2&#39;].
Definition: FormulaTypes.h:63
boost::function1< bool, const ipUInt32 > ResultsAccessor
Accessor for measure results.
Definition: FormulaTypes.h:389
VariableValuePtr _pValue
value associated to variable
Definition: FormulaTypes.h:302
Formula coupled arithmetic function informations .
Definition: FormulaTypes.h:349
Sum value computation [example : &#39;sum(value1, value2, value3, ...)&#39;].
Definition: FormulaTypes.h:137
eMsrFormulaOperatorType
Enumerate describing measure formula operation type.
Definition: FormulaTypes.h:41
Variance value computation [example : &#39;variance(value1, value2, value3, ...)&#39;].
Definition: FormulaTypes.h:145
Image size Y [example : &#39;ImageSizeY&#39;].
Definition: FormulaTypes.h:187
Multiplication binary operator [example : &#39;value1 * value2&#39;].
Definition: FormulaTypes.h:53
ipUInt32 _nbOperands
number of associated operands
Definition: FormulaTypes.h:340
eMsrFormulaCoupledArithmeticFunctionType _functionType
formula generic arithmetic function type identifier
Definition: FormulaTypes.h:352
boost::optional< ipUInt32 > _arrayIndex
index of variable into array
Definition: FormulaTypes.h:280
Addition binary operator [example : &#39;value1 + value2&#39;].
Definition: FormulaTypes.h:49
Median value computation [example : &#39;median(value1, value2, value3, ...)&#39;].
Definition: FormulaTypes.h:141
Absolute value [example : &#39;abs(value)&#39;].
Definition: FormulaTypes.h:87
Image Constant associated to an identifier and a value .
Definition: FormulaTypes.h:296
bool ipBool
Base types definition.
Definition: BaseTypes.h:47
Current image plan maximum grey level [example : &#39;PlanMaxGL&#39; or &#39;PlanMaxGL{1}&#39; or &#39;PlanMaxGL{green}&#39;]...
Definition: FormulaTypes.h:199
Subtraction binary operator [example : &#39;value1 - value2&#39;].
Definition: FormulaTypes.h:51
Hyperbolic cosinus value [example : &#39;cosH(value)&#39;].
Definition: FormulaTypes.h:107
Measure formula is associated to a logical result.
Definition: FormulaTypes.h:213
Neperian logarithm value [example : &#39;log(value)&#39;].
Definition: FormulaTypes.h:93
ImageConstantId _id
image constant identifier
Definition: FormulaTypes.h:299
boost::variant< ipBool, ipReal64, ImageConstant, FormulaVariable, eMsrFormulaOperatorType, eMsrFormulaUnaryArithmeticFunctionType, eMsrFormulaBinaryArithmeticFunctionType, FormulaGenericArithmeticFunctionInfo, FormulaCoupledArithmeticFunctionInfo, eMsrFormulaTernaryLogicFunctionType > FormulaItem
Concrete formula item variant.
Definition: FormulaTypes.h:373
Arc Tangent value [example : &#39;atan(value)&#39;].
Definition: FormulaTypes.h:105
Arc Tangent value [example : &#39;atan2(valueY, valueX)&#39;].
Definition: FormulaTypes.h:122
Image center Y [example : &#39;ImageCenterY&#39;].
Definition: FormulaTypes.h:193
Formula generic arithmetic function informations .
Definition: FormulaTypes.h:334
eMsrFormulaCoupledArithmeticFunctionType
Enumerate describing measure coupled formula arithmetical function type.
Definition: FormulaTypes.h:158
Formula variable identifier optionally associated to an array and a color index . ...
Definition: FormulaTypes.h:271
Division binary operator [example : &#39;value1 / value2&#39;].
Definition: FormulaTypes.h:55
Greater comparison operator [example : &#39;value1 > value2&#39;].
Definition: FormulaTypes.h:67
eMsrFormulaUnaryArithmeticFunctionType
Enumerate describing measure formula unary arithmetical function type.
Definition: FormulaTypes.h:85
Current image plan minimum grey level [example : &#39;PlanMinGL&#39; or &#39;PlanMinGL{1}&#39; or &#39;PlanMinGL{green}&#39;]...
Definition: FormulaTypes.h:197
Lower or equal comparison operator [example : &#39;value1 <= value2&#39;].
Definition: FormulaTypes.h:73
Standard deviation value computation [example : &#39;stddev(value1, value2, value3, ...)&#39;].
Definition: FormulaTypes.h:143
Measure formula evaluation is successful.
Definition: FormulaTypes.h:229
Not equal comparison operator [example : &#39;value1 != value2&#39;].
Definition: FormulaTypes.h:65
Predefined macros for enumerates management.
Logical and binary operator [example : &#39;value1 && value2&#39;].
Definition: FormulaTypes.h:59
#define IPSDK_ENUM(enumTypeStr, enumSeq)
macro allowing to declare an enumerate for library
Definition: EnumMacros.h:26
Formula variable associated to an identifier and a value .
Definition: FormulaTypes.h:315
std::vector< ResultsAccessorColl > ColorResultsAccessorColl
collection of color accessors for measure results
Definition: FormulaTypes.h:395
Measure formula evaluation failed.
Definition: FormulaTypes.h:233
eFormulaEvaluationStatus
Enumerate describing measure formula evaluation status.
Definition: FormulaTypes.h:227
If logical ternary function [example : &#39;if(predicateValue, successValue, failureValue)&#39;].
Definition: FormulaTypes.h:171
Greater or equal comparison operator [example : &#39;value1 >= value2&#39;].
Definition: FormulaTypes.h:69
L2 norm (ie. euclidian norm) computation [example : &#39;normL2(value1, value2, value3, ...)&#39;].
Definition: FormulaTypes.h:149
Mean value computation [example : &#39;mean(value1, value2, value3, ...)&#39;].
Definition: FormulaTypes.h:139
boost::optional< ipUInt32 > _colorIndex
color index associated to variable
Definition: FormulaTypes.h:277
Image size X [example : &#39;ImageSizeX&#39;].
Definition: FormulaTypes.h:185
std::map< ImageConstantId, VariableValuePtr > ConstantMap
map associating an image constant id to its value
Definition: FormulaTypes.h:307
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53