ICF 3.1.1.10
Technical documentation of ICF Libraries
IObject2d.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
10#include <istd/TOptDelPtr.h>
11#include <iser/IObject.h>
12#include <i2d/ICalibration2d.h>
14
15
16namespace i2d
17{
18
19
20class CVector2d;
21class CRectangle;
22
23
28 virtual public iser::IObject,
29 virtual public ICalibration2dProvider
30{
31public:
33 {
34 CF_OBJECT_POSITION = 0x6ba340
35 };
36
40 virtual CVector2d GetCenter() const = 0;
41
45 virtual void MoveCenterTo(const CVector2d& position) = 0;
46
51 virtual CRectangle GetBoundingBox() const = 0;
52
57 virtual void SetCalibration(istd::TOptDelPtr<const ICalibration2d>&& calibrationPtr) = 0;
58
67 virtual bool Transform(
68 const ITransformation2d& transformation,
70 double* errorFactorPtr = nullptr) = 0;
71
80 virtual bool InvTransform(
81 const ITransformation2d& transformation,
83 double* errorFactorPtr = nullptr) = 0;
84
94 virtual bool GetTransformed(
95 const ITransformation2d& transformation,
96 IObject2d& result,
98 double* errorFactorPtr = nullptr) const = 0;
99
109 virtual bool GetInvTransformed(
110 const ITransformation2d& transformation,
111 IObject2d& result,
113 double* errorFactorPtr = nullptr) const = 0;
114};
115
116
117} // namespace i2d
118
119
Definition of rectangle area orthogonal to axis of coordination system.
Definition CRectangle.h:31
Definition of position or mathematical vector on 2D plane.
Definition CVector2d.h:29
Common interface for an object, which delivers a 2D-calibration.
Common interface for describing the 2D-objects.
Definition IObject2d.h:30
virtual void MoveCenterTo(const CVector2d &position)=0
Move object to position position.
virtual bool InvTransform(const ITransformation2d &transformation, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=nullptr)=0
Do inverse transformation of this object.
virtual CVector2d GetCenter() const =0
Returns center of this 2D-object.
virtual bool GetInvTransformed(const ITransformation2d &transformation, IObject2d &result, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=nullptr) const =0
Calulate inverse transformation of the object into second one.
virtual void SetCalibration(istd::TOptDelPtr< const ICalibration2d > &&calibrationPtr)=0
Set calibration of this object.
virtual CRectangle GetBoundingBox() const =0
Get bounding box of this shape.
virtual bool GetTransformed(const ITransformation2d &transformation, IObject2d &result, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=nullptr) const =0
Calulate transformation of the object into second one.
virtual bool Transform(const ITransformation2d &transformation, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=nullptr)=0
Transform this object using some transformation.
Common interface for all calibration objects.
@ EM_NONE
There are no preferences, should be automatically selected.
Common interface for factorisable model objects.
Definition IObject.h:25
Pointer wrapper providing activatable deleting pointed object during destruction.
Definition TOptDelPtr.h:23
Contains the 2D objects.
Definition CAffine2d.h:15

© Witold Gantzke and Kirill Lepskiy