YAGE
Yet Another Game Engine
vertex.hpp
1 /* ----------------------------------------------------------------------------
2  * vertex.hpp
3  *
4  * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> -- MIT License
5  * See file LICENSE for more details
6  * ----------------------------------------------------------------------------
7  */
8 
9 #ifndef VERTEX_HPP
10 #define VERTEX_HPP
11 
12 #include <GL/glew.h>
13 
14 namespace yage
15 {
16 
17 struct Position
18 {
19  float x;
20  float y;
21 
22  Position()
23  {}
24 
25  Position(float x_, float y_) :
26  x(x_), y(y_)
27  {}
28 };
29 
30 struct Color
31 {
32  GLubyte r;
33  GLubyte g;
34  GLubyte b;
35  GLubyte a;
36 
37  Color()
38  {}
39 
40  Color(GLubyte r_, GLubyte g_, GLubyte b_, GLubyte a_) :
41  r(r_), g(g_), b(b_), a(a_)
42  {}
43 };
44 
45 struct UV
46 {
47  float u;
48  float v;
49 
50  UV()
51  {}
52 
53  UV(float u_, float v_) :
54  u(u_), v(v_)
55  {}
56 };
57 
58 struct Vertex
59 {
60  Position position;
61  Color color;
62  UV uv;
63 
64  Vertex()
65  {}
66 
67  Vertex(const Position &position_, const Color &color_, const UV &uv_) :
68  position(position_), color(color_), uv(uv_)
69  {}
70 
71  void setPosition(float x, float y)
72  {
73  position.x = x;
74  position.y = y;
75  }
76 
77  void setColor(GLubyte r, GLubyte g, GLubyte b, GLubyte a)
78  {
79  color.r = r;
80  color.g = g;
81  color.b = b;
82  color.a = a;
83  }
84 
85  void setUv(float u, float v)
86  {
87  uv.u = u;
88  uv.v = v;
89  }
90 };
91 
92 } // yage
93 
94 #endif
Definition: vertex.hpp:58
Definition: vertex.hpp:45
Definition: vertex.hpp:17
Definition: camera2d.hpp:17
Definition: vertex.hpp:30