Plasma Engine  2.0
Loading...
Searching...
No Matches
CapsuleGizmo.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 plCapsuleGizmo : public plGizmo
9{
10 PL_ADD_DYNAMIC_REFLECTION(plCapsuleGizmo, plGizmo);
11
12public:
14
15 void SetLength(float fRadius);
16 void SetRadius(float fLength);
17
18 float GetLength() const { return m_fLength; }
19 float GetRadius() const { return m_fRadius; }
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_hLengthTop;
39 plEngineGizmoHandle m_hLengthBottom;
40 plEngineGizmoHandle m_hRadius;
41
42 enum class ManipulateMode
43 {
44 None,
45 Length,
46 Radius,
47 };
48
49 ManipulateMode m_ManipulateMode;
50
51 float m_fRadius;
52 float m_fLength;
53};
Definition CapsuleGizmo.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