1

我已经尝试了很多,但我没有得到这个工作。

我想用 QVTK Widget 构建一个 QT4 应用程序。可悲的是,我需要使用 QT4,因此需要使用 VTK 5.10。

有一个vtkActor处理一些vtkPoints应该呈现的内容(没什么花哨的,或多或少来自 VTK 的示例)。这是管道初始化:

m_pdata = vtkSmartPointer<vtkPolyData>::New();

m_pdata->SetPoints(m_points);

m_vfilter = vtkSmartPointer<vtkVertexGlyphFilter>::New();
m_vfilter->SetInputConnection(m_pdata->GetProducerPort());
m_vfilter->Update();

m_vdata = vtkSmartPointer<vtkPolyData>::New();

m_vdata->ShallowCopy(m_vfilter->GetOutput());

m_mapper = vtkSmartPointer<vtkPolyDataMapper>::New();

m_mapper->SetInputConnection(m_vdata->GetProducerPort());

m_pactor = vtkSmartPointer<vtkActor>::New();
m_pactor->SetMapper(m_mapper);
m_pactor->GetProperty()->SetPointSize(2);

m_renderer->AddActor(m_pactor);

在此之后,应用程序调用m_rwindow->Render()来渲染场景......

然后我有一个 QTQLineEdit向 中添加一个点vtkPoints,如下所示:

m_points->InsertNextPoint(point[0], point[1], point[2]);

我想刷新视图,这样新的点也会被渲染。但这不会发生......

我试图像这样更新管道(在每个星座中或多或少):

m_pdata->Modified();
m_pdata->Update();
m_vfilter->Modified();
m_vfilter->Update();
m_vdata->Modified();
m_vdata->Update();
m_mapper->Modified();
m_mapper->Update();
m_pactor->Modified();

在此更新过程之后,我再次致电m_rwindow->Render()

但是我更新的所有内容都将是旧点(例如点的颜色或大小......)。

是否可以重新渲染点以便也显示新点?

4

0 回答 0