X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fblock.hpp;h=1c1dddb10c3e4377f6e5d1b6617be38eedf00674;hb=82426ae2997d2b21703d2d5afb631a84736e975f;hp=a757740b77000e6768c2519b6a696c4eef833a74;hpb=eca1fdcc8e34a4918418b2de122c6200aeb7ceaf;p=blank.git diff --git a/src/block.hpp b/src/block.hpp index a757740..1c1dddb 100644 --- a/src/block.hpp +++ b/src/block.hpp @@ -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 &vertices, - std::vector &colors, - std::vector &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 &vertices, - std::vector &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) { } };