]> git.localhorst.tv Git - blank.git/blobdiff - src/block.hpp
use indices for model rendering
[blank.git] / src / block.hpp
index a757740b77000e6768c2519b6a696c4eef833a74..1c1dddb10c3e4377f6e5d1b6617be38eedf00674 100644 (file)
@@ -29,33 +29,20 @@ struct BlockType {
                const glm::vec3 &outline_color = { -1, -1, -1 })
        : id(-1), visible(v), shape(shape), color(color), outline_color(outline_color) { }
 
-       static const BlockType DEFAULT;
        static const NullShape DEFAULT_SHAPE;
 
 
-       void FillVBO(
-               const glm::vec3 &pos,
-               std::vector<glm::vec3> &vertices,
-               std::vector<glm::vec3> &colors,
-               std::vector<glm::vec3> &normals
+       void FillModel(
+               Model &m,
+               const glm::vec3 &pos_offset = { 0, 0, 0 },
+               Model::Index idx_offset = 0
        ) const;
-
-       void FillModel(const glm::vec3 &pos, Model &m) const {
-               FillVBO(pos, m.vertices, m.colors, m.normals);
-               m.Invalidate();
-       }
-
-
-       void FillOutlineVBO(
-               std::vector<glm::vec3> &vertices,
-               std::vector<glm::vec3> &colors
+       void FillOutlineModel(
+               OutlineModel &m,
+               const glm::vec3 &pos_offset = { 0, 0, 0 },
+               OutlineModel::Index idx_offset = 0
        ) const;
 
-       void FillOutlineModel(OutlineModel &m) const {
-               FillOutlineVBO(m.vertices, m.colors);
-               m.Invalidate();
-       }
-
 };
 
 
@@ -83,10 +70,10 @@ struct Block {
 
        using Pos = glm::vec3;
 
-       const BlockType *type;
+       int type;
 
-       constexpr explicit Block(const BlockType *t = &BlockType::DEFAULT)
-       : type(t) { }
+       constexpr explicit Block(int type = 0)
+       : type(type) { }
 
 };