Plasma Engine  2.0
Loading...
Searching...
No Matches
RotateGizmo.h
1#pragma once
2
3#include <EditorEngineProcessFramework/Gizmos/GizmoHandle.h>
4#include <EditorFramework/Gizmos/GizmoBase.h>
5#include <ToolsFoundation/ToolsFoundationDLL.h>
6
7class PL_EDITORFRAMEWORK_DLL plRotateGizmo : public plGizmo
8{
9 PL_ADD_DYNAMIC_REFLECTION(plRotateGizmo, plGizmo);
10
11public:
13
14 const plQuat& GetRotationResult() const { return m_qCurrentRotation; }
15
16 virtual void UpdateStatusBarText(plQtEngineDocumentWindow* pWindow) override;
17
18protected:
19 virtual void DoFocusLost(bool bCancel) override;
20
21 virtual plEditorInput DoMousePressEvent(QMouseEvent* e) override;
22 virtual plEditorInput DoMouseReleaseEvent(QMouseEvent* e) override;
23 virtual plEditorInput DoMouseMoveEvent(QMouseEvent* e) override;
24
25 virtual void OnSetOwner(plQtEngineDocumentWindow* pOwnerWindow, plQtEngineViewWidget* pOwnerView) override;
26 virtual void OnVisibleChanged(bool bVisible) override;
27 virtual void OnTransformationChanged(const plTransform& transform) override;
28
29private:
30 plEngineGizmoHandle m_hAxisX;
31 plEngineGizmoHandle m_hAxisY;
32 plEngineGizmoHandle m_hAxisZ;
33
34 plQuat m_qStartRotation;
35 plQuat m_qCurrentRotation;
36 plAngle m_Rotation;
37
38 plVec2I32 m_vLastMousePos;
39
40 plTime m_LastInteraction;
41 plVec3 m_vRotationAxis;
42 plMat4 m_mInvViewProj;
43 plVec2 m_vScreenTangent;
44};
Float wrapper struct for a safe usage and conversions of angles.
Definition Angle.h:10
Definition GizmoHandle.h:90
Definition GizmoBase.h:25
Base class for all document windows that need a connection to the engine process, and might want to r...
Definition EngineDocumentWindow.moc.h:37
Base class for views that show engine output.
Definition EngineViewWidget.moc.h:34
Definition RotateGizmo.h:8
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12