ICF 3.0.5.47
Technical documentation of ICF Libraries
CAffineCalibration2dComp.h
Go to the documentation of this file.
1/********************************************************************************
2** This file is part of the ICF Framework. Copyright (C) Witold Gantzke & Kirill Lepskiy
3** ICF Framework may be used under the terms of the LGPL License v. 2.1 by the Free Software Foundation.
4********************************************************************************/
5
6#pragma once
7
8
9// ICF includes
13
14
15namespace icalib
16{
17
18
25 virtual public i2d::ICalibration2dProvider
26{
27public:
30
31 I_BEGIN_COMPONENT(CAffineCalibration2dComp);
32 I_REGISTER_INTERFACE(ICalibration2d);
33 I_REGISTER_INTERFACE(ITransformation2d);
34 I_REGISTER_INTERFACE(iser::ISerializable);
35 I_REGISTER_INTERFACE(i2d::CAffineTransformation2d);
36 I_REGISTER_INTERFACE(i2d::ICalibration2dProvider);
37
38 I_ASSIGN(m_m00AttrPtr, "M00", "Matrix value at the position (0, 0)", false, 1.0);
39 I_ASSIGN(m_m10AttrPtr, "M10", "Matrix value at the position (1, 0)", false, 0);
40 I_ASSIGN(m_m01AttrPtr, "M01", "Matrix value at the position (0, 1)", false, 0);
41 I_ASSIGN(m_m11AttrPtr, "M11", "Matrix value at the position (1, 1)", false, 1.0);
42 I_ASSIGN(m_translationXAttrPtr, "TranslationX", "Translation in X-direction", false, 0.0);
43 I_ASSIGN(m_translationYAttrPtr, "TranslationY", "Translation in Y-direction", false, 0.0);
44 I_ASSIGN(m_argumentUnitInfoCompPtr, "ArgumentUnitInfo", "Unit information for calibration argument", false, "ArgumentUnitInfo");
45 I_ASSIGN(m_resultUnitInfoCompPtr, "ResultUnitInfo", "Unit information for calibration argument", false, "ResultUnitInfo");
46 I_END_COMPONENT;
47
48 // reimplemented (i2d::ICalibration2dProvider)
49 const i2d::ICalibration2d* GetCalibration() const override;
50
51protected:
52 // reimplemented (icomp::CComponentBase)
53 void OnComponentCreated() override;
54 void OnComponentDestroyed() override;
55
56private:
57 I_ATTR(double, m_m00AttrPtr);
58 I_ATTR(double, m_m10AttrPtr);
59 I_ATTR(double, m_m01AttrPtr);
60 I_ATTR(double, m_m11AttrPtr);
61 I_ATTR(double, m_translationXAttrPtr);
62 I_ATTR(double, m_translationYAttrPtr);
63 I_REF(imath::IUnitInfo, m_argumentUnitInfoCompPtr);
64 I_REF(imath::IUnitInfo, m_resultUnitInfoCompPtr);
65};
66
67
68} // namespace icalib
69
70
Definition of an affine transformation for 2D-spaces.
Common interface for an object, which delivers a 2D-calibration.
Attributable component for affine 2D calibration.
void OnComponentDestroyed() override
const i2d::ICalibration2d * GetCalibration() const override
Get access to transformation object, which transforms a local logical coordinate system to global one...
Definition of an affine transformation for 2D-spaces.
Base class for component implementation.
Common interface to get information about a measurement unit.
Definition IUnitInfo.h:27
Common class for all classes which objects can be archived or restored from archive.
Contains interfaces, implementations and components related to 2D calibration and transformations.

© Witold Gantzke and Kirill Lepskiy