ImagingTools Core SDK
CMeshViewComp.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 <iqtgui/TGuiObserverWrap.h>
7
8// ImtCore includes
9#include <imt3dgui/CGridShape.h>
10#include <imt3dgui/CMeshShape.h>
11#include <imt3dgui/CRulerShape.h>
12#include <imt3dgui/CAxisShape.h>
13#include <imt3dgui/CView3dProviderComp.h>
14
15
16namespace imt3dgui
17{
18
19
20class CMeshViewComp: public iqtgui::TGuiObserverWrap<CView3dProviderComp, CMeshShape>
21{
22public:
23 typedef iqtgui::TGuiObserverWrap<CView3dProviderComp, CMeshShape> BaseClass;
24
25 I_BEGIN_COMPONENT(CMeshViewComp);
26 I_REGISTER_INTERFACE(imod::IObserver);
27 I_REGISTER_INTERFACE(imod::IModelEditor);
28 I_ASSIGN(m_showInfoBoxAttrPtr, "ShowInfoBox", "Show info box if enabled", true, false);
29 I_ASSIGN(m_defaultShowAxisAttrPtr, "ShowAxis", "If enabled, the axes are shown", true, true);
30 I_ASSIGN(m_defaultShowGridAttrPtr, "ShowGrid", "If enabled, the grid is shown", true, true);
31 I_END_COMPONENT
32
33protected:
34 // reimplemented (iqtui::CGuiComponentBase)
35 virtual void OnGuiCreated() override;
36 virtual void OnGuiDestroyed() override;
37
38 // reimplemented (imt3dgui::ISceneEventHandler
39 virtual void OnShowGrid(bool show) override;
40 virtual void OnShowAxis(bool show) override;
41 virtual void OnShowRuler(bool show) override;
42 virtual void OnPointSelection(const QPoint& point, bool clearPreviousSelection) override;
43 virtual void OnBoxSelection(const QRect& rect, bool clearPreviousSelection) override;
44 virtual void OnCircleSelection(const QRect& rect, bool clearPreviousSelection) override;
45 virtual void OnClearSelection() override;
46 virtual void OnAllSelection() override;
47 virtual void OnInvertSelection() override;
48 virtual void OnDeleteSelection() override;
49 virtual bool OnMousePress(QMouseEvent& e) override;
50 virtual bool OnMouseMove(QMouseEvent& e) override;
51 virtual bool OnMouseRelease(QMouseEvent& e) override;
52
53 // reimplemented (iqtgui::TRestorableGuiWrap)
54 virtual void OnRestoreSettings(const QSettings& settings) override;
55 virtual void OnSaveSettings(QSettings& settings) const override;
56
57private:
58 CGridShape m_gridShape;
59 CAxisShape m_axisShape;
60 CRulerShape m_rulerShape;
61
62 I_ATTR(bool, m_showInfoBoxAttrPtr);
63 I_ATTR(bool, m_defaultShowAxisAttrPtr);
64 I_ATTR(bool, m_defaultShowGridAttrPtr);
65};
66
67
68} // namespace imt3dgui
69
70