使用应用于SetUserTransform的更改更新actor的正确方法

时间:2016-09-25 10:34:55

标签: vtk

我有一个poly actor,它有一个vtkBoxWidget,连接到回调,如文档中的示例所示:

def widget_callback(obj, event):
    t = vtk.vtkTransform()
    obj.GetTransform(t)
    obj.GetProp3D().SetUserTransform(t)

一切正常,我可以使用小部件移动和转换actor,但转换应用于UserTransform,而不是处理到actor属性。

所以,如果我打电话:

actor.GetPosition()

它在使用窗口小部件进行更改之前返回初始位置。如果我打电话:

actor.GetUserTransform().GetPosition()

我得到相对于第一次互动起点的更新位置。

我是否必须通过vtkTransformPolyDataFilter连接它,然后更新到映射器的输入连接并计算坐标空间偏移量或者是否有更简单的方法? ......总之:

使用应用于SetUserTransform的更改来更新actor的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

在尝试使用vtkTransformPolyDataFilter和开始/结束交互事件链接到流程中的各个步骤之后,我发现为了我的目的,处理这个的绝对最简单的方法就是将widget转换直接链接到actor属性:

ComboReferenceField