Plasma Engine  2.0
Loading...
Searching...
No Matches
SelectionContext.h
1#pragma once
2
3#include <EditorEngineProcessFramework/Gizmos/GizmoHandle.h>
4#include <EditorFramework/InputContexts/EditorInputContext.h>
5
6class QWidget;
7class plCamera;
10
11class PL_EDITORFRAMEWORK_DLL plSelectionContext : public plEditorInputContext
12{
13public:
14 plSelectionContext(plQtEngineDocumentWindow* pOwnerWindow, plQtEngineViewWidget* pOwnerView, const plCamera* pCamera);
16
17 void SetWindowConfig(const plVec2I32& vViewport) { m_vViewport = vViewport; }
18
26 void SetPickObjectOverride(plDelegate<void(const plDocumentObject*)> pickOverride);
27 void ResetPickObjectOverride();
28
29protected:
30 virtual plEditorInput DoMousePressEvent(QMouseEvent* e) override;
31 virtual plEditorInput DoMouseReleaseEvent(QMouseEvent* e) override;
32
33 virtual plEditorInput DoMouseMoveEvent(QMouseEvent* e) override;
34 virtual plEditorInput DoKeyPressEvent(QKeyEvent* e) override;
35 virtual plEditorInput DoKeyReleaseEvent(QKeyEvent* e) override;
36
37 virtual void OnSetOwner(plQtEngineDocumentWindow* pOwnerWindow, plQtEngineViewWidget* pOwnerView) override {}
38
39 const plDocumentObject* determineObjectToSelect(const plDocumentObject* pickedObject, bool bToggle, bool bDirect) const;
40
41 virtual void DoFocusLost(bool bCancel) override;
42
43 virtual void OpenDocumentForPickedObject(const plObjectPickingResult& res) const;
44 virtual void SelectPickedObject(const plObjectPickingResult& res, bool bToggle, bool bDirect) const;
45
46protected:
47 void SendMarqueeMsg(QMouseEvent* e, plUInt8 uiWhatToDo);
48
49 plDelegate<void(const plDocumentObject*)> m_PickObjectOverride;
50 const plCamera* m_pCamera;
51 plVec2I32 m_vViewport;
52 plEngineGizmoHandle m_hMarqueeGizmo;
53 plVec3 m_vMarqueeStartPos;
54 plUInt32 m_uiMarqueeID;
55 bool m_bPressedSpace = false;
56
57 enum class Mode
58 {
59 None,
60 Single,
61 MarqueeAdd,
62 MarqueeRemove
63 };
64
65 Mode m_Mode = Mode::None;
66};
A camera class that stores the orientation and some basic camera settings.
Definition Camera.h:41
Definition DocumentObjectBase.h:11
Definition EditorInputContext.h:22
Definition GizmoHandle.h:90
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 SelectionContext.h:12
A generic delegate class which supports static functions and member functions.
Definition Delegate.h:76
Definition EngineViewWidget.moc.h:19