#pragma once #ifndef VIEWTOOLS_H #define VIEWTOOLS_H #include "tools/tool.h" #include "tstopwatch.h" #include "tproperty.h" //============================================================================= // Rotate Tool //----------------------------------------------------------------------------- class RotateTool final : public QObject, public TTool { Q_OBJECT TStopWatch m_sw; TPointD m_oldPos; TPointD m_center; bool m_dragging; double m_angle; TPointD m_oldMousePos; TBoolProperty m_cameraCentered; TPropertyGroup m_prop; public: RotateTool(); ToolType getToolType() const override { return TTool::GenericTool; } void updateMatrix() override { return setMatrix(TAffine()); } TPropertyGroup *getProperties(int targetType) override { return &m_prop; } void leftButtonDown(const TPointD &pos, const TMouseEvent &e) override; void leftButtonDrag(const TPointD &pos, const TMouseEvent &e) override; void leftButtonUp(const TPointD &pos, const TMouseEvent &e) override; void draw() override; int getCursorId() const override; void updateTranslation() override { m_cameraCentered.setQStringName(tr("Rotate On Camera Center")); } }; #endif // VIEWTOOLS_H