Polyphase Game Engine
Loading...
Searching...
No Matches
Poly.h
Go to the documentation of this file.
1#pragma once
2
4#include "Assets/Texture.h"
5#include "AssetRef.h"
6#include "Vertex.h"
7#include "Constants.h"
8
9class Poly : public Widget
10{
11public:
12
14
15 Poly();
16 virtual ~Poly();
17
18 virtual void Create() override;
19 virtual void Destroy() override;
20
22
23 virtual void PreRender() override;
24
25 virtual void Render() override;
26
27 virtual DrawData GetDrawData() override;
28
29 virtual void GatherProperties(std::vector<Property>& outProps) override;
30
31 virtual void UpdateGeometry();
32
33 void MarkVerticesDirty();
34
36
37 void AddVertex(glm::vec2 position,
38 glm::vec4 color = glm::vec4(1.0f, 1.0f, 1.0f, 1.0f),
39 glm::vec2 uv = glm::vec2(0.0f, 0.0f));
40 void ClearVertices();
41 uint32_t GetNumVertices();
42 VertexUI GetVertex(uint32_t index);
43
44 void SetTexture(Texture* texture);
46
47 float GetLineWidth() const;
48 void SetLineWidth(float width);
49
50protected:
51
52 std::vector<VertexUI> mVertices;
53 TextureRef mTexture; // TODO: Add support for filled polygons
54 float mLineWidth = 2.0f;
55
56 bool mUploadVertices[MAX_FRAMES] = {};
58};
59
Definition AssetRef.h:18
Definition Poly.h:10
float mLineWidth
Definition Poly.h:54
void MarkVerticesDirty()
Definition Poly.cpp:84
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition Poly.cpp:71
float GetLineWidth() const
Definition Poly.cpp:134
virtual ~Poly()
Definition Poly.cpp:18
uint32_t GetNumVertices()
Definition Poly.cpp:113
PolyResource mResource
Definition Poly.h:57
virtual DrawData GetDrawData() override
Definition Poly.cpp:62
void SetLineWidth(float width)
Definition Poly.cpp:139
TextureRef mTexture
Definition Poly.h:53
bool mUploadVertices[MAX_FRAMES]
Definition Poly.h:56
std::vector< VertexUI > mVertices
Definition Poly.h:52
virtual void Create() override
Definition Poly.cpp:24
void AddVertex(glm::vec2 position, glm::vec4 color=glm::vec4(1.0f, 1.0f, 1.0f, 1.0f), glm::vec2 uv=glm::vec2(0.0f, 0.0f))
Definition Poly.cpp:97
DECLARE_NODE(Poly, Widget)
VertexUI * GetVertices()
Definition Poly.cpp:92
void ClearVertices()
Definition Poly.cpp:107
virtual void Render() override
Definition Poly.cpp:56
Poly()
Definition Poly.cpp:13
PolyResource * GetResource()
Definition Poly.cpp:37
virtual void PreRender() override
Definition Poly.cpp:42
virtual void Destroy() override
Definition Poly.cpp:30
virtual void UpdateGeometry()
Definition Poly.cpp:79
void SetTexture(Texture *texture)
Definition Poly.cpp:123
Texture * GetTexture()
Definition Poly.cpp:129
VertexUI GetVertex(uint32_t index)
Definition Poly.cpp:118
Definition Texture.h:10
Definition Widget.h:53
Definition EngineTypes.h:199
Definition GraphicsTypes.h:283
Definition Vertex.h:37