DynExp
Highly flexible laboratory automation for dynamically changing experiments.
Loading...
Searching...
No Matches
QDynExpSurfaceGraph.h
Go to the documentation of this file.
1// This file is part of DynExp.
2
8#pragma once
9
10#include <qqml.h>
11#include <QtGraphs/QSurface3DSeries>
12#include <QtGraphs/QValue3DAxis>
13
14namespace DynExpQuick
15{
16 class DynExpSurfaceGraphBackend : public QObject
17 {
18 Q_OBJECT
19 QML_ELEMENT
20
21 Q_PROPERTY(QValue3DAxis* XValueAxis READ GetXValueAxis CONSTANT)
22 Q_PROPERTY(QValue3DAxis* YValueAxis READ GetYValueAxis CONSTANT)
23 Q_PROPERTY(QValue3DAxis* ZValueAxis READ GetZValueAxis CONSTANT)
25
26 public:
27 DynExpSurfaceGraphBackend(QObject* parent = nullptr);
29
30 const auto* GetProxy() const noexcept { return Proxy; }
31 Q_INVOKABLE QSurfaceDataProxy* GetProxy() noexcept { return Proxy; }
32 const auto* GetXValueAxis() const noexcept { return XValueAxis.get(); }
33 auto* GetXValueAxis() noexcept { return XValueAxis.get(); }
34 const auto* GetYValueAxis() const noexcept { return YValueAxis.get(); }
35 auto* GetYValueAxis() noexcept { return YValueAxis.get(); }
36 const auto* GetZValueAxis() const noexcept { return ZValueAxis.get(); }
37 auto* GetZValueAxis() noexcept { return ZValueAxis.get(); }
38
39 Q_INVOKABLE QVector3D GetDataItemPosition() const;
40
41 auto GetSelectedPoint() const noexcept { return SelectedPoint; }
42 void SetSelectedPoint(QPoint SelectedPoint) noexcept;
43 void ResetSelectedPoint() noexcept;
44
45 void UpdateData();
46 void ResetCamera() { emit qresetCamera(); }
47
48 signals:
50
51 // to QML
54
55 private:
56
57 QSurfaceDataProxy* const Proxy = nullptr;
58 const std::unique_ptr<QValue3DAxis> XValueAxis;
59 const std::unique_ptr<QValue3DAxis> YValueAxis;
60 const std::unique_ptr<QValue3DAxis> ZValueAxis;
61
62 QPoint SelectedPoint;
63 };
64}
const auto * GetProxy() const noexcept
const std::unique_ptr< QValue3DAxis > ZValueAxis
const std::unique_ptr< QValue3DAxis > XValueAxis
Q_INVOKABLE QVector3D GetDataItemPosition() const
void SetSelectedPoint(QPoint SelectedPoint) noexcept
const auto * GetZValueAxis() const noexcept
const auto * GetYValueAxis() const noexcept
Q_INVOKABLE QSurfaceDataProxy * GetProxy() noexcept
const std::unique_ptr< QValue3DAxis > YValueAxis
const auto * GetXValueAxis() const noexcept