1 #ifndef BLANK_MODEL_HPP_
2 #define BLANK_MODEL_HPP_
14 using Position = glm::vec3;
15 using Color = glm::vec3;
16 using Normal = glm::vec3;
17 using Index = unsigned int;
19 using Positions = std::vector<Position>;
20 using Colors = std::vector<Color>;
21 using Normals = std::vector<Normal>;
22 using Indices = std::vector<Index>;
32 void Clear() noexcept {
39 void Reserve(size_t p, size_t i) {
52 Model(const Model &) = delete;
53 Model &operator =(const Model &) = delete;
55 Model(Model &&) noexcept;
56 Model &operator =(Model &&) noexcept;
58 void Update(const Buffer &) noexcept;
60 void Draw() const noexcept;
72 GLuint handle[ATTRIB_COUNT];
81 using Position = glm::vec3;
82 using Color = glm::vec3;
84 using Index = unsigned int;
86 using Positions = std::vector<Position>;
87 using Colors = std::vector<Color>;
88 using Lights = std::vector<Light>;
89 using Indices = std::vector<Index>;
99 void Clear() noexcept {
106 void Reserve(size_t p, size_t i) {
116 BlockModel() noexcept;
117 ~BlockModel() noexcept;
119 BlockModel(const BlockModel &) = delete;
120 BlockModel &operator =(const Model &) = delete;
122 BlockModel(BlockModel &&) noexcept;
123 BlockModel &operator =(BlockModel &&) noexcept;
125 void Update(const Buffer &) noexcept;
127 void Draw() const noexcept;
139 GLuint handle[ATTRIB_COUNT];
148 using Position = glm::vec3;
149 using Color = glm::vec3;
150 using Index = unsigned short;
152 using Positions = std::vector<Position>;
153 using Colors = std::vector<Color>;
154 using Indices = std::vector<Index>;
162 OutlineModel() noexcept;
163 ~OutlineModel() noexcept;
165 OutlineModel(const OutlineModel &) = delete;
166 OutlineModel &operator =(const OutlineModel &) = delete;
168 void Invalidate() noexcept { dirty = true; }
170 void Clear() noexcept;
171 void Reserve(int vtx_count, int idx_count);
173 void Draw() noexcept;
176 void Update() noexcept;
187 GLuint handle[ATTRIB_COUNT];