From 66d739fa9dd47f3c107903ea436d9ee65f41b766 Mon Sep 17 00:00:00 2001
From: Fabian Reister <fabian.reister@kit.edu>
Date: Thu, 6 Oct 2022 18:31:55 +0200
Subject: [PATCH] navigation memory: property to disable transparent humans

---
 .../navigation/components/navigation_memory/Component.cpp | 2 +-
 .../navigation/components/navigation_memory/Component.h   | 2 ++
 .../navigation/components/navigation_memory/Visu.cpp      | 8 ++++----
 .../armarx/navigation/components/navigation_memory/Visu.h | 2 +-
 4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/source/armarx/navigation/components/navigation_memory/Component.cpp b/source/armarx/navigation/components/navigation_memory/Component.cpp
index 13f1fe8c..d774a623 100644
--- a/source/armarx/navigation/components/navigation_memory/Component.cpp
+++ b/source/armarx/navigation/components/navigation_memory/Component.cpp
@@ -475,7 +475,7 @@ namespace armarx::navigation::components::navigation_memory
             visu.drawCostmaps(layers, p.visuCostmaps);
 
             // Humans
-            visu.drawHumans(layers, p.visuHumans);
+            visu.drawHumans(layers, p.visuHumans, p.visuTransparent);
 
             arviz.commit(layers);
 
diff --git a/source/armarx/navigation/components/navigation_memory/Component.h b/source/armarx/navigation/components/navigation_memory/Component.h
index b1bbf3ea..930215ae 100644
--- a/source/armarx/navigation/components/navigation_memory/Component.h
+++ b/source/armarx/navigation/components/navigation_memory/Component.h
@@ -100,6 +100,8 @@ namespace armarx::navigation::components::navigation_memory
                 bool visuGraphEdges = true;
                 bool visuCostmaps = true;
                 bool visuHumans = true;
+
+                bool visuTransparent = false;
                 
                 float visuFrequency = 10;
             };
diff --git a/source/armarx/navigation/components/navigation_memory/Visu.cpp b/source/armarx/navigation/components/navigation_memory/Visu.cpp
index 2b5e1aa0..02838557 100644
--- a/source/armarx/navigation/components/navigation_memory/Visu.cpp
+++ b/source/armarx/navigation/components/navigation_memory/Visu.cpp
@@ -177,7 +177,7 @@ namespace armarx::navigation::memory
         }
 
         void
-        visualize(const human::Humans& humans, viz::Layer& layer)
+        visualize(const human::Humans& humans, viz::Layer& layer, const bool visuTransparent)
         {
 
             const Eigen::Translation3f human_T_mmm(Eigen::Vector3f{0,0, 1000});
@@ -199,7 +199,7 @@ namespace armarx::navigation::memory
                 mmm.file("RobotAPI", "RobotAPI/robots/MMM/mmm.xml");
                 mmm.pose(conv::to3D(human.pose) * human_T_mmm);
                 mmm.scale(1.7); // 1.7m 
-                mmm.overrideColor(viz::Color::orange(255, 100));
+                mmm.overrideColor(viz::Color::orange(255, visuTransparent? 100: 255));
                 layer.add(mmm);
 
             }
@@ -248,7 +248,7 @@ namespace armarx::navigation::memory
     }
 
     void
-    Visu::drawHumans(std::vector<viz::Layer>& layers, bool enabled)
+    Visu::drawHumans(std::vector<viz::Layer>& layers, const bool enabled, const bool visuTransparent)
     {
         if (not enabled)
         {
@@ -283,7 +283,7 @@ namespace armarx::navigation::memory
         for (const auto& [providerName, humans] : namedProviderHumans)
         {
             viz::Layer& layer = layers.emplace_back(arviz.layer("humans_" + providerName));
-            visualize(humans, layer);
+            visualize(humans, layer, visuTransparent);
         }
     }
 
diff --git a/source/armarx/navigation/components/navigation_memory/Visu.h b/source/armarx/navigation/components/navigation_memory/Visu.h
index 71c057df..d965fecc 100644
--- a/source/armarx/navigation/components/navigation_memory/Visu.h
+++ b/source/armarx/navigation/components/navigation_memory/Visu.h
@@ -55,7 +55,7 @@ namespace armarx::navigation::memory
         void drawLocations(std::vector<viz::Layer>& layers, bool enabled);
         void drawGraphs(std::vector<viz::Layer>& layers, bool enabled);
         void drawCostmaps(std::vector<viz::Layer>& layers, bool enabled);
-        void drawHumans(std::vector<viz::Layer>& layers, bool enabled);
+        void drawHumans(std::vector<viz::Layer>& layers, bool enabled, bool visuTransparent);
 
 
         viz::ScopedClient arviz;
-- 
GitLab