diff --git a/gui/include/layer.hpp b/gui/include/layer.hpp
index 82cd3f6355bb99b1f0a7cb7084f81c27aafb0769..e2a7096efa7424d44463d2cb66216edd0bb504fc 100644
--- a/gui/include/layer.hpp
+++ b/gui/include/layer.hpp
@@ -30,6 +30,7 @@ public:
 
     void setObjectState(int objectIndex, int state);
     bool setAllObjectStates(std::vector<ObjectMetadata> data);
+    void setMirrorState(bool mirror);
 
     std::string name() const;
     int numObjects() const;
diff --git a/gui/src/layer.cpp b/gui/src/layer.cpp
index bbef8174133e8d6c43686403223332fcf3d24412..c66dd9ca99ad0ac4092468f161d572ef7d168c97 100644
--- a/gui/src/layer.cpp
+++ b/gui/src/layer.cpp
@@ -193,6 +193,12 @@ void Layer::setObjectState(int objectIndex, int state) {
   glBindBuffer(GL_ARRAY_BUFFER, 0);
 }
 
+void Layer::setMirrorState(bool mirror) {
+  _shader.use();
+  _shader.setBool("mirror", mirror);
+  _shader.unuse();
+}
+
 bool Layer::setAllObjectStates(std::vector<ObjectMetadata> data) {
   if (data.size() != numObjects()) {
     std::cerr << "Size mismatch in Object States Update: Loaded " << data.size() << ", expected " << numObjects() << std::endl;