From 9123414f677c05576d0b89b67864f0f0ce2fa8cf Mon Sep 17 00:00:00 2001 From: Pascal <engelerp@phys.ethz.ch> Date: Thu, 27 Jul 2023 11:52:22 +0200 Subject: [PATCH] Added alpha drawing --- gui/include/layer.hpp | 2 +- gui/src/layer.cpp | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/gui/include/layer.hpp b/gui/include/layer.hpp index cd9b63c..82cd3f6 100644 --- a/gui/include/layer.hpp +++ b/gui/include/layer.hpp @@ -24,7 +24,7 @@ class Layer{ public: Layer(std::string name, std::string filename, float zOffset, Material mat); - void draw(glm::mat4 projection, glm::mat4 view, glm::mat4 model, int drawing_mode, int selected_index); + void draw(glm::mat4 projection, glm::mat4 view, glm::mat4 model, int drawing_mode, int selected_index, float opacity); int selectObject(unsigned x, unsigned y, glm::mat4 projection, glm::mat4 view, glm::mat4 model); diff --git a/gui/src/layer.cpp b/gui/src/layer.cpp index 5424634..bbef817 100644 --- a/gui/src/layer.cpp +++ b/gui/src/layer.cpp @@ -118,12 +118,14 @@ Layer::Layer(std::string name, std::string filename, float zOffset, Material mat _shader.setVec4("color_good", mat.color_good); _shader.setVec4("color_bad", mat.color_bad); _shader.setVec4("color_sketch", mat.color_sketch); + _shader.setFloat("opacity", 1.f); + _shader.setBool("mirror", false); _shader.unuse(); _framebuffer = Framebuffer(); } -void Layer::draw(glm::mat4 projection, glm::mat4 view, glm::mat4 model, int drawing_mode, int selected_index){ +void Layer::draw(glm::mat4 projection, glm::mat4 view, glm::mat4 model, int drawing_mode, int selected_index, float opacity){ _shader.use(); _shader.setInt("drawing_mode", drawing_mode); _shader.setMat4("projection", projection); @@ -131,6 +133,7 @@ void Layer::draw(glm::mat4 projection, glm::mat4 view, glm::mat4 model, int draw _shader.setMat4("model", model); _shader.setFloat("z_offset", _zOffset); _shader.setFloat("selected_index", float(selected_index)); + _shader.setFloat("opacity", opacity); glBindVertexArray(_vao); glBindBuffer(GL_ARRAY_BUFFER, _vbo); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _ebo); @@ -147,7 +150,7 @@ int Layer::selectObject(unsigned x, unsigned y, glm::mat4 projection, glm::mat4 glClearColor(0.f, 0.f, 1.f, 1.0f); //selection colors have no blue glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - draw(projection, view, model, 1, -1); + draw(projection, view, model, 1, -1, 1.f); auto color = _framebuffer.getPixel(x, y); -- GitLab