3#include <Core/Graphics/Camera.h>
4#include <EditorEngineProcessFramework/EngineProcess/ViewRenderSettings.h>
5#include <EditorFramework/EditorFrameworkDLL.h>
6#include <EditorFramework/IPC/EngineProcessConnection.h>
7#include <Foundation/Containers/HybridArray.h>
8#include <Foundation/Math/Size.h>
26 plUInt32 m_uiPartIndex;
49 virtual void SyncToEngine();
51 void GetCameraMatrices(
plMat4& out_mViewMatrix,
plMat4& out_mProjectionMatrix)
const;
56 void UpdateCameraInterpolation();
59 void InterpolateCameraTo(
60 const plVec3& vPosition,
const plVec3& vDirection,
float fFovOrDim,
const plVec3* pNewUpDirection =
nullptr,
bool bImmediate =
false);
66 void SetEnablePicking(
bool bEnable);
68 void SetPickTransparent(
bool bEnable);
87 void OpenContextMenu(QPoint globalPos);
93 plResult PickPlane(plUInt16 uiScreenPosX, plUInt16 uiScreenPosY,
const plPlane& plane,
plVec3& out_vPosition)
const;
106 void TakeScreenshot(
const char* szOutputPath)
const;
110 virtual bool eventFilter(QObject*
object, QEvent* event)
override;
112 virtual void paintEvent(QPaintEvent* event)
override;
113 virtual QPaintEngine* paintEngine()
const override {
return nullptr; }
115 virtual void resizeEvent(QResizeEvent* event)
override;
117 virtual void keyPressEvent(QKeyEvent* e)
override;
118 virtual void keyReleaseEvent(QKeyEvent* e)
override;
119 virtual void mousePressEvent(QMouseEvent* e)
override;
120 virtual void mouseReleaseEvent(QMouseEvent* e)
override;
121 virtual void mouseMoveEvent(QMouseEvent* e)
override;
122 virtual void wheelEvent(QWheelEvent* e)
override;
123 virtual void focusOutEvent(QFocusEvent* e)
override;
124 virtual void dragEnterEvent(QDragEnterEvent* e)
override;
125 virtual void dragLeaveEvent(QDragLeaveEvent* e)
override;
126 virtual void dropEvent(QDropEvent* e)
override;
130 void ShowRestartButton(
bool bShow);
131 virtual void OnOpenContextMenu(QPoint globalPos) {}
135 void SlotRestartEngineProcess();
138 bool m_bUpdatePickingData;
139 bool m_bPickTransparent =
true;
140 bool m_bInDragAndDropOperation;
144 static plUInt32 s_uiNextViewID;
148 float m_fCameraStartFovOrDim;
149 float m_fCameraTargetFovOrDim;
150 plVec3 m_vCameraStartPosition;
151 plVec3 m_vCameraTargetPosition;
152 plVec3 m_vCameraStartDirection;
153 plVec3 m_vCameraTargetDirection;
155 plTime m_LastCameraUpdate;
157 QHBoxLayout* m_pRestartButtonLayout;
158 QPushButton* m_pRestartButton;
162 static InteractionContext s_InteractionContext;
175 QVBoxLayout* GetLayout()
const {
return m_pLayout; }
179 QVBoxLayout* m_pLayout;
Definition EngineProcessMessages.h:196
Definition EditorInputContext.h:22
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Base class for all document windows that need a connection to the engine process, and might want to r...
Definition EngineDocumentWindow.moc.h:37
This data type is the abstraction for 128-bit Uuid (also known as GUID) instances.
Definition Uuid.h:11
Definition EngineProcessMessages.h:388
Definition EngineProcessConnection.h:63
Definition ViewRenderSettings.h:26
Definition EngineViewWidget.moc.h:19
Holds information about the viewport that the user just now hovered over and what object was picked l...
Definition EngineViewWidget.moc.h:75
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12