, что я видел до сих пор, это то, что есть виджет, который показывает 3D-ограничивающий прямоугольник с 6 ручками. Python Boxwidget Exampler
Я бы хотел перевести окно, нажав [cntrl] + перетаскивая ручку, и вращая только вокруг оси y, нажав [shift] + перетаскивая ручку. ..
Каждое взаимодействие должно происходить только с рамкой на сцене и ничего больше.
Нужно ли перезаписывать функции виджета с рамкой? Или какую именно функцию я должен изменить. Должен ли я добавить наблюдателя взаимодействий?
И как-то - ручки становятся больше по размеру с первыми 2 или 3 взаимодействиями, кто-то испытывал ту же проблему?
РЕДАКТИРОВАТЬ:
Это мой текущий код:
self.boxWidget = vtk.vtkBoxWidget()
self.boxWidget.SetInteractor(self.renderWindowInteractor)
self.boxWidget.SetProp3D(self.boxes_3d_actors[obj_cls_name][0])
self.boxWidget.SetPlaceFactor(1.0)
self.boxWidget.PlaceWidget()
Где self.boxes_3d_actors - это массив vtk.vtkAssembly ( ), которые состоят из полилиний.
Теперь мне нужно как-то перезаписать событие взаимодействия дескрипторов. Лучше всего было бы создать унаследованный класс vtkBoxwidget с собственными функциями взаимодействия.