<p dir="ltr">Hi,</p>
<p dir="ltr">the filter does not work very well. Here is an alternative: <a href="https://github.com/zippy84/vtkbool">https://github.com/zippy84/vtkbool</a></p>
<p dir="ltr">Currently you have to use C++, if this is not a problem for you.</p>
<p dir="ltr">Sorry for the commercial.</p>
<p dir="ltr">Best regards.<br>
</p>
<div class="gmail_quote">Am 23.01.2014 14:57 schrieb "ftouvet" <<a href="mailto:francois.touvet@inria.fr">francois.touvet@inria.fr</a>>:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello all,<br>
<br>
I would like to use the Intersection operation from<br>
vtkBooleanOperationPolyDataFilter in order to know how much my meshes are<br>
overlapping each other ; so I designed a pipeline to prepare the data and<br>
make it fit to the Filter initial conditions, but it seems that I do miss<br>
something. Do somebody use this filter and know a way to be sure that the<br>
input data are ok?<br>
Here is my code in Python:<br>
<br>
source1 = vtk.vtkPolyDataReader()<br>
source1.SetFileName("mesh1.vtk")<br>
source1.Update()<br>
source2 = vtk.vtkPolyDataReader()<br>
source2.SetFileName("mesh2.vtk")<br>
source2.Update()<br>
<br>
poly = [source1.GetOutput(), source2.GetOutput()]<br>
<br>
triFilt = [vtk.vtkPolyData(), vtk.vtkPolyData()]<br>
<br>
# Converts the polydatas in Triangles and check Normals are ok<br>
for ind in range(2):<br>
<br>
        polyCopy = vtk.vtkPolyData()<br>
        polyCopy.ShallowCopy(poly[ind])<br>
<br>
        trif = vtk.vtkTriangleFilter()<br>
        trif.SetInput(polyCopy)<br>
        trif.PassVertsOff()<br>
        trif.PassLinesOff()<br>
        trif.Update()<br>
<br>
        normalf = vtk.vtkPolyDataNormals()<br>
        normalf.SetInput(trif.GetOutput())<br>
        normalf.SetFeatureAngle(60.0)<br>
        normalf.ComputePointNormalsOn()<br>
        normalf.ComputeCellNormalsOn()<br>
        normalf.SplittingOff()<br>
        normalf.ConsistencyOff()<br>
<br>
         # Had to use this in order for the data to be correct. Doc says:<br>
NOTE: This assumes a completely closed surface (i.e. no boundary edges) and<br>
no non-manifold edges. If these constraints do not hold, all bets are off.<br>
        normalf.AutoOrientNormalsOn()<br>
<br>
        normalf.Update()<br>
<br>
        triFilt[ind].ShallowCopy(normalf.GetOutput())<br>
<br>
# Design Boolean operation<br>
boolFilter = vtk.vtkBooleanOperationPolyDataFilter()<br>
boolFilter.SetOperation(Operation) #default value is 1: Intersection<br>
boolFilter.SetInput(0,triFilt[0]);<br>
boolFilter.SetInput(1,triFilt[1]);<br>
boolFilter.Update()<br>
<br>
# Result<br>
InterPoly = boolFilter.GetOutput()<br>
<br>
Using this three times (one for each boolean operation type) resulted in the<br>
attached picture (Grey, the two meshes; Red, Union result : Green,<br>
Intersection result ; Blue, Difference result ). The two meshes do not<br>
touch, but still there is a PolyData generated by the Intersection<br>
operation, and I cannot understand why.<br>
<<a href="http://vtk.1045678.n5.nabble.com/file/n5725561/Real_test.png" target="_blank">http://vtk.1045678.n5.nabble.com/file/n5725561/Real_test.png</a>><br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://vtk.1045678.n5.nabble.com/Is-there-a-way-to-check-data-before-using-vtkBooleanOperationPolyDataFilter-tp5725561.html" target="_blank">http://vtk.1045678.n5.nabble.com/Is-there-a-way-to-check-data-before-using-vtkBooleanOperationPolyDataFilter-tp5725561.html</a><br>

Sent from the VTK - Users mailing list archive at Nabble.com.<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
</blockquote></div>