Я пытаюсь обрезать vtkUnstructuredGrid с помощью vtkClipDataSet. Проблема в том, что после того, как я клип, в результате vtkUnstructuredGrid не будет данных о точках/ячейках (массивах).Клип Неструктурированная сетка и данные массивов
Это мой код:
vtkSmartPointer<vtkUnstructuredGrid> model = reader->GetOutput();
// this shows that model has one point data array called "Displacements" (vectorial of 3 components)
model->Print(std::cout);
// Plane to cut it
vtkSmartPointer<vtkPlane> plane = vtkSmartPointer<vtkPlane>::New();
plane->SetOrigin(0.0,0.0,0.0); plane->SetNormal(1,0,0);
// Clip data
vtkSmartPointer<vtkClipDataSet> clipDataSet = vtkSmartPointer<vtkClipDataSet>::New();
clipDataSet->SetClipFunction(plane);
clipDataSet->SetInputConnection(model->GetProducerPort());
clipDataSet->InsideOutOn();
clipDataSet->GenerateClippedOutputOn();
//PROBLEM HERE. The print shows that there aren't any arrays on the output data
clipDataSet->GetOutput()->Print(std::cout);
мне нужна выходная сетка, чтобы иметь массивы, потому что я хотел бы, чтобы отобразить значения на результирующую сетке. Например, если данные являются скалярами, я хотел бы отображать isovalues на разрезанной сетке. Если данные являются векторными, я хотел бы деформировать сетку (warp) в направлении векторов данных.
Здесь у меня есть пример в ParaView того, что я хотел бы сделать. Твердое тело является исходной сеткой, а каркасная сетка является деформированной.
Я использую VTK 5.10 под C++ (Windows 8.1 64 бит, если это помогает).
Спасибо! PS: Я пробовал просить об этом в списке VTKusers, но я не получил ответа.
у вас есть что-нибудь вообще? Я не вижу, чтобы вы обновляли фильтр клипа. – lib
@lib Да, вы правы. Это оно! Мне не хватает вызова обновления! Исправлена! Спасибо! – fern17