class Model {
+public:
+ using Index = unsigned int;
+
public:
std::vector<glm::vec3> vertices;
std::vector<glm::vec3> colors;
std::vector<glm::vec3> normals;
+ std::vector<Index> indices;
public:
Model();
void Invalidate() { dirty = true; }
void Clear();
- void Reserve(int);
+ void Reserve(int vtx_count, int idx_count);
void Draw();
ATTRIB_VERTEX,
ATTRIB_COLOR,
ATTRIB_NORMAL,
+ ATTRIB_INDEX,
ATTRIB_COUNT,
};
class OutlineModel {
+public:
+ using Index = unsigned short;
+
public:
std::vector<glm::vec3> vertices;
std::vector<glm::vec3> colors;
+ std::vector<Index> indices;
public:
OutlineModel();
void Invalidate() { dirty = true; }
void Clear();
- void Reserve(int);
+ void Reserve(int vtx_count, int idx_count);
void Draw();
enum Attribute {
ATTRIB_VERTEX,
ATTRIB_COLOR,
+ ATTRIB_INDEX,
ATTRIB_COUNT,
};