有没有办法设置一个vtkBooleanOperationPolyDataFilter,这样当它用于获取相同的vtkPolyData之间的布尔差异时,它将导致一个空的vtkPolyData?例如,如果我从vtkPolyData * output
开始并执行...
vtkSmartPointer<vtkBooleanOperationPolyDataFilter> diffFilter =
vtkSmartPointer<vtkBooleanOperationPolyDataFilter>::New();
diffFilter->SetOperationToDifference();
diffFilter->SetInputData(0,output1);
diffFilter->SetInputData(1,output1); // set input and output to same geometry
... diffFilter
操作的结果似乎与output1
相同。对于我的应用程序,结果应该是空集。
根据这篇VTK期刊文章http://www.vtkjournal.org/browse/publication/797,该算法假设没有共面三角形,所以我可能认为这是不可能的,我需要查看一个基于CSG的库。
答案 0 :(得分:1)
Cory Quammen在vtk-users邮件列表中回答了这个问题:
可能可能作为主要之前的预处理步骤 算法,但现在存在,过滤器应该失败,我 嫌疑。
也许RonaldRömer的这个过滤器会做正确的事情 情况?