#pragma once #include #include #include #include class QuaternionWidget : public QWidget { Q_OBJECT public: explicit QuaternionWidget(glm::quat& ref, QWidget* parent = nullptr); ~QuaternionWidget(); void RebuildQuat(); signals: void onValueChanged(); private: struct { QDoubleSpinBox* x, *y, *z; } m_spinBoxes; glm::quat& m_reference; glm::vec3 m_eulerRotation; QTimer* m_updateTimer; };