如何用c ++在vtk中设置3d地图的边界?

时间:2014-09-01 05:51:27

标签: c++ 3d vtk setbounds

我有很多线和平面,例如,(0.5,0.5,0.5)点。我也有一个重要的区域,它是一个立方体。线条,平面有可能与这个区域相交,并且在它之外。我可以隐藏所有元素的一部分,以及未包含在我的区域中的元素部分吗? Vtk有机会非常简单吗?或者我需要自己做?我想写一下,例如SetBounds(bounds),之后所有的东西都不包含在cube dissapear中。

1 个答案:

答案 0 :(得分:0)

尝试使用vtkClipDataSet并将剪辑功能设置为vtkBox。最后,渲染vtkClipDataSet过滤器的输出。

vtkNew<vtkBox> box;
box->SetBounds(.....); // set the bounds of interest.

vtkNew<vtkClipDataSet> clipper;
clipper->SetInputConnection(....); // set to your data producer
clipper->SetClipFunction(box.GetPointer());

// since clipper will produce an unstructured grid, apply the following to
// extract a  polydata from it.
vtkNew<vtkGeometryFilter> geomFilter;
geomFilter->SetInputConnection(clipper->GetOutputPort());

// now, this can be connected to the mapper.
vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputConnection(geomFilter->GetOutputPort());