Plasma Engine  2.0
Loading...
Searching...
No Matches
BoxGizmo.h
1#pragma once
2
3#include <EditorEngineProcessFramework/Gizmos/GizmoHandle.h>
4#include <EditorFramework/Gizmos/GizmoBase.h>
5#include <QPoint>
6#include <ToolsFoundation/ToolsFoundationDLL.h>
7
8class PL_EDITORFRAMEWORK_DLL plBoxGizmo : public plGizmo
9{
10 PL_ADD_DYNAMIC_REFLECTION(plBoxGizmo, plGizmo);
11
12public:
13 plBoxGizmo();
14
15 void SetSize(const plVec3& vSize);
16
17 const plVec3& GetSize() const { return m_vSize; }
18
19protected:
20 virtual void DoFocusLost(bool bCancel) override;
21
22 virtual plEditorInput DoMousePressEvent(QMouseEvent* e) override;
23 virtual plEditorInput DoMouseReleaseEvent(QMouseEvent* e) override;
24 virtual plEditorInput DoMouseMoveEvent(QMouseEvent* e) override;
25
26 virtual void OnSetOwner(plQtEngineDocumentWindow* pOwnerWindow, plQtEngineViewWidget* pOwnerView) override;
27 virtual void OnVisibleChanged(bool bVisible) override;
28 virtual void OnTransformationChanged(const plTransform& transform) override;
29
30
31private:
32 plTime m_LastInteraction;
33
34 plVec2I32 m_vLastMousePos;
35
36 plEngineGizmoHandle m_hCorners;
37 plEngineGizmoHandle m_Edges[3];
38 plEngineGizmoHandle m_Faces[3];
39
40 enum class ManipulateMode
41 {
42 None,
43 Uniform,
44 AxisX,
45 AxisY,
46 AxisZ,
47 PlaneXY,
48 PlaneXZ,
49 PlaneYZ,
50 };
51
52 ManipulateMode m_ManipulateMode;
53
54 plVec3 m_vSize;
55};
Definition BoxGizmo.h:9
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