ImagingTools Core SDK
CQmlRectangleShape.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/CRectangle.h>
10#include <imod/TSingleModelObserverBase.h>
11
13#include "dummy.h"
14
15
16namespace imtqml2d
17{
18
19class CQmlRectangleShape: public sdl::imtsdl2d::imt2d::CRectangle2d, public imod::TSingleModelObserverBase<i2d::CRectangle>
20{
21 Q_OBJECT
22
23public:
24 typedef imod::CSingleModelObserverBase BaseClass;
25 typedef sdl::imtsdl2d::imt2d::CRectangle2d BaseClass2;
26
27 [[nodiscard]] bool IsValid() const;
28
29public:
30 virtual void SetTopLeft(sdl::imtsdl2d::imt2d::CPoint2d newTopLeft) override;
31 virtual void SetBottomRight(sdl::imtsdl2d::imt2d::CPoint2d newBottomRight) override;
32
33protected:
34 // reimplemented (imod::TSingleModelObserverBase)
35 virtual bool OnModelAttached(imod::IModel* modelPtr, istd::IChangeable::ChangeSet& changeMask) override;
36 virtual bool OnModelDetached(imod::IModel* modelPtr) override;
37 virtual void OnUpdate(const istd::IChangeable::ChangeSet& changeSet) override;
38};
39
40
41} // namespace imtqml2d