TazGraph Project v0.1.0
Loading...
Searching...
No Matches
Graph.h
1#ifndef GRAPH_H
2#define GRAPH_H
3
4#include <TazGraphEngine.h>
5
6#include <GL/glew.h>
7#undef main
8
9#include "../../AssetManager/AssetManager.h"
10#include "../../EditorIMGUI/GraphEditorLayer/GraphEditorLayer.h"
11#include "../../AssetManager/PythonEngineCommands.h"
12
13class Map;
14class SceneManager;
17
18
19
20class Graph : public IScene {
21
22public:
23 Graph();
24 Graph(bool m_usePython, std::array<float, 4> bg, bool m_useGrid) :
25 usePython(m_usePython)
26 {
27 std::copy(bg.begin(), bg.end(), backgroundColor);
28 showGrid = m_useGrid;
29 last_showGrid = !m_useGrid;
30 _sceneIndex = SCENE_INDEX_GRAPHPLAY;
31 };
32 ~Graph();
33
34
35 virtual int getNextSceneIndex() const override;
36
37 virtual int getPreviousSceneIndex() const override;
38
39 virtual void build() override;
40
41 virtual void destroy() override;
42
43 virtual void onEntry() override;
44
45 virtual void onExit() override;
46
47 virtual void update(float deltaTime) override;
48
49 virtual void prepareDraw(int index) override;
50 virtual void renderDraw(int index) override;
51
52 void minimapPrepareDraw(int index);
53 void minimapRenderDraw(int index);
54
55 virtual void SwapBufferDraw() override;
56
57 virtual void BeginRender() override;
58 virtual void updateUI(float deltaTime) override;
59 virtual void drawUI() override;
60 virtual void EndRender() override;
61
62
63 GraphLoader* graphLoader = nullptr;
64 //std::unique_ptr<Grid> grid;
65
66private:
67
68 void clearSelectedEntities();
69
70 std::vector<Cell*> traversedCellsFromRay(glm::vec3 rayOrigin,
71 glm::vec3 rayDirection,
72 float maxDistance);
73
74 void selectEntityFromRay(glm::vec3 rayOrigin, glm::vec3 rayDirection, int activateMode);
75
76 bool setManager(std::string m_managerName) override;
77
78 void checkInput();
79 void performFrustumSelection();
80 bool onPauseGraph();
81
82 std::vector<SelectedInfo> _selectedEntities;
83
84 Entity* _displayedEntity = nullptr;
85 bool _sceneManagerActive = false;
86 Entity* _onHoverEntity = nullptr;
87
88 Uint32 _holdStartTime = 0;
89
90 bool _isDraggingSelectionBox = false;
91
92 glm::vec2 _selectionStartPos = glm::vec2(0);
93 glm::vec2 _selectionCurrentPos = glm::vec2(0);
94
95 glm::vec2 _selectionWindowStartPos = glm::vec2(0);
96 glm::vec2 _selectionWindowCurrentPos = glm::vec2(0);
97
98 int _nextSceneIndex = SCENE_INDEX_GRAPHPLAY;
99 int _prevSceneIndex = SCENE_INDEX_MAIN_MENU;
100
101 const float SCALE_SPEED = 0.1f;
102 bool _firstLoop = true;
103
104 bool usePython = false;
105
106 GraphEditorLayer _graphEditorLayer = GraphEditorLayer(usePython);
107
108 Framebuffer _viewportFramebuffer;
109 Framebuffer _minimapFramebuffer;
110
111 ImVec2 _viewportPos;
112 ImVec2 _viewportSize;
113
114 glm::vec2 _viewportMousePosition = { 0.f,0.f };
115
116 // Minimap stuff
117 int currentX = 0, currentY = 0, currentZ = 0;
118 bool processingComplete = false;
119 bool needsRefresh = true;
120
121 template<typename EntityType>
122 void selectEntitiesInFrustum(int groupId, const SelectionFrustum& frustum);
123
124 float cameraVelocityX = 0.0f;
125 float cameraVelocityY = 0.0f;
126 float cameraVelocityZ = 0.0f;
127 float cameraAcceleration = 10.0f;
128 float cameraMaxVelocity = 200.0f;
129 float cameraFriction = 0.9f;
130
132};
133
134
135#endif
Definition ColliderComponent.h:11
Definition GECS.h:224
Definition Framebuffer.h:6
Definition GraphEditorLayer.h:39
Definition GraphLoader.h:23
Definition Graph.h:20
virtual void update(float deltaTime) override
Definition GraphUpdate.cpp:3
virtual void prepareDraw(int index) override
Definition GraphDraw.cpp:4
virtual void updateUI(float deltaTime) override
Definition GraphUI.cpp:3
void minimapPrepareDraw(int index)
Definition GraphDraw.cpp:515
virtual void renderDraw(int index) override
Definition GraphDraw.cpp:471
void minimapRenderDraw(int index)
Definition GraphDraw.cpp:582
Definition IScene.h:25
Definition PythonEngineCommands.h:8
Definition TransformComponent.h:7
Definition SelectionFrustum.h:5