Plasma Engine  2.0
Loading...
Searching...
No Matches
DrawBoxGizmo.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 plDrawBoxGizmo : public plGizmo
9{
10 PL_ADD_DYNAMIC_REFLECTION(plDrawBoxGizmo, plGizmo);
11
12public:
13 enum class ManipulateMode
14 {
15 None,
16 DrawBase,
17 DrawHeight,
18 };
19
22
23 void GetResult(plVec3& out_vOrigin, float& out_fSizeNegX, float& out_fSizePosX, float& out_fSizeNegY, float& out_fSizePosY, float& out_fSizeNegZ,
24 float& out_fSizePosZ) const;
25
26 ManipulateMode GetCurrentMode() const { return m_ManipulateMode; }
27 const plVec3& GetStartPosition() const { return m_vFirstCorner; }
28
29 virtual void UpdateStatusBarText(plQtEngineDocumentWindow* pWindow) override;
30
31 bool GetDisplayGrid() const { return m_bDisplayGrid; }
32
33protected:
34 virtual void DoFocusLost(bool bCancel) override;
35
36 virtual plEditorInput DoMousePressEvent(QMouseEvent* e) override;
37 virtual plEditorInput DoMouseReleaseEvent(QMouseEvent* e) override;
38 virtual plEditorInput DoMouseMoveEvent(QMouseEvent* e) override;
39 virtual plEditorInput DoKeyPressEvent(QKeyEvent* e) override;
40 virtual plEditorInput DoKeyReleaseEvent(QKeyEvent* e) override;
41
42 virtual void OnSetOwner(plQtEngineDocumentWindow* pOwnerWindow, plQtEngineViewWidget* pOwnerView) override;
43 virtual void OnVisibleChanged(bool bVisible) override;
44 virtual void OnTransformationChanged(const plTransform& transform) override;
45
46private:
47 void SwitchMode(bool bCancel);
48 void UpdateBox();
49 void DisableGrid(bool bControlPressed);
50 void UpdateGrid(QMouseEvent* e);
51 bool PickPosition(QMouseEvent* e);
52
53 ManipulateMode m_ManipulateMode;
55
56 plInt32 m_iHeightChange = 0;
57 plVec2I32 m_vLastMousePos;
58 plVec3 m_vCurrentPosition;
59 plVec3 m_vFirstCorner;
60 plVec3 m_vSecondCorner;
61 plVec3 m_vUpAxis;
62 plVec3 m_vLastStartPoint;
63 float m_fBoxHeight = 0.5f;
64 float m_fOriginalBoxHeight = 0.5f;
65 bool m_bDisplayGrid = false;
66};
Definition DrawBoxGizmo.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