ADTF_DISPLAY_TOOLBOX  3.8.0 (ADTF 3.14.3)
sensormanipulator.h
Go to the documentation of this file.
1 
8 /*
9  * This file depends on Qt which is licensed under LGPLv3.
10  * See ADTF_DIR/3rdparty/qt5 and doc/license for detailed information.
11  */
12 
14 
15 #pragma once
16 
18 
19 #include <QWidget>
20 #include <QFrame>
21 #include <QLineEdit>
22 #include <QSlider>
23 #include <QString>
24 #include <QCloseEvent>
25 
26 namespace adtf
27 {
28 
29 namespace disptb
30 {
31 
32 namespace mixinlib
33 {
34 
35 namespace endor
36 {
37 
44 class cSensorManipulator: public QWidget
45 {
46  Q_OBJECT;
47 
48 public:
49 
50  class Delegate {
51  public:
52  virtual void ValuesChangedInManipulator(cSensorManipulator* pManip) = 0;
53  };
54 
55  explicit cSensorManipulator(QWidget* parent = nullptr, Qt::WindowFlags flags = Qt::Popup);
56  ~cSensorManipulator() override = default;
57 
59  void setRollPitchYawRad(tFloat64 fRoll, tFloat64 fPitch, tFloat64 fYaw);
60 
62  void setRollPitchYawDeg(tFloat64 fRoll, tFloat64 fPitch, tFloat64 fYaw);
63 
65  void getRollPitchYawRad(tFloat64& fRoll, tFloat64& fPitch, tFloat64& fYaw);
66 
68  void setXYZ(tFloat64 fX, tFloat64 fY, tFloat64 fZ);
69 
71  void getXYZ(tFloat64& fX, tFloat64& fY, tFloat64& fZ);
72 
73  void setDelegate(Delegate* deleg, void* userData = nullptr);
74  void* getUserData();
75 
76 public slots:
77  void rollChanged(int value);
78  void rollEditFinished();
79  void pitchChanged(int value);
80  void pitchEditFinished();
81  void yawChanged(int value);
82  void yawEditFinished();
83 
84  void xChanged(int value);
85  void xEditFinished();
86  void yChanged(int value);
87  void yEditFinished();
88  void zChanged(int value);
89  void zEditFinished();
90 
91 protected:
92  QFrame* m_p6DPoseFrame;
93 
94  QSlider *m_pRollSlider, *m_pPitchSlider, *m_pYawSlider;
95  QSlider *m_pXSlider, *m_pYSlider, *m_pZSlider;
96  QLineEdit *m_pRollLine, *m_pPitchLine, *m_pYawLine;
97  QLineEdit *m_pXLine, *m_pYLine, *m_pZLine;
98 
99  Delegate* m_pDeleg = nullptr;
100  void* m_pUserData = nullptr;
101 
102  void closeEvent(QCloseEvent* event) override;
103 };
104 
105 }
106 
108 using endor::cSensorManipulator;
109 
110 } // mixinlib
111 
112 } // disptb
113 
114 } // adtf
115 /// @endcond
Copyright © Audi Electronics Venture GmbH.
Main namespace.