ImagingTools Core SDK
CSingleObjectProviderComp.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// ACF includes
6#include <icomp/CComponentBase.h>
7#include <imod/CModelUpdateBridge.h>
8
9// ImtCore includes
10#include <imtbase/IObjectProvider.h>
11
12
13namespace imtbase
14{
15
16
23 public icomp::CComponentBase,
24 virtual public IObjectProvider
25{
26public:
27 typedef icomp::CComponentBase BaseClass;
28
29 I_BEGIN_COMPONENT(CSingleObjectProviderComp);
30 I_REGISTER_INTERFACE(IObjectProvider);
31 I_ASSIGN(m_dataObjectCompPtr, "Object", "Object", false, "Object");
32 I_ASSIGN_TO(m_dataObjectModelCompPtr, m_dataObjectCompPtr, false);
33 I_END_COMPONENT;
34
36
37 // reimplemented (IObjectProvider)
38 virtual const istd::IChangeable* GetDataObject() const override;
39
40protected:
41 // reimplemented (icomp::CComponentBase)
42 virtual void OnComponentCreated() override;
43 virtual void OnComponentDestroyed() override;
44
45protected:
46 I_REF(istd::IChangeable, m_dataObjectCompPtr);
47 I_REF(imod::IModel, m_dataObjectModelCompPtr);
48
49private:
53 imod::CModelUpdateBridge m_modelUpdateBridge;
54};
55
56
57} // namespace imtbase
58
59