rectangle.hpp 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef N_RECTANGLE_H_
  2. #define N_RECTANGLE_H_
  3. #include "gl_core_3_3.h"
  4. #include <iostream>
  5. #include <glm/glm.hpp>
  6. #include <GL/gl.h>
  7. #include <vector>
  8. #include "shader.hpp"
  9. struct RectangleBuffer {
  10. unsigned int corner_verts;
  11. unsigned int corner_uvs;
  12. unsigned int rectangle_verts;
  13. unsigned int rectangle_uvs;
  14. unsigned int center_verts;
  15. unsigned int center_uvs;
  16. };
  17. class Rectangle {
  18. private:
  19. glm::vec2 ul, oul;
  20. glm::vec2 bl, obl;
  21. glm::vec2 ur, our;
  22. glm::vec2 br, obr;
  23. bool highlight;
  24. void generateBuffers();
  25. RectangleBuffer buffer;
  26. unsigned int corner_vertCount;
  27. unsigned int rectangle_vertCount;
  28. unsigned int center_vertCount;
  29. float border;
  30. float padding;
  31. Shader* shader;
  32. glm::vec4 color;
  33. public:
  34. glm::vec4 getRect();
  35. Rectangle(glm::vec2 p1, glm::vec2 p2, float border = 1, float padding = 0, glm::vec4 color = glm::vec4(1,1,1,1), bool highlight = false );
  36. ~Rectangle();
  37. void setPoints( glm::vec2 p1, glm::vec2 p2 );
  38. void draw(glm::mat4& matrix);
  39. };
  40. #endif // N_RECTANGLE_H_