Неблокирующий оконный менеджер open3dPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Неблокирующий оконный менеджер open3d

Сообщение Anonymous »

Я хотел бы создать класс, который хранит историю объектов (в моем случае графиков), каждый граф может получить список кортежей (меток, геометрии) из метода get_geometrys. Я также хотел бы всегда отображать самый последний график. как сделать дисплей интерактивным (посмотрите вокруг с помощью мыши)
Сейчас у меня есть следующее

Код: Выделить всё

class Graph_Manager:
def __init__(self):
self.graph_history = []
self.last_displayed_labels = []

self.app = o3d.visualization.gui.Application.instance
self.app.initialize()

self.vis = o3d.visualization.O3DVisualizer(title="Scene Graph Visualizer", width=1000, height=1000)
self.app.add_window(self.vis)

self.app.run_in_thread(self.update_display)

def update_display(self):
while True:
print(f"update display looped")
if len(self.graph_history) == 0:
geo = get_geometries(None)  # Get geometries for the initial graph
else:
geo = get_geometries(self.graph_history[-1])  # Get geometries for the latest graph

#print(f"{geo=}")

# Clear previous geometry and add new geometries to the visualizer
#print(f"{dir(self.vis)=}")
for old_geometry in self.last_displayed_labels:
#print(f"removing {old_geometry}")
self.vis.remove_geometry(old_geometry)

self.last_displayed_labels = []
for label, geometry in geo:
self.vis.add_geometry(label, geometry)
self.last_displayed_labels.append(label)

self.vis.post_redraw()
#self.app.post_to_main_thread(self.vis, self.vis.post_redraw)
#self.app.run_one_tick()
self.app.post_to_main_thread(self.vis, self.app.run_one_tick)

time.sleep(0.05)

def add_graph(self, graph):
self.graph_history.append(graph)
В настоящее время отображается просто черный экран, я думаю, из-за требований основного потока. Любая помощь приветствуется.
O3DVisualizer
Приложение

Подробнее здесь: https://stackoverflow.com/questions/792 ... ow-manager
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как сделать оконный менеджер функциональным в среде рабочего стола, но на основе философии unix [закрыто]
    Anonymous » » в форуме Linux
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Существует ли оконный менеджер Linux, написанный на Node.js? [закрыто]
    Anonymous » » в форуме CSS
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Существует ли оконный менеджер Linux, написанный на Node.js? [закрыто]
    Anonymous » » в форуме Linux
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Медиа-менеджер не отображает файловый менеджер в меню администратора
    Anonymous » » в форуме Php
    0 Ответы
    44 Просмотры
    Последнее сообщение Anonymous
  • Как заставить мой оконный cmd автоматически запускать браузер Chrome
    Гость » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»