IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
GeometricCalibration.h
1 // GeometricCalibration.h:
3 // -----------------------
4 //
15 
16 #ifndef __IPSDKBASEDATA_GEOMETRICCALIBRATION_H__
17 #define __IPSDKBASEDATA_GEOMETRICCALIBRATION_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::GeometricCalibration::_unitStr': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'ipsdk::GeometricCalibration'
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
25 #include <IPSDKSerialization/Engine/BaseSerializationObject.h>
27 
28 namespace ipsdk {
29 
32 
34 {
35  // declare serial class
37 
38 public:
44 
45 // methods
46 public:
51  inline void init2d(const ipReal32 scale,
52  const std::string& unitStr = "",
53  const ipReal32 xOrigin = 0.f,
54  const ipReal32 yOrigin = 0.f,
55  const ipReal32 qr = 0.f,
56  const ipReal32 qi = 0.f,
57  const ipReal32 qj = 0.f);
58  void init2d(const ipReal32 xScale,
59  const ipReal32 yScale,
60  const std::string& unitStr = "",
61  const ipReal32 xOrigin = 0.f,
62  const ipReal32 yOrigin = 0.f,
63  const ipReal32 qr = 0.f,
64  const ipReal32 qi = 0.f,
65  const ipReal32 qj = 0.f);
67 
72  inline void init3d(const ipReal32 scale,
73  const std::string& unitStr = "",
74  const ipReal32 xOrigin = 0.f,
75  const ipReal32 yOrigin = 0.f,
76  const ipReal32 zOrigin = 0.f,
77  const ipReal32 qr = 0.f,
78  const ipReal32 qi = 0.f,
79  const ipReal32 qj = 0.f,
80  const ipReal32 qk = 0.f);
81  void init3d(const ipReal32 xScale,
82  const ipReal32 yScale,
83  const ipReal32 zScale,
84  const std::string& unitStr = "",
85  const ipReal32 xOrigin = 0.f,
86  const ipReal32 yOrigin = 0.f,
87  const ipReal32 zOrigin = 0.f,
88  const ipReal32 qr = 0.f,
89  const ipReal32 qi = 0.f,
90  const ipReal32 qj = 0.f,
91  const ipReal32 qk = 0.f);
93 
96  inline ipReal32
97  getXScale() const;
98 
101  inline ipReal32
102  getYScale() const;
103 
106  inline ipReal32
107  getZScale() const;
108 
110  inline const std::string&
111  getUnitStr() const;
112 
115  inline ipReal32
116  getXOrigin() const;
117 
120  inline ipReal32
121  getYOrigin() const;
122 
125  inline ipReal32
126  getZOrigin() const;
127 
130  inline ipReal32
131  getXOriginUncalibrated() const;
132 
135  inline ipReal32
136  getYOriginUncalibrated() const;
137 
140  inline ipReal32
141  getZOriginUncalibrated() const;
142 
143 
145  inline ipReal32
146  getRotationQr() const;
147 
149  inline ipReal32
150  getRotationQi() const;
151 
153  inline ipReal32
154  getRotationQj() const;
155 
157  inline ipReal32
158  getRotationQk() const;
159 
162  void setOrigin(const ipReal32 xOrigin, const ipReal32 yOrigin);
163  void setOrigin(const ipReal32 xOrigin, const ipReal32 yOrigin, const ipReal32 zOrigin);
165 
167  void setUnitStr(const std::string& unitStr);
168 
171  void setScale(const ipReal32 scale, const std::string& unitStr);
172  void setScale(const ipReal32 xScale, const ipReal32 yScale, const std::string& unitStr);
173  void setScale(const ipReal32 xScale, const ipReal32 yScale, const ipReal32 zScale, const std::string& unitStr);
175 
178  bool operator== (const GeometricCalibration& calibration) const;
179  bool operator!= (const GeometricCalibration& calibration) const;
181 
182 // attributes
183 protected:
187 
191 
195 
197  std::string _unitStr;
198 
202 
206 
210 
214 };
215 
218 
219 inline void
221  const std::string& unitStr,
222  const ipReal32 xOrigin,
223  const ipReal32 yOrigin,
224  const ipReal32 qr,
225  const ipReal32 qi,
226  const ipReal32 qj)
227 {
228  init2d(scale, scale, unitStr, xOrigin, yOrigin, qr, qi, qj);
229 }
230 
231 inline void
233  const std::string& unitStr,
234  const ipReal32 xOrigin,
235  const ipReal32 yOrigin,
236  const ipReal32 zOrigin,
237  const ipReal32 qr,
238  const ipReal32 qi,
239  const ipReal32 qj,
240  const ipReal32 qk)
241 {
242  init3d(scale, scale, scale, unitStr, xOrigin, yOrigin, zOrigin, qr, qi, qj , qk);
243 }
244 
245 inline ipReal32
247 {
248  return _xScale;
249 }
250 
251 inline ipReal32
253 {
254  return _yScale;
255 }
256 
257 inline ipReal32
259 {
260  return _zScale;
261 }
262 
263 inline const std::string&
265 {
266  return _unitStr;
267 }
268 
269 inline ipReal32
271 {
272  return _xOrigin;
273 }
274 
275 inline ipReal32
277 {
278  return _yOrigin;
279 }
280 
281 inline ipReal32
283 {
284  return _zOrigin;
285 }
286 
287 inline ipReal32
289 {
290  return _xOrigin / _xScale;
291 }
292 
293 inline ipReal32
295 {
296  return _yOrigin / _yScale;
297 }
298 
299 inline ipReal32
301 {
302  return _zOrigin / _zScale;
303 }
304 
305 inline ipReal32
307 {
308  return _rotation._qr;
309 }
310 
311 inline ipReal32
313 {
314  return _rotation._qi;
315 }
316 
317 inline ipReal32
319 {
320  return _rotation._qj;
321 }
322 
323 inline ipReal32
325 {
326  return _rotation._qk;
327 }
328 
331 
332 } // end of namespace ipsdk
333 
334 #pragma warning (pop)
335 
336 #endif // __IPSDKBASEDATA_GEOMETRICCALIBRATION_H__
ipReal32 getZOriginUncalibrated() const
Definition: GeometricCalibration.h:300
ipReal32 _zOrigin
Definition: GeometricCalibration.h:209
Predefined types for geometric calibration management.
#define IPSDK_DECLARE_SERIAL_WITH_COPY(libraryName, className)
macro enabling serialization on class
Definition: SerializationHdrMacro.h:73
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
IPSDKBASEDATA_API bool operator==(const OffsetXY &offset1, const OffsetXY &offset2)
Comparison operators for offsets.
ipReal32 _zScale
Definition: GeometricCalibration.h:194
ipReal32 getYOrigin() const
Definition: GeometricCalibration.h:276
ipReal32 getXScale() const
Definition: GeometricCalibration.h:246
ipReal32 _qi
Quaternion part along the i-axis.
Definition: GeometricCalibrationTypes.h:52
ipReal32 getZOrigin() const
Definition: GeometricCalibration.h:282
ipReal32 _qr
Quaternion real part.
Definition: GeometricCalibrationTypes.h:49
ipReal32 getRotationQj() const
retrieve the j quaternion rotation component
Definition: GeometricCalibration.h:318
RotationQuaternion _rotation
Definition: GeometricCalibration.h:213
ipReal32 _xOrigin
Definition: GeometricCalibration.h:201
Definition of import/export macro for library.
ipReal32 getXOrigin() const
Definition: GeometricCalibration.h:270
ipReal32 _qk
Quaternion part along the k-axis.
Definition: GeometricCalibrationTypes.h:58
ipReal32 getYScale() const
Definition: GeometricCalibration.h:252
std::string _unitStr
unit associated to length measurement
Definition: GeometricCalibration.h:197
ipReal32 getXOriginUncalibrated() const
Definition: GeometricCalibration.h:288
Quaternion type defined for rotations.
Definition: GeometricCalibrationTypes.h:37
ipReal32 _yScale
Definition: GeometricCalibration.h:190
boost::enable_if< typename boost::mpl::and_< typename boost::is_same< boost::mpl::int_< AttributeType1::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_Value > >::type, typename boost::is_same< boost::mpl::int_< AttributeType2::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_Value > >::type, typename boost::is_same< typename AttributeType1::ValueType, typename AttributeType2::ValueType >::type >::type, RulePtr >::type operator!=(const boost::shared_ptr< AttributeType1 > &pAttribute1, const boost::shared_ptr< AttributeType2 > &pAttribute2)
Rule allowing to check whether a value attribute is not equal another.
Definition: AttributeComparisonRuleOperators.h:77
ipReal32 getRotationQr() const
retrieve the real quaternion rotation component
Definition: GeometricCalibration.h:306
ipReal32 _xScale
Definition: GeometricCalibration.h:186
const std::string & getUnitStr() const
retrieve unit associated to length measurement
Definition: GeometricCalibration.h:264
ipReal32 _qj
Quaternion part along the j-axis.
Definition: GeometricCalibrationTypes.h:55
ipReal32 getRotationQk() const
retrieve the k quaternion rotation component
Definition: GeometricCalibration.h:324
Class allowing to encapsulate an image geometric calibration.
Definition: GeometricCalibration.h:33
void init2d(const ipReal32 scale, const std::string &unitStr="", const ipReal32 xOrigin=0.f, const ipReal32 yOrigin=0.f, const ipReal32 qr=0.f, const ipReal32 qi=0.f, const ipReal32 qj=0.f)
initialization of a 2d image geometric calibration
Definition: GeometricCalibration.h:220
void init3d(const ipReal32 scale, const std::string &unitStr="", const ipReal32 xOrigin=0.f, const ipReal32 yOrigin=0.f, const ipReal32 zOrigin=0.f, const ipReal32 qr=0.f, const ipReal32 qi=0.f, const ipReal32 qj=0.f, const ipReal32 qk=0.f)
initialization of a 3d image geometric calibration
Definition: GeometricCalibration.h:232
#define IPSDKBASEDATA_API
Import/Export macro for library IPSDKUtil.
Definition: IPSDKBaseDataExports.h:27
ipReal32 _yOrigin
Definition: GeometricCalibration.h:205
ipReal32 getZScale() const
Definition: GeometricCalibration.h:258
Base class for serializable class.
Definition: BaseSerializationObject.h:33
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
ipReal32 getYOriginUncalibrated() const
Definition: GeometricCalibration.h:294
ipReal32 getRotationQi() const
retrieve the i quaternion rotation component
Definition: GeometricCalibration.h:312