From bc877a086ec5a72116013c4f678f776dba2ee895 Mon Sep 17 00:00:00 2001
From: ik1g19 <ik1g19@soton.ac.uk>
Date: Mon, 9 Jan 2023 19:17:27 +0000
Subject: [PATCH] update_point_clouds accepts optional parameter for slam data

---
 src/pcp_gui.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/pcp_gui.py b/src/pcp_gui.py
index 2325252..47edb57 100644
--- a/src/pcp_gui.py
+++ b/src/pcp_gui.py
@@ -12,6 +12,7 @@ import open3d.visualization.gui as gui
 class Viewer3D(object):
     
     frame_counter = 0
+    pcd = None
 
     def __init__(self, title):
         app = gui.Application.instance
@@ -32,6 +33,7 @@ class Viewer3D(object):
         self.skeletons = o3d.geometry.LineSet()
         # the name is necessary to remove from the scene
         self.skeletons_name = "skeletons"
+        self.slam_name = "slam"
         
         self.mesh_box = o3d.geometry.TriangleMesh.create_box(width=20.0,
                                                     height=0.1,
@@ -44,7 +46,7 @@ class Viewer3D(object):
         
         self.skeleton_data = np.load("../input/dataset.npy")
         
-    def update_point_clouds(self):
+    def update_point_clouds(self, slam = None):
         self.frame_counter = self.frame_counter + 1
         
         if self.frame_counter == 10 or self.frame_counter % 500 == 0:
@@ -54,6 +56,8 @@ class Viewer3D(object):
             self.skeletons = Skeleton3D.skeleton_poses(poses)
             
             self.skeletons.colors = Skeleton3D.skeleton_paint(3)    
+            
+            self.pcd = o3d.io.read_point_cloud(slam) if slam is not None else None
 
     def setup_o3d_scene(self):
         self.main_vis.add_geometry(self.skeletons_name, self.skeletons)
@@ -71,7 +75,9 @@ class Viewer3D(object):
 
     def update_o3d_scene(self):
         self.main_vis.remove_geometry(self.skeletons_name)
+        if self.pcd is not None: self.main_vis.remove_geometry(self.slam_name)
         self.main_vis.add_geometry(self.skeletons_name, self.skeletons)
+        if self.pcd is not None: self.main_vis.add_geometry(self.slam_name, self.pcd)
 
     def run_one_tick(self):
         app = o3d.visualization.gui.Application.instance
-- 
GitLab