ImagingTools Core SDK
CModelUpdateBridgeComp.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 <ibase/TModelObserverCompWrap.h>
7#include <icomp/TMakeComponentWrap.h>
8#include <imod/TSingleModelObserverBase.h>
9
10
11namespace imtbase
12{
13
14
15class CModelUpdateBridgeComp: public icomp::CComponentBase, public imod::TSingleModelObserverBase<istd::IChangeable>
16{
17public:
18 typedef icomp::CComponentBase BaseClass;
19
20 I_BEGIN_COMPONENT(CModelUpdateBridgeComp);
21 I_ASSIGN_MULTI_0(m_slaveModelCompPtr, "SlaveModels", "Slave models", false);
22 I_END_COMPONENT
23
24 // reimplemented (imod::CSingleModelObserverBase)
25 virtual void BeforeUpdate(imod::IModel* modelPtr) override;
26 virtual void AfterUpdate(imod::IModel* modelPtr, const istd::IChangeable::ChangeSet& changeSet) override;
27
28private:
29 I_MULTIREF(istd::IChangeable, m_slaveModelCompPtr);
30};
31
32
33} // namespace imtbase
34
35