ImagingTools Core SDK
CQmlAnnulusShape.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QObject>
7
8// ACF includes
9#include <i2d/CAnnulus.h>
10#include <imod/TSingleModelObserverBase.h>
11
13#include "dummy.h"
14
15
16namespace imtqml2d
17{
18
19
20class CQmlAnnulusShape: public sdl::imtsdl2d::imt2d::CAnnulus, public imod::TSingleModelObserverBase<i2d::CAnnulus>
21{
22 Q_OBJECT
23
24public:
25 typedef imod::CSingleModelObserverBase BaseClass;
26 typedef CAnnulus BaseClass2;
27
28 [[nodiscard]] bool IsValid() const;
29
30 // reimplemented (imod::IObserver)
31 virtual bool OnModelAttached(imod::IModel* modelPtr, istd::IChangeable::ChangeSet& changeMask) override;
32 virtual bool OnModelDetached(imod::IModel* modelPtr) override;
33 virtual void OnUpdate(const istd::IChangeable::ChangeSet& changeSet) override;
34
35 // reimplemented (sdl::imtsdl2d::imt2d::CAnnulus)
36 virtual void SetCenter(sdl::imtsdl2d::imt2d::CPoint2d newCenter) override;
37 virtual void SetInnerRadius(double newInnerRadius) override;
38 virtual void SetOuterRadius(double newOuterRadius) override;
39};
40
41
42} // namespace imtqml2d