Plasma Engine  2.0
Loading...
Searching...
No Matches
CameraMoveContext.h
1#pragma once
2
3#include <EditorFramework/InputContexts/EditorInputContext.h>
4#include <Foundation/Time/Time.h>
5#include <QPoint>
6
7class plCamera;
8
9class PL_EDITORFRAMEWORK_DLL plCameraMoveContext : public plEditorInputContext
10{
11public:
13
14 void LoadState();
15
16 void SetCamera(plCamera* pCamera);
17
18 const plVec3& GetOrbitPoint() const;
19 void SetOrbitPoint(const plVec3& vPos);
20
21 static float ConvertCameraSpeed(plUInt32 uiSpeedIdx);
22
23protected:
24 virtual void DoFocusLost(bool bCancel) override;
25
26 virtual plEditorInput DoKeyPressEvent(QKeyEvent* e) override;
27 virtual plEditorInput DoKeyReleaseEvent(QKeyEvent* e) override;
28 virtual plEditorInput DoMousePressEvent(QMouseEvent* e) override;
29 virtual plEditorInput DoMouseReleaseEvent(QMouseEvent* e) override;
30 virtual plEditorInput DoMouseMoveEvent(QMouseEvent* e) override;
31 virtual plEditorInput DoWheelEvent(QWheelEvent* e) override;
32
33 virtual void OnSetOwner(plQtEngineDocumentWindow* pOwnerWindow, plQtEngineViewWidget* pOwnerView) override {}
34
35private:
36 virtual void UpdateContext() override;
37
38 void SetMoveSpeed(plInt32 iSpeed);
39 void ResetCursor();
40 void SetCurrentMouseMode();
41 void DeactivateIfLast();
42
43 plVec3 m_vOrbitPoint;
44
45 plVec2I32 m_vLastMousePos;
46
47 bool m_bRotateCamera;
48 bool m_bMoveCamera;
49 bool m_bMoveCameraInPlane;
50 bool m_bOrbitCamera;
51 bool m_bSlideForwards;
52 bool m_bPanOrbitPoint;
53 float m_fSlideForwardsDistance;
54 bool m_bOpenMenuOnMouseUp;
55
56 plCamera* m_pCamera;
57
58 bool m_bRun = false;
59 bool m_bSlowDown = false;
60 bool m_bMoveForwards = false;
61 bool m_bMoveBackwards = false;
62 bool m_bMoveRight = false;
63 bool m_bMoveLeft = false;
64 bool m_bMoveUp = false;
65 bool m_bMoveDown = false;
66 bool m_bMoveForwardsInPlane = false;
67 bool m_bMoveBackwardsInPlane = false;
68 bool m_bDidMoveMouse[3] = {false, false, false}; // Left Click, Right Click, Middle Click
69
70 bool m_bRotateLeft = false;
71 bool m_bRotateRight = false;
72 bool m_bRotateUp = false;
73 bool m_bRotateDown = false;
74
75 plTime m_LastUpdate;
76};
A camera class that stores the orientation and some basic camera settings.
Definition Camera.h:41
Definition CameraMoveContext.h:10
Definition EditorInputContext.h:22
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