2014-09-01 5 views
0

저는 (0.5, 0.5, 0.5) 지점과 같은 주위에 많은 선과 평면이 있습니다. 또한 나는 그들이 중요성을 가지고있는 영역을 가지고 있으며, 그것은 입방체입니다. 그리고 선들, 비행기들은이 지역과 교차 할 가능성이 있습니다. 내 지역에 포함되지 않은 모든 요소 및 요소의 일부를 숨길 수 있습니까? Vtk는 매우 간단하게 할 수있는 기회가 있습니까? 아니면 혼자서해야합니까? 예를 들어, SetBounds (bounds)와 그 이후에 큐브 사라짐에 포함되지 않은 모든 것을 쓰고 싶습니다.vtk에서 3D 맵의 범위를 C++로 설정하는 방법은 무엇입니까?

답변

0

을 사용하여 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());