Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 剪裁非结构化网格并保留阵列数据_C++_Vtk_Clip - Fatal编程技术网

C++ 剪裁非结构化网格并保留阵列数据

C++ 剪裁非结构化网格并保留阵列数据,c++,vtk,clip,C++,Vtk,Clip,我正在尝试使用vtkClipDataSet剪裁vtkUnstructuredGrid。问题是,在剪辑之后,生成的vtkUnstructuredGrid没有点/单元数据(数组) 这是我的代码: vtkSmartPointer<vtkUnstructuredGrid> model = reader->GetOutput(); // this shows that model has one point data array called "Displacements&qu

我正在尝试使用vtkClipDataSet剪裁vtkUnstructuredGrid。问题是,在剪辑之后,生成的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);
vtkSmartPointer model=reader->GetOutput();
//这表明该模型有一个称为“位移”的点数据数组(由3个分量组成的向量)
模型->打印(标准::cout);
//飞机来切割它
vtkSmartPointer平面=vtkSmartPointer::New();
平面->设置原点(0.0,0.0,0.0);平面->设置法线(1,0,0);
//剪辑数据
vtkSmartPointer clipDataSet=vtkSmartPointer::New();
clipDataSet->SetClipFunction(平面);
clipDataSet->SetInputConnection(model->GetProducerPort());
clipDataSet->InsideOutOn();
clipDataSet->GenerateClippedOutputOn();
//这里有个问题。打印显示输出数据上没有任何数组
clipDataSet->GetOutput()->打印(std::cout);
我需要输出网格具有数组,因为我想在结果网格上显示值。 例如,如果数据是标量,我希望在切割的网格上显示isovalues。如果数据是矢量的,我想在数据矢量的方向上变形网格(扭曲)

这里我有一个关于ParaView的例子来说明我想做什么。实体是原始网格,线框网格是变形网格。

我使用VTK 5.10在C++下(Windows 8.1位,如果有帮助的话)。 谢谢大家!!


PS:我试着在VTKusers列表上问这个问题,但没有得到答案。

好的,我在用户lib的注释后发现了错误。设置inputconnection后,我错过了更新调用。 谢谢大家

// Clip data
vtkSmartPointer<vtkClipDataSet> clipDataSet = vtkSmartPointer<vtkClipDataSet>::New();
clipDataSet->SetClipFunction(plane);
clipDataSet->SetInputConnection(model->GetProducerPort());
clipDataSet->InsideOutOn();
clipDataSet->GenerateClippedOutputOn();
clipDataSet->Update(); // THIS is the solution
//剪辑数据
vtkSmartPointer clipDataSet=vtkSmartPointer::New();
clipDataSet->SetClipFunction(平面);
clipDataSet->SetInputConnection(model->GetProducerPort());
clipDataSet->InsideOutOn();
clipDataSet->GenerateClippedOutputOn();
clipDataSet->Update();//这就是解决办法

你有什么收获吗?我看不到你在更新剪辑filter@lib是的,你说得对。就这样!我错过了更新电话!固定的!非常感谢。