Plasma Engine  2.0
Loading...
Searching...
No Matches
DragToPositionGizmo.h
1#pragma once
2
3#include <EditorEngineProcessFramework/Gizmos/GizmoHandle.h>
4#include <EditorFramework/Gizmos/GizmoBase.h>
5#include <Foundation/Math/Quat.h>
6#include <ToolsFoundation/ToolsFoundationDLL.h>
7
8class PL_EDITORFRAMEWORK_DLL plDragToPositionGizmo : public plGizmo
9{
10 PL_ADD_DYNAMIC_REFLECTION(plDragToPositionGizmo, plGizmo);
11
12public:
14
15 const plVec3 GetTranslationResult() const { return GetTransformation().m_vPosition - m_vStartPosition; }
16 const plQuat GetRotationResult() const { return GetTransformation().m_qRotation; }
17
18 virtual bool IsPickingSelectedAllowed() const override { return false; }
19
21 bool ModifiesRotation() const { return m_bModifiesRotation; }
22
23 virtual void UpdateStatusBarText(plQtEngineDocumentWindow* pWindow) override;
24
25protected:
26 virtual void DoFocusLost(bool bCancel) override;
27
28 virtual plEditorInput DoMousePressEvent(QMouseEvent* e) override;
29 virtual plEditorInput DoMouseReleaseEvent(QMouseEvent* e) override;
30 virtual plEditorInput DoMouseMoveEvent(QMouseEvent* e) override;
31
32 virtual void OnSetOwner(plQtEngineDocumentWindow* pOwnerWindow, plQtEngineViewWidget* pOwnerView) override;
33 virtual void OnVisibleChanged(bool bVisible) override;
34 virtual void OnTransformationChanged(const plTransform& transform) override;
35
36 plEngineGizmoHandle m_hBobble;
37 plEngineGizmoHandle m_hAlignPX;
38 plEngineGizmoHandle m_hAlignNX;
39 plEngineGizmoHandle m_hAlignPY;
40 plEngineGizmoHandle m_hAlignNY;
41 plEngineGizmoHandle m_hAlignPZ;
42 plEngineGizmoHandle m_hAlignNZ;
43
44 bool m_bModifiesRotation;
45 plTime m_LastInteraction;
46 plVec3 m_vStartPosition;
47 plQuat m_qStartOrientation;
48};
Definition DragToPositionGizmo.h:9
bool ModifiesRotation() const
Returns true if any of the 'align with' handles is selected, and thus the rotation of the dragged obj...
Definition DragToPositionGizmo.h:21
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
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12