ACF $AcfVersion:0$
CAnnulusSegment.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/CAnnulus.h>
7
8
9namespace i2d
10{
11
12
17{
18public:
20
23 const i2d::CVector2d& center,
24 double innerRadius,
25 double outerRadius,
26 double beginAngle,
27 double endAngle);
28
29 double GetBeginAngle() const;
30 void SetBeginAngle(double angle);
31 double GetEndAngle() const;
32 void SetEndAngle(double angle);
33
37 bool Contains(const i2d::CVector2d& point) const;
38
39 // reimplemented (i2d::IObject2d)
40 virtual CRectangle GetBoundingBox() const override;
41 virtual bool Transform(
42 const ITransformation2d& transformation,
44 double* errorFactorPtr = NULL) override;
45 virtual bool InvTransform(
46 const ITransformation2d& transformation,
48 double* errorFactorPtr = NULL) override;
49
50 // reimplemented (istd::IChangeable)
51 virtual int GetSupportedOperations() const override;
52 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
54
55 // reimplemented (iser::ISerializable)
56 virtual bool Serialize(iser::IArchive& archive) override;
57
58private:
59 istd::CRange m_angleRange;
60};
61
62
63} // namespace i2d
64
65
66
67
Definition of graphical annulus object.
Definition CAnnulus.h:20
Radial segment of the annulus object.
double GetEndAngle() const
virtual CRectangle GetBoundingBox() const override
Get bounding box of this shape.
virtual bool Serialize(iser::IArchive &archive) override
Load or store state of this object as a archive stream.
virtual istd::TUniqueInterfacePtr< istd::IChangeable > CloneMe(CompatibilityMode mode=CM_WITHOUT_REFS) const override
Make a copy of this object.
virtual int GetSupportedOperations() const override
Get set of flags for supported operations.
virtual bool CopyFrom(const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override
void SetEndAngle(double angle)
bool Contains(const i2d::CVector2d &point) const
Return true if a given point is inside of annulus segment area.
CAnnulusSegment(const i2d::CVector2d &center, double innerRadius, double outerRadius, double beginAngle, double endAngle)
double GetBeginAngle() const
virtual bool Transform(const ITransformation2d &transformation, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=NULL) override
Transform this object using some transformation.
virtual bool InvTransform(const ITransformation2d &transformation, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=NULL) override
Do inverse transformation of this object.
void SetBeginAngle(double angle)
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 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
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