TazGraph Project v0.1.0
Loading...
Searching...
No Matches
Graph.h
1#ifndef GRAPH_H
2#define GRAPH_H
3
4#include <GraphScreen/IScene.h>
5#include <SDL2/SDL.h>
6#include <SDL2/SDL_image.h>
7#include <GL/glew.h>
8#include "GLSLProgram.h"
9#include "ResourceManager/ResourceManager.h"
10#undef main
11#include <iostream>
12#include <vector>
13#include "Camera2.5D/PerspectiveCamera.h"
14#include <Renderers/FrameBuffer/Framebuffer.h>
15#include "Renderers/PlaneRenderers/PlaneModelRenderer/PlaneModelRenderer.h"
16#include "InputManager/InputManager.h"
17#include "BaseFPSLimiter/BaseFPSLimiter.h"
18//#include "SpriteFont/SpriteFont.h"
19#include "Window/Window.h"
20#include "TextureManager/TextureManager.h"
21
22
23#include "GraphScreen/ScreenIndices.h"
24
25#include "EditorIMGUI/EditorIMGUI.h"
26
27#include <chrono>
28#include <thread>
29
30class Map;
31class AssetManager;
32class SceneManager;
35
36
37
38#define ON_HOVER 0
39#define CTRLD_LEFT_CLICK -1
40
41class Graph : public IScene {
42
43public:
45 ~Graph();
46
47
48 virtual int getNextSceneIndex() const override;
49
50 virtual int getPreviousSceneIndex() const override;
51
52 virtual void build() override;
53
54 virtual void destroy() override;
55
56 virtual void onEntry() override;
57
58 virtual void onExit() override;
59
60 virtual void update(float deltaTime) override;
61
62 virtual void draw() override;
63
64 virtual void BeginRender() override;
65 virtual void updateUI() override;
66 virtual void EndRender() override;
67
68
70 void renderBatch(const std::vector<LinkEntity*>& entities, LineRenderer& batch);
71 void renderBatch(const std::vector<EmptyEntity*>& entities, PlaneColorRenderer& batch);
72 void renderBatch(const std::vector<NodeEntity*>& entities, PlaneColorRenderer& batch);
73 void renderBatch(const std::vector<EmptyEntity*>& entities, PlaneModelRenderer& batch);
74 void renderBatch(const std::vector<NodeEntity*>& entities, PlaneModelRenderer& batch);
75 void renderBatch(const std::vector<EmptyEntity*>& entities, LightRenderer& batch);
76 void drawHUD(const std::vector<NodeEntity*>& entities);
77
79
80 Map* map = nullptr;
81 //std::unique_ptr<Grid> grid;
82
83 static TazGraphEngine::Window* _window;
84
85
86private:
87 float _backgroundColor[4] = { 0.407f,0.384f,0.356f, 1.0f };
88
89 std::vector<Cell*> traversedCellsFromRay(glm::vec3 rayOrigin,
90 glm::vec3 rayDirection,
91 float maxDistance);
92
93 void selectEntityFromRay(glm::vec3 rayOrigin, glm::vec3 rayDirection, int activateMode);
94
95 bool setManager(std::string m_managerName);
96
97 void checkInput();
98 bool onPauseGraph();
99
100 PlaneModelRenderer _PlaneModelRenderer;
101 PlaneModelRenderer _hudPlaneModelRenderer;
102 PlaneColorRenderer _PlaneColorRenderer;
103 LineRenderer _LineRenderer;
104 LightRenderer _LightRenderer;
105
106 AssetManager* _assetsManager = nullptr;
107
108 ResourceManager _resourceManager;
109
110 std::vector<std::pair<Entity*, glm::vec3>> _selectedEntities;
111 Entity* _displayedEntity = nullptr;
112 bool _sceneManagerActive = false;
113 Entity* _onHoverEntity = nullptr;
114
115 int _nextSceneIndex = SCENE_INDEX_GRAPHPLAY;
116 int _prevSceneIndex = SCENE_INDEX_MAIN_MENU;
117
118 const float SCALE_SPEED = 0.1f;
119 bool _firstLoop = true;
120
121 EditorIMGUI _editorImgui;
122
123 bool _showSaveWindow = false;
124
125 Framebuffer _framebuffer;
126
127 unsigned int _rectVAO = 0, _rectVBO = 0;
128
129 unsigned int _FBO = 0;
130 unsigned int _framebufferTexture = 0;
131 unsigned int _RBO = 0;
132
133 ImVec2 _windowPos;
134 ImVec2 _windowSize;
135
136 glm::vec2 _sceneMousePosition = {0.f,0.f};
137 glm::vec2 _savedMainViewportMousePosition = { 0.f,0.f };
138
139};
140
141
142#endif
Definition AssetManager.h:18
Definition ColliderComponent.h:12
Definition EditorIMGUI.h:18
Definition GECS.h:140
Definition Framebuffer.h:8
Definition Graph.h:41
virtual void draw() override
Definition Graph.cpp:1260
void renderBatch(const std::vector< LinkEntity * > &entities, LineRenderer &batch)
Definition Graph.cpp:1195
Definition IScene.h:21
Definition LightRenderer.h:20
Definition LineRenderer.h:131
Definition Map.h:14
Definition PlaneColorRenderer.h:19
Definition PlaneModelRenderer.h:21
Definition ResourceManager.h:12
Definition Window.h:18
Definition TransformComponent.h:6