Актер для vtkSplineRepresentation () - PullRequest
1 голос
/ 19 марта 2019

У меня есть два vtkSplineRepresentation () и два видовых экрана.Я хочу связать вид со сплайном.Я знаю, что для этого мне нужно создать актера.Но проблема в том, что я не знаю как.Я попробовал команду VtkActor, но я показываю только мяч, а не набор точек, я также пробовал LineActor, но я получил ошибку.Кто-нибудь может мне помочь?

Функция выглядит следующим образом:

def Spline(self,crv,ren,iren):

    extract = vtk.vtkExtractVOI()
    puntosVTK=dental_curve.puntos_vtk(crv)

    spline = vtk.vtkSplineWidget() 
    spline.InitializeHandles(puntosVTK) #insertamos los puntos       
    spline.SetCurrentRenderer(ren)
    spline.SetDefaultRenderer(ren)

    spline.SetInputConnection(extract.GetOutputPort())
    spline.SetInteractor(iren)
    spline.ProjectToPlaneOn()
    spline.SetProjectionNormalToXAxes()
    spline.On()
    return spline

1 Ответ

2 голосов
/ 20 марта 2019

Вам необходимо получить полиданные из вашей vtkSplineRepresenatation (через GetPolyData ()) и передать их в vtkPolyDataMapper, а затем использовать vtkPolyDataMapper вашему актеру. Вы не опубликовали код, поэтому я ничего не могу исправить, но чтобы дать вам представление:

mapper = vtk.vtkPolyDataMapper()
geometry = vtk.vtkPolyData()
spline.GetPolyData(geometry))
mapper.SetInputData(geometry)
mapper.Update()

actor = vtk.vtkActor()
actor.SetMapper(mapper)
...