class Model {
public:
+ using Position = glm::vec3;
+ using Color = glm::vec3;
+ using Normal = glm::vec3;
using Index = unsigned int;
+ using Positions = std::vector<Position>;
+ using Colors = std::vector<Color>;
+ using Normals = std::vector<Normal>;
+ using Indices = std::vector<Index>;
+
public:
- std::vector<glm::vec3> vertices;
- std::vector<glm::vec3> colors;
- std::vector<glm::vec3> normals;
- std::vector<Index> indices;
+ Positions vertices;
+ Colors colors;
+ Normals normals;
+ Indices indices;
public:
Model();
void Clear();
void Reserve(int vtx_count, int idx_count);
+ void CheckUpdate();
void Draw();
private:
ATTRIB_COUNT,
};
+ GLuint va;
GLuint handle[ATTRIB_COUNT];
bool dirty;
class OutlineModel {
public:
+ using Position = glm::vec3;
+ using Color = glm::vec3;
using Index = unsigned short;
+ using Positions = std::vector<Position>;
+ using Colors = std::vector<Color>;
+ using Indices = std::vector<Index>;
+
public:
- std::vector<glm::vec3> vertices;
- std::vector<glm::vec3> colors;
- std::vector<Index> indices;
+ Positions vertices;
+ Colors colors;
+ Indices indices;
public:
OutlineModel();
ATTRIB_COUNT,
};
+ GLuint va;
GLuint handle[ATTRIB_COUNT];
bool dirty;