]> git.localhorst.tv Git - blank.git/blobdiff - src/world.hpp
move outline definition to block type
[blank.git] / src / world.hpp
index 9f29ab4ee4ff09b579689765b96872a2eb5f8766..9fb07798c3f976569d4052cb916dc359d702adca 100644 (file)
@@ -19,11 +19,13 @@ struct BlockType {
 
        bool visible;
        glm::vec3 color;
+       glm::vec3 outline_color;
 
        constexpr explicit BlockType(
                bool v = false,
-               const glm::vec3 &color = { 1, 1, 1 })
-       : id(-1), visible(v), color(color) { }
+               const glm::vec3 &color = { 1, 1, 1 },
+               const glm::vec3 &outline_color = { -1, -1, -1 })
+       : id(-1), visible(v), color(color), outline_color(outline_color) { }
 
        static const BlockType DEFAULT;
 
@@ -37,6 +39,18 @@ struct BlockType {
 
        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
+       ) const;
+
+       void FillOutlineModel(OutlineModel &m) const {
+               FillOutlineVBO(m.vertices, m.colors);
+               m.Invalidate();
        }
 
 };