Plasma Engine  2.0
Loading...
Searching...
No Matches
SphereGizmo.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 plSphereGizmo : public plGizmo
9{
10 PL_ADD_DYNAMIC_REFLECTION(plSphereGizmo, plGizmo);
11
12public:
14
15 void SetInnerSphere(bool bEnabled, float fRadius = 0.0f);
16 void SetOuterSphere(float fRadius);
17
18 float GetInnerRadius() const { return m_fRadiusInner; }
19 float GetOuterRadius() const { return m_fRadiusOuter; }
20
21protected:
22 virtual void DoFocusLost(bool bCancel) override;
23
24 virtual plEditorInput DoMousePressEvent(QMouseEvent* e) override;
25 virtual plEditorInput DoMouseReleaseEvent(QMouseEvent* e) override;
26 virtual plEditorInput DoMouseMoveEvent(QMouseEvent* e) override;
27
28 virtual void OnSetOwner(plQtEngineDocumentWindow* pOwnerWindow, plQtEngineViewWidget* pOwnerView) override;
29 virtual void OnVisibleChanged(bool bVisible) override;
30 virtual void OnTransformationChanged(const plTransform& transform) override;
31
32
33private:
34 plTime m_LastInteraction;
35
36 plVec2I32 m_vLastMousePos;
37
38 plEngineGizmoHandle m_hInnerSphere;
39 plEngineGizmoHandle m_hOuterSphere;
40
41 enum class ManipulateMode
42 {
43 None,
44 InnerSphere,
45 OuterSphere
46 };
47
48 ManipulateMode m_ManipulateMode;
49 bool m_bInnerEnabled;
50
51 float m_fRadiusInner;
52 float m_fRadiusOuter;
53};
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 SphereGizmo.h:9
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12