MCPcopy Create free account
hub / github.com/PRBonn/MapClosures / Visualizer

Class Visualizer

python/map_closures/visualizer/visualizer.py:69–309  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

67
68
69class Visualizer(StubVisualizer):
70 def __init__(self):
71 # Initialize GUI
72 try:
73 self._ps = importlib.import_module("polyscope")
74 self._gui = self._ps.imgui
75 except ModuleNotFoundError as err:
76 print(f'polyscope is not installed on your system, run "pip install polyscope"')
77 exit(1)
78
79 self.localmap_data = LocalMapData()
80 self.registration = RegistrationVisualizer(self._ps, self._gui)
81 self.closures = ClosuresVisualizer(self._ps, self._gui, self.localmap_data)
82 self.local_maps = LocalMapVisualizer(self._ps, self._gui, self.localmap_data)
83 self.background_color = BACKGROUND_COLOR
84 self.global_view = False
85
86 self._initialize_visualizers()
87
88 def update_registration(self, source, local_map, frame_pose):
89 self.registration.update(source, local_map, frame_pose)
90
91 def update_data(self, local_map, density_map, local_map_pose):
92 self.localmap_data.size += 1
93 self.localmap_data.local_maps.append(local_map)
94 self.localmap_data.density_maps.append(density_map)
95 self.localmap_data.local_map_poses.append(local_map_pose)
96
97 def update_closures(self, alignment_pose, closure_edge):
98 self.closures.update_closures(alignment_pose, closure_edge)
99
100 def _initialize_visualizers(self):
101 self._ps.set_program_name("MapClosures Visualizer")
102 self._ps.init()
103 self._ps.set_ground_plane_mode("none")
104 self._ps.set_background_color(BACKGROUND_COLOR)
105 self._ps.set_verbosity(0)
106 self._ps.set_user_callback(self._main_gui_callback)
107 self._ps.set_build_default_gui_panels(False)
108
109 # --- GUI Callbacks ------------------------------------------------
110 def _main_gui_callback(self):
111 if not self.closures.states.toggle_view and not self.local_maps.toggle_view:
112 self.registration._start_pause_callback()
113 if not self.registration.states.play_mode:
114 self._gui.SameLine()
115 self.registration._next_frame_callback()
116 self._gui.Separator()
117 self.registration._source_callback()
118 self.registration._localmap_callback()
119 elif self.closures.states.toggle_view:
120 self.closures._previous_next_closure_callback()
121 self._gui.SameLine()
122 self.closures._density_map_callback()
123 self._gui.Separator()
124 self.closures._query_map_callback()
125 self.closures._reference_map_callback()
126 self._gui.Separator()

Callers 1

__init__Method · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected