Проблема с использованием vtkImagePlaneWidget & vtkPOpenFOAMReader - PullRequest
0 голосов
/ 12 февраля 2019

введите описание изображения здесь Image is here

Я использовал vtkPOpenFOAMReader для чтения * .foam.А также я использовал vtkImagePlaneWidget для чтения данных dicom в 3D-шоу.Все хорошо, я получил результат.Но есть критическая проблема.

Я вижу, что данные по пене идеальны.Но если добавить только этот код <(1)>, на данных о пене появится пунктирная линия.

#include "mainwindow.h"
#include <QApplication>
#include <iostream>
using namespace std;
#include <vtkAutoInit.h> 
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingFreeType);
int main(int argc, char *argv[])
{
vtkSmartPointer<vtkImagePlaneWidget> planeWidget = vtkSmartPointer<vtkImagePlaneWidget>::New();/*(1)*/
vtkSmartPointer<vtkPOpenFOAMReader>openFOAMReader = vtkSmartPointer<vtkPOpenFOAMReader>::New();

openFOAMReader->SetCaseType(0);
openFOAMReader->SetFileName("./PatientA/ffr.foam");
openFOAMReader->CreateCellToPointOn();
openFOAMReader->EnableAllCellArrays();
openFOAMReader->DecomposePolyhedraOn();
openFOAMReader->Update();

vtkSmartPointer< vtkGeometryFilter> filter = vtkSmartPointer<vtkGeometryFilter>::New();
filter->SetInputConnection(openFOAMReader->GetOutputPort());

vtkSmartPointer<vtkCompositePolyDataMapper2> mapper = vtkSmartPointer<vtkCompositePolyDataMapper2>::New();
mapper->SetInputConnection(filter->GetOutputPort());
mapper->SetScalarModeToUsePointFieldData();
mapper->SelectColorArray("p");
mapper->SetScalarRange(-10, 50);

vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper);

vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor(actor);

vtkSmartPointer<vtkRenderWindow> renWin = vtkSmartPointer<vtkRenderWindow>::New();
renWin->AddRenderer(renderer);

vtkSmartPointer<vtkRenderWindowInteractor> iren = vtkSmartPointer<vtkRenderWindowInteractor>::New();
iren->SetRenderWindow(renWin);
renWin->Render();
iren->Start();
return true;
}

Так почему же это произошло?Это очень важный вопрос для меня.

...