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