ACF $AcfVersion:0$
CPosition2d.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// ACF includes
6#include <i2d/CObject2dBase.h>
7#include <i2d/CVector2d.h>
8
9
10namespace i2d
11{
12
13
18{
19public:
20 static QByteArray GetTypeName();
21
23 CPosition2d(const CVector2d& center);
24
25 const CVector2d& GetPosition() const;
26 void SetPosition(const CVector2d& position);
27 void Translate(const i2d::CVector2d& vector);
28 CPosition2d GetTranslated(const i2d::CVector2d& vector) const;
29
30 // reimplemented (i2d::IObject2d)
31 virtual CVector2d GetCenter() const override;
32 virtual void MoveCenterTo(const CVector2d& position) override;
33 virtual CRectangle GetBoundingBox() const override;
34 virtual bool Transform(
35 const ITransformation2d& transformation,
37 double* errorFactorPtr = NULL) override;
38 virtual bool InvTransform(
39 const ITransformation2d& transformation,
41 double* errorFactorPtr = NULL) override;
42 virtual bool GetTransformed(
43 const ITransformation2d& transformation,
44 IObject2d& result,
46 double* errorFactorPtr = NULL) const override;
47 virtual bool GetInvTransformed(
48 const ITransformation2d& transformation,
49 IObject2d& result,
51 double* errorFactorPtr = NULL) const override;
52
53 // reimplemented (iser::IObject)
54 virtual QByteArray GetFactoryId() const override;
55
56 // reimplemented (iser::ISerializable)
57 virtual bool Serialize(iser::IArchive& archive) override;
58
59 // reimplemented (istd::IChangeable)
60 virtual int GetSupportedOperations() const override;
61 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
62 virtual bool IsEqual(const istd::IChangeable& object) const override;
64
65protected:
67};
68
69
70// inline methods
71
73{
74 return m_position;
75}
76
77
78inline void CPosition2d::Translate(const i2d::CVector2d& vector)
79{
80 m_position += vector;
81}
82
83
85{
86 CPosition2d translatedPosition = *this;
87
88 translatedPosition.Translate(vector);
89
90 return translatedPosition;
91}
92
93
94} // namespace i2d
95
96
97
Base class for 2D-objects implementing interface i2d::IObject2d.
Definition of graphical point object.
Definition CPosition2d.h:18
CPosition2d GetTranslated(const i2d::CVector2d &vector) const
Definition CPosition2d.h:84
const CVector2d & GetPosition() const
Definition CPosition2d.h:72
virtual bool Serialize(iser::IArchive &archive) override
Load or store state of this object as a archive stream.
virtual bool CopyFrom(const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override
virtual bool GetTransformed(const ITransformation2d &transformation, IObject2d &result, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=NULL) const override
Calulate transformation of the object into second one.
virtual CRectangle GetBoundingBox() const override
Get bounding box of this shape.
virtual bool IsEqual(const istd::IChangeable &object) const override
Compare this object with another object.
static QByteArray GetTypeName()
virtual QByteArray GetFactoryId() const override
void SetPosition(const CVector2d &position)
virtual CVector2d GetCenter() const override
Returns center of this 2D-object.
virtual bool InvTransform(const ITransformation2d &transformation, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=NULL) override
Do inverse transformation of this object.
virtual void MoveCenterTo(const CVector2d &position) override
Move object to position position.
virtual bool Transform(const ITransformation2d &transformation, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=NULL) override
Transform this object using some transformation.
virtual istd::TUniqueInterfacePtr< istd::IChangeable > CloneMe(CompatibilityMode mode=CM_WITHOUT_REFS) const override
Make a copy of this object.
virtual bool GetInvTransformed(const ITransformation2d &transformation, IObject2d &result, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=NULL) const override
Calulate inverse transformation of the object into second one.
CVector2d m_position
Definition CPosition2d.h:66
void Translate(const i2d::CVector2d &vector)
Definition CPosition2d.h:78
CPosition2d(const CVector2d &center)
virtual int GetSupportedOperations() const override
Get set of flags for supported operations.
Definition of rectangle area orthogonal to axis of coordination system.
Definition CRectangle.h:27
Definition of position or mathematical vector on 2D plane.
Definition CVector2d.h:29
Common interface for describing the 2D-objects.
Definition IObject2d.h:26
Common interface for all calibration objects.
@ EM_NONE
There are no preferences, should be automatically selected.
Represents an input/output persistence archive for object serialization.
Definition IArchive.h:164
Common interface for data model objects, which can be changed.
Definition IChangeable.h:28
CompatibilityMode
Control how relationship betweeen objects are interpreted.
@ CM_WITHOUT_REFS
External references are simple ignored.
Unique ownership smart pointer for interface types.
#define NULL
Definition istd.h:74
Contains the 2D objects.
Definition CAffine2d.h:11