Polyphase Game Engine
Loading...
Searching...
No Matches
Gizmos.h
Go to the documentation of this file.
1#pragma once
2
3#include "EngineTypes.h"
4#include "Line.h"
5#include "Maths.h"
6
7#include <vector>
8
9class StaticMesh;
10
11class Gizmos
12{
13public:
14
15 // State
16 static void SetColor(glm::vec4 color);
17 static glm::vec4 GetColor();
18 static void SetMatrix(const glm::mat4& matrix);
19 static const glm::mat4& GetMatrix();
20 static void ResetState();
21
22 // Solid draws (Forward pipeline)
23 static void DrawCube(glm::vec3 center, glm::vec3 size);
24 static void DrawSphere(glm::vec3 center, float radius);
25 static void DrawMesh(StaticMesh* mesh, glm::vec3 position, glm::vec3 rotation = glm::vec3(0.0f), glm::vec3 scale = glm::vec3(1.0f));
26
27 // Wire draws (Wireframe pipeline)
28 static void DrawWireCube(glm::vec3 center, glm::vec3 size);
29 static void DrawWireSphere(glm::vec3 center, float radius);
30 static void DrawWireMesh(StaticMesh* mesh, glm::vec3 position, glm::vec3 rotation = glm::vec3(0.0f), glm::vec3 scale = glm::vec3(1.0f));
31
32 // Lines (Line pipeline)
33 static void DrawLine(glm::vec3 from, glm::vec3 to);
34 static void DrawRay(glm::vec3 origin, glm::vec3 direction);
35 static void DrawFrustum(const glm::mat4& viewProjectionMatrix);
36 static void DrawLineList(const glm::vec3* points, uint32_t count);
37 static void DrawLineStrip(const glm::vec3* points, uint32_t count);
38
39 // Internal (called by Renderer)
40 static void BeginFrame();
41 static const std::vector<DebugDraw>& GetSolidDraws();
42 static const std::vector<DebugDraw>& GetWireDraws();
43 static const std::vector<Line>& GetLines();
44 static bool IsEnabled();
45
46private:
47
48 static glm::vec4 sColor;
49 static glm::mat4 sMatrix;
50 static std::vector<DebugDraw> sSolidDraws;
51 static std::vector<DebugDraw> sWireDraws;
52 static std::vector<Line> sLines;
53};
Definition Gizmos.h:12
static void SetColor(glm::vec4 color)
Definition Gizmos.cpp:16
static void ResetState()
Definition Gizmos.cpp:36
static void DrawLineList(const glm::vec3 *points, uint32_t count)
Definition Gizmos.cpp:176
static const std::vector< DebugDraw > & GetWireDraws()
Definition Gizmos.cpp:208
static void BeginFrame()
Definition Gizmos.cpp:196
static void DrawWireMesh(StaticMesh *mesh, glm::vec3 position, glm::vec3 rotation=glm::vec3(0.0f), glm::vec3 scale=glm::vec3(1.0f))
Definition Gizmos.cpp:107
static void DrawWireCube(glm::vec3 center, glm::vec3 size)
Definition Gizmos.cpp:85
static void SetMatrix(const glm::mat4 &matrix)
Definition Gizmos.cpp:26
static bool IsEnabled()
Definition Gizmos.cpp:218
static glm::vec4 GetColor()
Definition Gizmos.cpp:21
static void DrawWireSphere(glm::vec3 center, float radius)
Definition Gizmos.cpp:96
static const std::vector< DebugDraw > & GetSolidDraws()
Definition Gizmos.cpp:203
static void DrawFrustum(const glm::mat4 &viewProjectionMatrix)
Definition Gizmos.cpp:132
static const glm::mat4 & GetMatrix()
Definition Gizmos.cpp:31
static void DrawMesh(StaticMesh *mesh, glm::vec3 position, glm::vec3 rotation=glm::vec3(0.0f), glm::vec3 scale=glm::vec3(1.0f))
Definition Gizmos.cpp:74
static void DrawCube(glm::vec3 center, glm::vec3 size)
Definition Gizmos.cpp:52
static const std::vector< Line > & GetLines()
Definition Gizmos.cpp:213
static void DrawLine(glm::vec3 from, glm::vec3 to)
Definition Gizmos.cpp:118
static void DrawLineStrip(const glm::vec3 *points, uint32_t count)
Definition Gizmos.cpp:186
static void DrawSphere(glm::vec3 center, float radius)
Definition Gizmos.cpp:63
static void DrawRay(glm::vec3 origin, glm::vec3 direction)
Definition Gizmos.cpp:127
Definition StaticMesh.h:18