X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FPrimitiveMesh.hpp;h=247cc6a0b3b52ca90ca835d5a69194c061cbcdd3;hb=f6e33d9f79ff6a47c3efa3c9fb1206cc1d27ecde;hp=1aa3cce58acf417e6605fe82f99c2d473845ed1c;hpb=75172fd735e34082c34b47ae7c194445b53038d9;p=blank.git diff --git a/src/graphics/PrimitiveMesh.hpp b/src/graphics/PrimitiveMesh.hpp index 1aa3cce..247cc6a 100644 --- a/src/graphics/PrimitiveMesh.hpp +++ b/src/graphics/PrimitiveMesh.hpp @@ -1,20 +1,22 @@ #ifndef BLANK_GRAPHICS_PRIMITIVEMESH_HPP_ #define BLANK_GRAPHICS_PRIMITIVEMESH_HPP_ +#include "glm.hpp" #include "VertexArray.hpp" #include #include -#include namespace blank { +struct AABB; + class PrimitiveMesh { public: using Position = glm::vec3; - using Color = glm::vec4; + using Color = TVEC4; using Index = unsigned short; using Positions = std::vector; @@ -48,10 +50,15 @@ public: void FillRect( float w, float h, - const glm::vec4 &color = glm::vec4(0.0f), + const Color &color = Color(0), const glm::vec2 &pivot = glm::vec2(0.0f) ); + void OutlineBox( + const AABB &, + const Color &color = Color(0) + ); + }; using VAO = VertexArray; @@ -59,8 +66,14 @@ public: public: void Update(const Buffer &) noexcept; - void DrawLines() noexcept; - void DrawTriangles() noexcept; + bool Empty() const noexcept { + return vao.Empty(); + } + + void DrawLines() const noexcept; + void DrawTriangles() const noexcept { + vao.DrawTriangleElements(); + } private: VAO vao;