ICF 3.1.1.10
Technical documentation of ICF Libraries
CAnnulusSegment.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 <i2d/CAnnulus.h>
11
12
13namespace i2d
14{
15
16
21{
22public:
24
27 const i2d::CVector2d& center,
28 double innerRadius,
29 double outerRadius,
30 double beginAngle,
31 double endAngle);
32
33 double GetBeginAngle() const;
34 void SetBeginAngle(double angle);
35 double GetEndAngle() const;
36 void SetEndAngle(double angle);
37
41 bool Contains(const i2d::CVector2d& point) const;
42
43 // reimplemented (i2d::IObject2d)
44 CRectangle GetBoundingBox() const override;
46 const ITransformation2d& transformation,
48 double* errorFactorPtr = nullptr) override;
50 const ITransformation2d& transformation,
52 double* errorFactorPtr = nullptr) override;
53
54 // reimplemented (istd::IChangeable)
55 int GetSupportedOperations() const override;
56 bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
57 std::unique_ptr<istd::IChangeable> CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS) const override;
58
59 // reimplemented (iser::ISerializable)
60 bool Serialize(iser::IArchive& archive) override;
61
62private:
63 istd::CRange m_angleRange;
64};
65
66
67} // namespace i2d
68
69
Definition of graphical annulus object.
Definition CAnnulus.h:24
Radial segment of the annulus object.
double GetEndAngle() const
int GetSupportedOperations() const override
Get set of flags for supported operations.
CRectangle GetBoundingBox() const override
Get bounding box of this shape.
bool Transform(const ITransformation2d &transformation, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=nullptr) override
Transform this object using some transformation.
std::unique_ptr< istd::IChangeable > CloneMe(CompatibilityMode mode=CM_WITHOUT_REFS) const override
Make a copy of this object.
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
bool Serialize(iser::IArchive &archive) override
Load or store state of this object as a archive stream.
bool CopyFrom(const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override
bool InvTransform(const ITransformation2d &transformation, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=nullptr) override
Do inverse transformation of this object.
void SetBeginAngle(double angle)
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 all calibration objects.
@ EM_NONE
There are no preferences, should be automatically selected.
Represent input/output persistence archive.
Definition IArchive.h:34
CompatibilityMode
Control how relationship betweeen objects are interpreted.
@ CM_WITHOUT_REFS
External references are simple ignored.
Contains the 2D objects.
Definition CAffine2d.h:15

© Witold Gantzke and Kirill Lepskiy