Plasma Engine  2.0
Loading...
Searching...
No Matches
ConeAngleGizmo.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 plConeAngleGizmo : public plGizmo
9{
10 PL_ADD_DYNAMIC_REFLECTION(plConeAngleGizmo, plGizmo);
11
12public:
14
15 void SetAngle(plAngle angle);
16 plAngle GetAngle() const { return m_Angle; }
17
18 void SetRadius(float fRadius) { m_fRadius = fRadius; }
19
20protected:
21 virtual void DoFocusLost(bool bCancel) override;
22
23 virtual plEditorInput DoMousePressEvent(QMouseEvent* e) override;
24 virtual plEditorInput DoMouseReleaseEvent(QMouseEvent* e) override;
25 virtual plEditorInput DoMouseMoveEvent(QMouseEvent* e) override;
26
27 virtual void OnSetOwner(plQtEngineDocumentWindow* pOwnerWindow, plQtEngineViewWidget* pOwnerView) override;
28 virtual void OnVisibleChanged(bool bVisible) override;
29 virtual void OnTransformationChanged(const plTransform& transform) override;
30
31
32private:
33 plTime m_LastInteraction;
34
35 plVec2I32 m_vLastMousePos;
36
37 plEngineGizmoHandle m_hConeAngle;
38
39 enum class ManipulateMode
40 {
41 None,
42 Angle,
43 };
44
45 ManipulateMode m_ManipulateMode;
46
47 plAngle m_Angle;
48 float m_fRadius;
49 float m_fAngleScale;
50};
Float wrapper struct for a safe usage and conversions of angles.
Definition Angle.h:10
Definition ConeAngleGizmo.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